Программное создание элементов УФ

Я встречал и другие библиотеки программного создания элементов, но мне они по разным причинам неудобны — не отвечают моему чувству прекрасного. Поэтому делаю свою.

Во всех примерах кода приняты следующие имена переменных:

  • ИмяЭлемента — имя элемента
  • Привязка — группа для вставки элемента
  • ЭтаФорма — ссылка на форму
  • Элемент — добавленный элемент

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

Поле ввода

Обычное поле ввода:

Элемент = ЭтаФорма.Элементы.Вставить(ИмяЭлемента, Тип("ПолеФормы"), Привязка);
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.Заголовок = "";
Элемент.ПутьКДанным = "";

Поле ввода-флажок:

Элемент = ЭтаФорма.Элементы.Вставить(ИмяЭлемента, Тип("ПолеФормы"), Привязка);
Элемент.Вид = ВидПоляФормы.ПолеФлажка;
Элемент.Заголовок = "";
Элемент.ПутьКДанным = "";

Если это реквизит формы, то в пути данных указывается просто его идентификатор ИмяРеквизита. Если это реквизит объекта формы, то Объект.ИмяРеквизита.

Команда и кнопка для нее

ИмяКоманды = "";
Команда = ЭтаФорма.Команды.Добавить(ИмяКоманды);
Команда.Заголовок = "";
Команда.Действие  = ИмяКоманды;                
Команда.Картинка = БиблиотекаКартинок.ИмяКартинки;
Команда.Отображение = ОтображениеКнопки.КартинкаИТекст;

КнопкаФормы = ЭтаФорма.Элементы.Вставить(ИмяКоманды, Тип("КнопкаФормы"),Привязка.Родитель, Привязка);
КнопкаФормы.ИмяКоманды = ИмяКоманды;           

&НаКлиенте
Процедура ИмяКоманды(Команда) Экспорт

КонецПроцедуры

Декорации формы

Декорация формы в виде картинки:

Элемент = ЭтаФорма.Элементы.Вставить(ИмяЭлемента, Тип("ДекорацияФормы"), Привязка);      
Элемент.Вид = ВидДекорацииФормы.Картинка;
Элемент.Картинка = БиблиотекаКартинок.ИмяКартинки;

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. rzd:

    Так а где библиотека?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *