mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-08 19:20:52 +03:00
Неизвестное имя типа проходило насквозь молча: meta-compile писал его в XML дословно (<v8:Type>varchar(150)</v8:Type>), meta-validate не смотрел на скалярные типы вовсе — проверка 16 разбирает только ссылочные с известным префиксом. Отказ приходил лишь от платформы при загрузке всей конфигурации, без указания объекта и реквизита. Так вело себя и имя типа СУБД, и опечатка. meta-validate, проверка 22 — два уровня, потому что «невалидно» и «нам незнакомо» разные вещи: Уровень 1, грамматика (ERROR). Содержимое <v8:Type> всегда несёт префикс пространства имён; голое имя платформа не примет никогда, независимо от её версии и состава конфигурации. Сюда же неверная форма ссылочного типа. Уровень 2, словарь по контексту владельца (WARN). У хранимого объекта набор типов у́же, чем у обработки или отчёта, где доступны ТаблицаЗначений, ОписаниеТипов, Картинка. Замер по корпусу подтверждает разделение: v8:ValueTable/ValueTree/StandardPeriod в объектных файлах acc и erp встречаются только у обработок и отчётов, у хранимых — ноль. Оставлено предупреждением намеренно: словарь — та часть, которая расширяется с версиями платформы, и цена ложной ошибки выше пользы. Жёстко только там, где решает грамматика. meta-compile отвергает голое неизвестное имя с перечнем допустимых форм. Имя с готовым префиксом (v8:ValueTable, ent:AccountType, v8ui:Color) по-прежнему проходит как есть — это законный ввод, и правильность имени судит валидатор, которому виден весь файл. check-type-synonyms.mjs — новый гард: по общему ключу meta-edit обязан понимать то же, что meta-compile (авторитет). Отсутствие ключа допустимо, разное значение — нет. Проверено: - корпус, 23430 объектов четырёх выгрузок: ноль ошибок и ноль предупреждений проверки 22; на реальном справочнике разбирается 88 имён типов, то есть проверка работает, а не молчит; - раундтрип A, 13788 объектов: побайтово как эталон, compile-fail 0 — отказ компилятора не задел ни одного законного типа; - meta-compile 94/94 и meta-validate 48/48 в обоих рантаймах, 11 гардов; - снэпшот type-with-prefix-passthrough принят платформой 8.3.24.1691. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi