1с программное создание кнопки на форме

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

category Программирование системы clock07.06.2018 16:04 eye14555

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

Добавление поля ввода

В данном примере на форму добавляется новое поле ввода, для него необходимо задать привязку к реквизиту. Имя реквизита к которому будет привязано поле ввода, задается через свойство «Данные». Для позиционирования элемента на форме задаются значения свойств отвечающих за положение.

Добавление кнопки обычной формы

При программном добавлении кнопки необходимо установить процедуру, которая будет выполняться при нажатии. Обработчик действия для кнопки устанавливается функцией «УстановитьДействие». Так же необходимо задать заголовок кнопки и определить значения свойств отвечающих за положение.

Добавление надписи обычной формы

В свойстве «Заголовок» указывается заголовок надписи. Для позиционирования элемента на форме задаются значения свойств отвечающих за положение.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник

Программное создание кнопок на форме

Есть документ ЗаданиеВодителя. У этого документа есть табличная часть в которой хранятся ссылки на документ ЗаказКлиента. Мне надо в другой форме (ФормаВыборДокумента) сделать программное создание кнопок того же количества, что и строк в табличной части.

П.С. заголовки кнопок тоже должны программно меняться и соответсвовать заказку клиента.

На данный момент. Я сделал следующее:
1. Создал на форме вертикальную группу (ГруппаДокументов), в ней и будут храниться кнопки.
2. Создал на форме реквизит ТаблицаЗначений. С колонками, как в запросе. И типы им задал как в самом документе ЗаданиеВодителя.
3. Прописал запрос к табличной части ЗаданиеВодителя. Полученные данные загрузил в ТЗ. И через процедуру Для каждого решил перебрать данные и для каждой строки создать кнопку, но это все почему-то не работает. И отладчик не дает никакой инфы. Код :

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ТипЗнч(Параметры) = Тип(«Структура») Тогда
Если Параметры.Свойство(«СсылкаНаДокумент») Тогда
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ЗаданиеВодителяДокументы.Документ КАК Документ,
| ЗаданиеВодителяДокументы.Документ.Номер КАК Номер,
| ЗаданиеВодителяДокументы.Документ.Контрагент КАК Контрагент
|ИЗ
| Документ.ЗаданиеВодителя.Документы КАК ЗаданиеВодителяДокументы
|ГДЕ
| ЗаданиеВодителяДокументы.Ссылка = &ЗаданиеВодителя»;
Запрос.УстановитьПараметр(«ЗаданиеВодителя», Параметры.СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаЗначений = РезультатЗапроса.Выгрузить();

Для каждого Строка Из ТаблицаЗначений Цикл
ЭлементГруппы = Элементы.ГруппаДокументов;
НоваяКнопка = Элементы.Добавить(«Кн», Тип(«КнопкаФормы»),ЭлементГруппы);
НоваяКнопка.Вид = ВидКнопкиФормы.ОбычнаяКнопка;
НоваяКнопка.Высота = 3;
НоваяКнопка.РастягиватьПоГоризонтали = Истина;
НоваяКнопка.ИмяКоманды = «НажатиеКнопки»;
//НоваяКнопка.Заголовок = Строка(Номер);
НоваяКнопка.Шрифт = ШрифтыСтиля.ОченьКрупныйШрифтТекста;
НоваяКнопка.Доступность = Истина;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

(1) Не понял( Можете, пожалуйста написать подробнее? Я буду Вам очень благодарен. И еще правильно ли я написал остальное? Запрос уверен, что правильно, а вот сама эта часть:

Источник

Добавление кнопки на управляемую форму

Предисловие

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

1

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

Конструктор

2

И кнопка уже добавлена!

Но не всегда такой вариант приемлем. Для некоторых задач нужно изменять форму программным образом, например, для формирования кнопок команд печати документов, где для каждой печатной формы создается собственная кнопка. Заранее знать состав всех печатных форм (включая внешние) мы не можем, поэтому добавление кнопок выполняется автоматичкески.

Программное добавление

И так, то что мы сделали в 2 клика сделаем с помощью нескольких строк кода. Перед тем как добавлять команду формы, нам нужно определить процедуру-обработчик этой команды. Добавим в модуль формы следующую процедуру:

Теперь нам нужно добавить команду формы и присвоить в качестве обработчика процедуру выше. Добавлять команду нужно на стороне сервера, поэтому используем событие формы «ПриСозданиинаСервере»:

Отлично, осталось добавить элемент формы типа «Кнопка формы» для команды формы «Предупредить». Дополним обработчик события «ПриСозданииНаСервере»:

На этом все. Если мы откроем эту форму в режиме 1С:Предприятия, то увидим следующее:

3

Пример небольшой и врятли даст ответы нв все вопросы по программной модификации форм. Он лишь может подсказать общий принцип.

Источник

ПРОФЕССИОНАЛЬНЫЙ
1С-ПРОГРАММИСТ от 800 ₽

Упрощаю работу в 1С, устраняю ошибки и экономлю Ваше время

за счет профессиональной автоматизации

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

7a55bf71d57900faafa7c20326b642ff?s=128&d=https%3A%2F%2F1c.lavrov.online%2Fwp content%2Fuploads%2F2021%2F07%2F1551512888 2

❓ Проблема:

После обновления формы на форму поставщика, очень трудно вспомнить какие кнопки были добавлены самостоятельно.

✅ Решение:

Использовать расширения конфигурации и добавить кнопки программно. Самый простой код ниже:

//Добавляем команду с именем «Копировать»

КомандаКопировать = ЭтаФорма.Команды.Добавить(“Копировать”) ;

КомандаКопировать.Картинка = БиблиотекаКартинок.СкопироватьОбъект;

// Свойство “Действие” содержит имя процедуры-обработчика команды

//Например «Процедура ДействиеКопировать() … КонецПроцедуры»

КомандаКопировать.Действие = “ДействиеКопировать“;

// Добавляем элемент (кнопку) “КнопкаКопировать” с типом “Кнопка формы”

//ГруппаКудаДобавить- группировка с типом «ГруппаФормы» на форме

ГруппаКудаДобавить = Элементы.КоманднаяПанельСоздатьНоменклатуру;

НовыйЭлемент = Элементы.Добавить( “КнопкаКопировать”, Тип( “КнопкаФормы” ),ГруппаКудаДобавить);

НовыйЭлемент.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;

//Установим заголовок элементу формы (кнопке)

НовыйЭлемент.Заголовок = “Скопировать элемент”;

// Подвязываем Команду к элементу формы (кнопке)

НовыйЭлемент.ИмяКоманды = “Копировать”;

//Отобразим элемент формы (кнопку) картинкой

НовыйЭлемент.Отображение = ОтображениеКнопки.Картинка ;

//Установим видимость и доступность

НовыйЭлемент.Видимость = Истина ;

НовыйЭлемент.Доступность = Истина ;

Источник

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

Введение в управляемая форма 1С реквизиты элементы команды

Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.

Примеры работы с объектом «ДанныеФормыКоллекция» и созданием дин. списка и таблицы значений программно можно будет посмотреть в части 2.

Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.

Программное переопределение обработчиков событий формы и элементов формы

Переопределить обработчики событий формы можно в обработчике «ПриСозданииНаСервере» (кроме самого обрабочика «ПриСозданииНаСервере») или в теле модуля формы в контексте сервера (например, Переопределение событий ПриЧтениинаСервере и ПриСозданииНаСервере).

В теле модуля формы:

А в новой процедуре нужно добавить вызов основной, если такая процедура есть.

Аналогично можно поступить и с обработчиками элементов формы:

Программное создание групп формы.

Доступные виды групп формы:

ss2019 12 27at04.46.44

Программное добавление команды на форму.

Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить( ). Удалять можно только те команды, которые были созданы программно.

Программное создание декораций форм.

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

Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.

Вывод реквизитов на форму.

Вызов процедур при создании на сервере 1С

После описания всех процедур выводим их в процедуре ПриСозданииНаСервере. Также можно изменить программно некоторые свойства формы, например, заголовок. Чтобы был виден только наш заголовок, нужно отключить свойство Автозаголовок.

Некоторые советы при программном редактировании формы

Итак, взглянем на получившийся результат. Все элементы на форме созданы программно:
%D1%80%D0%B5%D0%BA%D0%B2%D0%B8%D0%B7%D0%B8%D1%82%D1%8B %D1%84%D0%BE%D1%80%D0%BC%D1%8B

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с программное обновление формы
  • 1с программное добавление колонки в табличное поле управляемые формы