Книга знаний

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

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

Под безопасным понимается такое добавление элементов, при которым не меняется форма, а меняется только код формы. Это полезно для работы с типовыми конфигурациями, т.е. форма модифицируется только кодом, при обновлении достаточно пропарсить модуль и не менять форму.Автор статьи: Гений 1С
Последняя редакция №1 от 15.04.08
URL: http://kb.mista.ru/article.php?id=659

Ключевые слова: типовые,обновление,безопасное,формы


Вот пример, в регистр сведений Штатное расписание я добавил поле ввода, причем привязки работают правильно. Сначала, я конечно добавил ручками элемент, посмотрел его координаты и привязки и потом расписал это программно:

//FIXIN - ADD - добавляем поле ввода для реквизита "НомерПриказаПоШР"
Эл=ЭлементыФормы.Добавить(Тип("ПолеВвода"), "НомерПриказаПоШР", истина);
Эл.Данные="НомерПриказаПоШР";
Эл.Лево=117;
Эл.Верх=344;
Эл.Ширина=80;
Эл.Высота=19;
Эл.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Низ);
Эл.УстановитьПривязку(ГраницаЭлементаУправления.Право, Эл, ГраницаЭлементаУправления.Низ);
Эл.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Эл, ГраницаЭлементаУправления.Верх);

Эл=ЭлементыФормы.Добавить(Тип("Надпись"), "НадписьНомерПриказаПоШР", истина);
Эл.Заголовок="ШР №";
Эл.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Право;
Эл.Лево=26;
Эл.Верх=344;
Эл.Ширина=70;
Эл.Высота=19;
Эл.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Низ);
Эл.УстановитьПривязку(ГраницаЭлементаУправления.Право, Эл, ГраницаЭлементаУправления.Низ);
Эл.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Эл, ГраницаЭлементаУправления.Верх);


Или вот еще один пример, где добавляется уже элемент на новую страницу:
//FIXIN - ADD - добавляем поле ввода для Не выводить штатное расписание
//1. Добавляем новую страницу на панель
лмСтраницаДополнительно=ЭлементыФормы.ПанельКодаОКАТО.Страницы.Добавить("Дополнительно_НашФранч", "Дополнительно");

//2. Делаем активной новую страницу, запоминая, какая была активная раньше
лмТекущаяСтраница=ЭлементыФормы.ПанельКодаОКАТО.ТекущаяСтраница;
ЭлементыФормы.ПанельКодаОКАТО.ТекущаяСтраница=лмСтраницаДополнительно;

//3. Добавляем элементы, они добавятся на текущую страницу панели
ФлажокНеВыводитьВШтатноеРасписание=ЭлементыФормы.Добавить(Тип("Флажок"), "ФлажокНеВыводитьВШтатноеРасписание", истина, ЭлементыФормы.ПанельКодаОКАТО);
ФлажокНеВыводитьВШтатноеРасписание.Данные="НеВыводитьВШтатноеРасписание";
ФлажокНеВыводитьВШтатноеРасписание.Лево=8;
ФлажокНеВыводитьВШтатноеРасписание.Верх=6;
ФлажокНеВыводитьВШтатноеРасписание.Ширина=300;
ФлажокНеВыводитьВШтатноеРасписание.Высота=19;
ФлажокНеВыводитьВШтатноеРасписание.Заголовок="Не выводить в штатное расписание";

//4. Возвращаем активную страницу, которая была активна ранее
ЭлементыФормы.ПанельКодаОКАТО.ТекущаяСтраница=лмТекущаяСтраница;


Извините, не помню писал я эту тему или нет, но вроде поиском не нашел, поэтому и публикую. Изучайте.

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

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