Программно добавить реквизит на управляемую форму

1. Реквизит формы

  • Создаем новый массив для реквизитов добавляемых на форму.
  • Создаем новый массив для типов реквизита формы.
  • Создаем новый реквизит формы.
  • (обязательный). Тип: Строка. Имя реквизита.
  • (обязательный). Тип: ОписаниеТипов. Тип реквизита.
  • (необязательный). Тип: Строка. Путь к создаваемому реквизиту. Не включает имя реквизита. Значение по умолчанию: Пустая строка.
  • (необязательный). Тип: Строка. Содержит отображаемый текст реквизита. Значение по умолчанию: Пустая строка.
  • (необязательный). Тип: Булево. Реквизит содержит сохраняемые данные. Истина — сохраняемый реквизит формы.

Изменяем структуру реквизитов формы.

Процедура ИзменитьРеквизиты( , ) предназначена для удаления и добавления реквизитов формы.

Код для добавления реквизита формы целиком:

2. Элемент формы формы

    Создаем элемент формы

  • (обязательный). Тип: Строка. Уникальное имя добавляемого элемента.
  • (обязательный). Тип: Тип. Тип добавляемого элемента.
  • (необязательный). Тип: ГруппаФормы; ТаблицаФормы; УправляемаяФорма. Родитель для добавляемого элемента. Если не указан, то добавляется на верхний уровень.
  • Возвращаемое значение: Тип: ДекорацияФормы; ГруппаФормы; КнопкаФормы; ТаблицаФормы; ПолеФормы.
  • Настраиваем элемент формы
  • Guesto notes

    При разработке решений возникает необходимость добавить реквизит формы, состав и типы которых зависят от данных. Например при построении динамических деревьев с периодами, или при выводе контактной информации и т.д.

    Задача

    Для наглядности разберем простой пример, в котором можно было обойтись только элементами формы, но мы создадим и реквизиты.

    Есть некая в конфигурация, в форме элемента справочника «Номенклатура» необходимо программно создавать реквизиты формы и элементы к ним:

    • ЯчейкаХранения, тип СправочникСсылка.ЯчейкиХранения;
    • ТекущийОстаток, тип Число.

    Элементы объединить в группу с горизонтальной группировкой. На текущий момент форма имеет следующий вид:

    Читайте также  Светлана андрийцо в одноклассниках

    Решение

    В обработчике формы ПриСозданииНаСервере() опишем код, который разбивается на 3 этапа:

    1. Описание и создание реквизитов формы;
    2. Создание элементов формы, объединение в группу без отображения;
    3. Заполнение данных.

    Ниже приведен готовый код, код снабжен комментариями и разбит на области для лучшего понимания:

    После выполнения приведенного кода форма будет выглядеть так:

    Для удаления необходимо передать массив реквизитов на удаление в качестве второго параметра метода формы ИзменитьРеквизиты().

    Внимание. Удалять можно только реквизиты созданные программно.

    Добавление реквизита табличной части

    Добавление реквизита и элемента формы для табличной части почти ничем не отличается, необходимо только указать путь «Объект. ». Ниже пример добавления реквизита Ячейка в ТЧ Комплектация.

    Добавление реквизита с типом Произвольный

    В одной из задач стало необходимо добавить реквизит с типом Произвольный, но ни СП, ни интернеты ответа не дали. В итоге через несколько попыток было найдено решение

    Внимание. Данные добавленного реквизита сохраняться в ИБ не будут.

    UPD 2017-05-28 Статья переработана, добавлен вариант применения с примером кода.
    UPD 2017-08-07 По просьбе из комментария, в статью добавлен пример программного добавления реквизита табличной части.

    Комментарии 13

    Автору для начала стоит разобраться что есть Форма, а что есть Объект, а затем лезть со своими статьями в интернет.

    1. Ну очень конструктивная критика;
    2. Читайте СП;
    3. Не болейте)

    P.S. Комментарии модерируются, ссылки не относящиеся к делу нещадно удаляются.

    Внимание. Удалять можно только реквизиты созданные программно.

    ППЦ, а на остальных табу наложено?

    Иди читай книжки, грамотей!

    Дык, читаю

    Красиво оформленный код. И полезный.

    Альберт, спасибо!
    Пишу код по заветам Стива Макконелла:

    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте

    А как добавить реквизит к табличной части документа?

    Читайте также  Почему нагревается телефон ксиаоми

    Дмитрий, в статью добавлен пример добавления реквизита табличной части.

    Спасибо, очень помогло.
    Подскажите а как программно добавить табличную часть на форму?

    А пример удаления, собственно, где?

    Роман, для удаления необходимо передать массив реквизитов на удаление в качестве второго параметра метода формы ИзменитьРеквизиты(). Все аналогично добавлению, смысла описывать не вижу.

    Автору большой респект! Статья написана на отлично! Все очень доступно и красиво — просто, бери и пользуйся.

    По удалению реквизитов — неправильно, в массиве передается не «массив реквизитов», а «Массив, содержащий строки, описывающие пути к удаляемым реквизитам».

    Сегодня поговорим о том, как программно создать кнопку и поле ввода в управляемой форме.

    Программное создание кнопки

    Для создания кнопки, нам потребуется добавить команду, саму кнопку и обработчик ее нажатия (это по желанию).

    Все манипуляции нужно проводить на сервере.

    Выглядит все это приблизительно так:

    Программное создание поля ввода

    Для создания поля ввода потребуется добавить форме реквизит и само поле ввода, как и в случае с кнопкой, все манипуляции нужно проводить на сервере.

    Выглядит все это, приблизительно так:

    Если создаваемый элемент нужно поместить в какую-либо группу, то это делается при создании этого элемента, указыванием нужного родителя:

    В данном случае кнопка добавиться в элемент с названием «Группа1» и будет отображаться в соответствие со свойствами этого элемента.

    Как видите, все очень просто, и если захотеть, то всю форму в управляемом приложении можно рисовать программно (другие элементы управления создаются аналогично).

    На этом все, надеюсь данная статья Вам помогла.

    Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Ссылка на основную публикацию
    Adblock
    detector