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