Книга знаний

1С:Предприятие / v8 / Приемы программирования / Формы

v8: Технология создания своих элементов управления

К сожалению, 1С не дает нам возможности использовать свои элементы управления, поэтому приходится на разных формах дублировать один и тот же код. Выходом было бы использование вложенных форм, но и это 1С не может дать программистам. Однако не все потеряно - при некотором старании можно добиться функционала элементов управления.Автор статьи: Гений 1С | Редакторы:
Последняя редакция №2 от 25.08.06 | История
URL: http://kb.mista.ru/article.php?id=349

Ключевые слова: элемент управления,хитрость,продвинутый кодинг


В дальнейшем наш элемент управления будет называться контролом.

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

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

Затем в процедуре ПриОткрытии вызывается стандартная функция обРазместитьЭлементУправления(Форма, Панель, Контрол), где:
* Форма - форма, на которую размещается контрол
* Панель - панель, на которую размещается контрол
* Контрол - ссылка на обработку контрола

Далее все элементы контрола копируются на форму.
Для реализации копирования полезно ознакомиться со статьями:
Книга знаний: v8: Получение списка свойств и событий объекта
Книга знаний: v8: Получение списка свойств и событий объекта

При этом не копируются такие свойства, как: Данные, Значение, Имя, КнопкаПоУмолчанию, ИсточникДействий, КонтекстноеМеню, потому что они не имеют смысла в контексте формы-приемника и при копировании выдают ошибку.

К именам всех скопированных элементов управления будет добавляться префикс. Префикс формируется из уникального значения ГУИД. В форме создается поле ввода с именем, полученном из ГУИДа, значение поля ввода - ссылка на обрабоку, которая контролирует контрол.

В форму, которая использует контрол, должна быть вставлена ловушка на все события контрола.
Такую ловушку (список процедур) лучше записать одной строкой, чтобы не загромождать код формы.
Количество процедур в ловушке не зависит от числа контролов - всем контролам назначаются одни и те же ловушки. После копирования свойств назначаются ловушки для событий.

Далее вызывается метод контрола ПриМонтаже(Форма, Панель, Префикс), в котором контрол должен настроить те свойства, которые не были скопированы и вообще настроить себя.

При возникновении события в элементе управления контрола в процедуре ловушки по имени контрола определяется поле ввода, где хранится ссылка на обработку-обработчик события и вызывается метод этого обработчика с названием события, ссылкой на текущую форму и структурой П, содержащей параметры события.

Особенности программирования контролов в том, что у них нет данных, нужно обращаться не к данным, а непосредственно к свойству "Значение" контрола.

Можно использовать вложенные контролы.

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика