1С программно добавить группу на форму

В чем удобство использования программного создания элементов формы:

  1. более удобно находить изменения между конфигурациями
  2. Изменять форму "на лету" в процессе работы
  3. Минимизировать изменения типовой конфигурации (в некоторых конфигурациях для этого созданы Переопределяемые модули/процедуры)

Рассмотрим наиболее частые вопросы, все действия показаны здесь проводятся в форме в процедуре ПриСозданииНаСервере

Программное добавление элементов на форму

Похожие FAQ

Еще в этой же категории

Как на управляемой форме разместить список регистра сведений с отбором? 15
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Поле выбора

Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип – Произвольный, Использование – Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Как установить параметр динамического списка? 9
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Как обновить динамический список или реквизит на форме клиента? 7
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Форма

Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Читайте также:  1С обновить табличную часть программно

Преимущества программной доработки форм:

  • Можно использовать в расширениях
  • Легко копировать / переносить доработки
  • Различия видны при сравнении конфигурации
  • Легче производить обновление конфигурации

В данном примере все элементы формы будут добавлены в событии формы ПриСозданииНаСервере()

Обработка тестировалась на релизе платформы 8.3.13.1513.

Скачать файлы

Специальные предложения

(1) В примере добавления поля ввода, показано добавление обработчика

/Можно добавить обработчик события
//См. синтакс-помощник чтобы узнать список событий
// Интерфейс (управляемый) -> Поле формы -> ПолеФормы -> События
// а так же остальные варианты расширения поля формы в зависимости от вида кнопки
// Интерфейс (управляемый) -> Поле формы -> Расширение поля ввода -> События
// и прочее
ПолеВвода.УстановитьДействие(
"ПриИзменении", //Имя события
"ПриИзмененииКомментария"); //Имя процедуры обработчика

(3) Как добавить обработчик не расположенный в форме? В тех случаях когда я из внешней (по отношению к форме) части программы хочу добавить кнопку или поле ввода. Насколько я знаю (могу и ошибаться) назначить обработчик можно только расположенный в модуле формы. А значит надо исполнять "танцы с бубном" по вызову своих обработчиков (расположенных например в общем модуле) из обработчиков расположенных на форме. И тут получается несостыковочка. Вроде бы форму можно полностью построить программно. Но не полностью . т.к. обработчики должны быть в форме заранее.

Если есть какой-то способ обойти это "ограничение" – буду рад если поделитесь со мной.

(1) в современных конфигурациях, про обработчики уже позаботились. В формах есть подключаемая процедурка
Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
которая ведет в общий модуль СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду

Там в свою очередь, есть вызов ОбщегоМодуля МодификацияКонфигурацииКлиентПереопределяемый.ВыполнитьПереопределяемуюКоманду(Форма, Команда, ДополнительныеПараметры);

где по имени команды и формы, можно определить свою, и напилить свои обработчики.

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

(4) Так-то оно так. Если дело касается добавления какой-нибудь "некузявой" кнопочки, или чего-то незначительно-дополняющего функциональность формы или объекта который форма представляет.
Но если копнуть глубже, и рассматривать некую систему в которой есть оснастка, в которую разные модули (подсистемы) добавляют нужные им элементы управления (списки, диаграммы, таблицы со связью один ко многим и т.п.). Да еще и замахнуться на механику, когда пользователь сам решает какие модули и подсистемы ему нужны. Другими словами, разработать решение в стиле "плагинов" как во всяких там WinAmp-ах и прочих модных штуках. И тут получается нужно в форме-оснастке предусмотреть все возможные типы событий (который на ИТС кстати рекомендуют обрамлять префиксом "Подключаемый_"), а потом еще и у этих событий предусмотреть модель поведения когда нужны: а) только клиентские вызовы, б) клиентские и внеконтекстные сервеные, в) клиентские и контекстные серверные вызовы.

Поэтому да, многое можно, но навык "танец с бубном" должен быть 99lvl

И речь в данном случае не о "сферическом слоне в вакууме", а о например Рабочем Месте, которое настраивается в зависимости от роли пользователя, подразделении пользователя, полномочиям которые ему делегировали временно или постоянно и т.п.

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

Наименование Файл Версия Размер
Оцените статью
Добавить комментарий

Adblock detector