Как программно добавить реквизит на обычную форму?

1. Validol^_^ 18.10.19 13:51 Сейчас в теме
Нужно программно добавить реквизит на обычную форму документа Заказ поставщику, на страницу "Дополнительно" в самый низ . Чего то у меня не получается. Подскажите кто нибудь, как в коде определить расположение добавляемого реквизита?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
7. SlavaKron 23.10.19 11:52 Сейчас в теме
(6) Что именно у вас не получилось? Вот небольшой пример добавления поля ввода на страницу:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ПанельСтраниц = ЭлементыФормы.ПанельСтраниц;
	ПанельСтраниц.ТекущаяСтраница = ПанельСтраниц.Страницы.Дополнительно;
	
	Надпись = ЭлементыФормы.Добавить(Тип("Надпись"), "НадписьНовоеПоле", Истина, ПанельСтраниц);
	Надпись.Верх = ПанельСтраниц.Высота - 45;
	Надпись.Лево = 6;
	Надпись.Ширина = 64;
	Надпись.Высота = 19;
	Надпись.Заголовок = "Новое поле:";
	
	Надпись.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	Надпись.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	
	НвоеПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"), "НовоеПоле", Истина, ПанельСтраниц);
	НвоеПолеВвода.Верх = Надпись.Верх;
	НвоеПолеВвода.Лево = Надпись.Лево + Надпись.Ширина + 5;
	
	НвоеПолеВвода.Ширина = 100;
	НвоеПолеВвода.Высота = 19;
	
	НвоеПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	НвоеПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	НвоеПолеВвода.УстановитьПривязку(
		ГраницаЭлементаУправления.Право,
		ПанельСтраниц,
		ГраницаЭлементаУправления.Право,
		ПанельСтраниц,
		ГраницаЭлементаУправления.Лево);
		
	НвоеПолеВвода.УстановитьДействие("ПриИзменении", Новый Действие("НвоеПолеВводаПриИзменении"));
	
КонецПроцедуры

Процедура НвоеПолеВводаПриИзменении(Элемент)
	Сообщить(Элемент.Значение)
КонецПроцедуры
Показать
Прикрепленные файлы:
ВнешняяОбработка1.epf
soci0pat; user2044638; stepani4; idjumatov; user787825; bohdan-k; +6 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. killitch 30 18.10.19 14:05 Сейчас в теме
(1)Посмотрите как строится меню "Заполнить" для командных панелей документов, например реализация. Там программно добавляются элементы.
2. пользователь 18.10.19 13:57
Сообщение было скрыто модератором.
...
4. Azamatex 12 18.10.19 14:15 Сейчас в теме
В событии при смене страницы пишите
Если ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница.Заголовок = "Дополнительно" Тогда
....
КонецЕсли;

У Вас может называться по другому. Это пример
5. FetisovAN 18.10.19 17:53 Сейчас в теме
Реквизит на обычную форму - никак, можно кнопку добавить или действие в панель ... А реквизиты на обычных формах рисуются ручками.

А чем Вас не устраивает стандартный вариант "Играть видимостью". Добавляете ваш новый реквизит, а при открытии в зависимости от вашего условия показываете его или нет ...
6. Validol^_^ 23.10.19 10:44 Сейчас в теме
Вообщем не стал парится добавил реквизит ручками. Программно не получилось вывести так как надо.
7. SlavaKron 23.10.19 11:52 Сейчас в теме
(6) Что именно у вас не получилось? Вот небольшой пример добавления поля ввода на страницу:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ПанельСтраниц = ЭлементыФормы.ПанельСтраниц;
	ПанельСтраниц.ТекущаяСтраница = ПанельСтраниц.Страницы.Дополнительно;
	
	Надпись = ЭлементыФормы.Добавить(Тип("Надпись"), "НадписьНовоеПоле", Истина, ПанельСтраниц);
	Надпись.Верх = ПанельСтраниц.Высота - 45;
	Надпись.Лево = 6;
	Надпись.Ширина = 64;
	Надпись.Высота = 19;
	Надпись.Заголовок = "Новое поле:";
	
	Надпись.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	Надпись.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	
	НвоеПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"), "НовоеПоле", Истина, ПанельСтраниц);
	НвоеПолеВвода.Верх = Надпись.Верх;
	НвоеПолеВвода.Лево = Надпись.Лево + Надпись.Ширина + 5;
	
	НвоеПолеВвода.Ширина = 100;
	НвоеПолеВвода.Высота = 19;
	
	НвоеПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Верх, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	НвоеПолеВвода.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ПанельСтраниц, ГраницаЭлементаУправления.Низ);
	НвоеПолеВвода.УстановитьПривязку(
		ГраницаЭлементаУправления.Право,
		ПанельСтраниц,
		ГраницаЭлементаУправления.Право,
		ПанельСтраниц,
		ГраницаЭлементаУправления.Лево);
		
	НвоеПолеВвода.УстановитьДействие("ПриИзменении", Новый Действие("НвоеПолеВводаПриИзменении"));
	
КонецПроцедуры

Процедура НвоеПолеВводаПриИзменении(Элемент)
	Сообщить(Элемент.Значение)
КонецПроцедуры
Показать
Прикрепленные файлы:
ВнешняяОбработка1.epf
soci0pat; user2044638; stepani4; idjumatov; user787825; bohdan-k; +6 Ответить
8. Validol^_^ 23.10.19 12:40 Сейчас в теме
(7) Теперь получилось. Спасибо)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот