При разработке управляемых форм в 1С:Предприятии часто возникает необходимость динамического изменения интерфейса. Программное создание элементов — мощный инструмент, но он требует строгого соблюдения иерархии типов и свойств объектов. Рассмотрим, почему возникает ошибка Недопустимое значение параметров при попытке добавить таблицу на программно созданную страницу.
В типичном коде, который приводит к ошибке, разработчик пытается создать группу страниц и вложить в неё таблицу. Ошибка возникает из-за того, что метод Элементы.Добавить() при создании ГруппаФормы устанавливает определенный Вид по умолчанию. В зависимости от контекста создания, платформа может назначить группе вид Командная панель или Подменю. В такие контейнеры вложение элемента типа ТаблицаФормы архитектурно запрещено.
Чтобы успешно добавить таблицу на страницу, необходимо принудительно задать нужный Вид для всех родительских групп. Разберем процесс по этапам.
ВидГруппыФормы.Страницы.ВидГруппыФормы.Страница. Именно этот элемент будет служить родителем для нашей таблицы.ТаблицаФормы.Рассмотрим, как должен выглядеть рабочий фрагмент кода на языке 1С:
// Создаем общую группу страниц
ГруппаСтраниц = Форма.Элементы.Добавить(ИмяСтраниц, Тип("ГруппаФормы"));
ГруппаСтраниц.Вид = ВидГруппыФормы.Страницы;
// Создаем конкретную страницу
НоваяСтраница = Форма.Элементы.Добавить(ИмяСтраницы, Тип("ГруппаФормы"), ГруппаСтраниц);
НоваяСтраница.Вид = ВидГруппыФормы.Страница;
НоваяСтраница.Заголовок = ЗаголовокСтраницы;
// Добавляем таблицу на страницу
ТаблицаФормы = Форма.Элементы.Добавить(ИмяТаблицыФормы, Тип("ТаблицаФормы"), НоваяСтраница);
При программном управлении формой всегда помните о следующих правилах:
Вид родительского элемента. Платформа 1С очень чувствительна к совместимости вложенных элементов.ТаблицаФормы. Вам также необходимо программно создать реквизит формы с типом ТаблицаЗначений через метод ИзменитьРеквизиты и привязать его к таблице через свойство ПутьКДанным.Анализируя ситуацию, мы видим, что корень проблемы кроется в автоматическом выборе вида группы. Явное управление свойством Вид позволяет избежать непредсказуемого поведения платформы и успешно строить сложные иерархические структуры интерфейса.