mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-14 15:33:20 +03:00
Неизвестный тип объекта обрабатывался веткой «warning» и всё равно попадал в Rights.xml: и генератор, и валидатор рапортовали успех. Блок прав на тип, который прав не имеет, платформа не отвергает — конфигурация с правами на перечисление не загружается в информационную базу, конфигуратор зависает без сообщений. Белый список — дерево редактора ролей: 27 типов (добавлен ExternalDataSource, которого не было ни в одной таблице) плюс таблица видов вложенности с наборами прав и привязкой вида к типу-родителю. Значения сняты с корпуса (acc/erp/ut/unf, ~2750 ролей) и с выгрузок роли со всеми проставленными правами — для внешнего источника данных и перерасчёта регистра расчёта, которых в корпусе нет. - role-compile: отказ ДО записи файлов, все причины разом, exit 1; ни файлов роли, ни записи в Configuration.xml. Русские алиасы для типов без прав — ради внятного отказа, а не ради генерации. - role-validate: те же случаи — ошибка вместо предупреждения. - Побочно снято 424 ложных предупреждения на корпусе: права Use у операций веб-сервисов и методов HTTP-сервисов считались недопустимыми для вложенных объектов. - Проверка имён прав и вложенных путей больше не пропускает мусор: неизвестное право и путь вида Enum.Х.Attribute.Y раньше не проверялись вовсе. - docs/1c-role-spec.md: ExternalDataSource ошибочно числился типом без прав. - dsl-reference.md переписан под «что можно написать» (тип → права, виды вложенности) вместо таблиц прощающего ввода. Тесты: expect.filesAbsent в раннере; новые кейсы на отказ и на вложенные объекты. Починены кейсы, которые ничего не проверяли: три задавали права одной строкой "Read View" (навык писал в эталон несуществующее право), valid-role собирал роль неизвестным ключом и валидировал пустую, bad-root проходил на «файл не найден». Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>