v1.6.5
v1.6.5: формпарсер xcf/logform
Патч поверх v1.6.4. Инструмент get_form_structure начал возвращать реальную структуру формы (элементы, команды, обработчики событий). Раньше на любых реальных конфигурациях он отдавал только имя и заголовок формы.
Исправления
get_form_structureвозвращал только имя и заголовок. Парсерdump/formparser.goискал ноды, которых нет в реальном форматеxcf/logform(выгрузка черезDumpConfigToFiles). Теперь парсер правильно читает<ChildItems>,<Events>,<Commands>из реального XML, элементы любой глубины вложенности разворачиваются в плоский список.
Новые возможности
- События у элементов формы.
OnChangeуInputField,OnActivateRowуTableи аналогичные element-level обработчики теперь видны в выводе инструмента. В markdown-выводе появилась отдельная секция «События элементов». - Честное описание инструмента. Описание
get_form_structureтеперь явно говорит, что без--dumpвозвращаются только имя и заголовок. HTTP-endpoint 1С в серверном контексте не имеет доступа к составу управляемой формы (Форма.Элементыдоступна только у клиентского объектаФормаКлиентскогоПриложения, недоступного из HTTPService). Это особенность платформы, не баг расширения. - Логирование ошибок dump. Если выгрузка не парсится при успешном HTTP-запросе, причина теперь попадает в лог через
slog.Warnвместо молчаливого fallback на пустой результат.
Технические детали
- Go-модель: добавлены поля
dump.FormElementInfo.Events []FormHandlerInfoиonec.FormElement.Events []FormHandler(additive, json-совместимо,omitempty). - Тесты переписаны на четырёх реальных Form.xml из типовых конфигураций: пустая форма, форма смены пароля, форма записи регистра сведений, форма списка справочника с вложенной структурой.
- BSL-код HTTP-сервиса не менялся. Обновлять расширение в базе не требуется.
Обновление
Достаточно скачать бинарник для вашей платформы из assets ниже и заменить текущий. Расширение 1С обновлять не нужно. Чтобы получать структуру элементов и обработчики, запустите сервер с флагом --dump <путь_к_выгрузке>.
Full Changelog: v1.6.4...v1.6.5