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. Возвращаем активную страницу, которая была активна ранее
ЭлементыФормы.ПанельКодаОКАТО.ТекущаяСтраница=лмТекущаяСтраница;
Извините, не помню писал я эту тему или нет, но вроде поиском не нашел, поэтому и публикую. Изучайте. |