FormHelper и 1C Skills: программное изменение управляемых форм

Два подхода к формам 1С: библиотека FormHelper для динамических изменений и 1C Skills для редактирования XML-исходников.

Article

Форму 1С можно изменить на двух уровнях. FormHelper строит элементы программно во время работы. 1C Skills редактирует XML-исходники формы до сборки. Выбор зависит от того, должна структура быть динамической или фиксированной.

Когда подходит FormHelper

Библиотека предоставляет fluent-построитель: из BSL добавляются реквизиты, поля, кнопки и команды, после чего изменения применяются к форме.

РаботаСФормамиСервер.НовыйПостроительФорм(ЭтаФорма)
    .РеквизитСтрока("Комментарий", 150)
    .ПолеВвода("Комментарий")
        .Заголовок("Комментарий")
        .ПутьКДанным("Комментарий")
    .Применить();

Плюс — динамика. Минус — итоговую форму труднее увидеть в статическом diff, а ошибка проявляется при выполнении кода.

Когда менять XML через Skills

Если поле или команда — постоянная часть поставки, используйте form-info, form-edit и form-validate. Агент изучает элементы и события, добавляет изменение и проверяет ссылки. Git показывает точный diff.

Совместное использование

Можно хранить базовый каркас в XML, а динамические блоки создавать FormHelper. Важно договориться, какие элементы принадлежат каждому слою, чтобы агент не добавил статически то, что уже строится в рантайме.

Проанализируй форму документа, перечисли элементы из XML и вызовы FormHelper. Новое поле должно быть постоянным — добавь его в XML, не дублируй в построителе.

Статическая валидация ловит структуру и ссылки. Затем откройте форму в тонком и веб-клиенте, проверьте порядок элементов, команды и повторное открытие. Динамический построитель должен быть идемпотентным: повторный вызов не создаёт вторую кнопку.

Статьи по теме