Добавляю элемент формы програмно

1. fedor40 705 04.12.19 17:19 Сейчас в теме
Добавляю элемент формы программно и вылетает ошибка.
Как создать элемент на основе реквизита типа булево ?

		ИмяГруппы = "ГруппаНомерДата";
		ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);
		Если ГруппаФормы <> Неопределено Тогда
			
			ИмяЭлемента = "Расш2_РазрешитьОтгрузку";
			Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
				ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);        
				ЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
				ЭлементФормы.ПутьКДанным = "Обьект.Расш2_РазрешитьОтгрузку";
				//ЭлементФормы.МногострочныйРежим = Истина;
				ЭлементФормы.Высота = 3;
			КонецЕсли;   
Показать


Недопустимое значение
{ОтключитьКонтрольОплаты ОбщийМодуль.УправлениеСвойствами.Модуль(30)}: ЭлементФормы.ПутьКДанным = "Обьект.Расш2_РазрешитьОтгрузку";
{Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(35)}: УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);

по причине:
Недопустимое значение

КонецЕсли;
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. YannikAlx 43 04.12.19 17:46 Сейчас в теме
А у вас есть реквизит в Объекте
Обьект.Расш2_РазрешитьОтгрузку ?
3. fedor40 705 04.12.19 18:33 Сейчас в теме
4. fedor40 705 04.12.19 18:42 Сейчас в теме
Реквизит появился, не не сохраняет значение.

		ДобавляемыеРеквизиты	= Новый Массив;
		
		// Опишем ревизиты формы
		Расш2_РазрешитьОтгрузку = Новый РеквизитФормы("Расш2_РазрешитьОтгрузку",Новый ОписаниеТипов("Булево"),,"Разрешить",Истина); //, , ,Тип("Булево") , "Разрешить отгрузку"));
		
		// Заполним массив после описания реквизитов формы
		ДобавляемыеРеквизиты.Добавить(Расш2_РазрешитьОтгрузку);
		
		// Добавим новые реквизиты в форму
		Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
		#КонецОбласти
		
		#Область ДобавлениеЭлементовФормы
		// Элементы
		ИмяГруппы = "ГруппаНомерДата";
		ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);
		Если ГруппаФормы <> Неопределено Тогда
			
			ИмяЭлемента = "Расш2_РазрешитьОтгрузку";
			Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
				ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);        
				ЭлементФормы.Вид = ВидПоляФормы.ПолеФлажка;
				ЭлементФормы.ПутьКДанным = "Расш2_РазрешитьОтгрузку";
				//ЭлементФормы.МногострочныйРежим = Истина;
				//ЭлементФормы.Высота = 3;
			КонецЕсли;   
			
		КонецЕсли;
		#КонецОбласти
Показать
5. Fox-trot 158 04.12.19 19:37 Сейчас в теме
а не проще видимостью управлять? хотя ты третий параметр забыл указать Обьект.Расш2_РазрешитьОтгрузку
6. Marliiin 04.12.19 20:31 Сейчас в теме
(4) В этом коде вы создали реквизит на форме документа.
А в коде из первого поста вы пытаетесь создать элемент формы для реквизита объекта.

Как правильно сделать:

нужно в сам объект конфигурации добавить реквизит, например, "Разрешить отгрузку" с типом булево. И уже после этого написать код из первого сообщения, в "путь к данным" прописать "Объект.РазрешитьОтгрузку"
7. Marliiin 04.12.19 20:32 Сейчас в теме
(4) Сейчас же в этом коде вы создаете реквизит формы и записываете в него данные. Но этот реквизит существует пока существует форма.
8. AnatoliMuz 15.03.24 12:24 Сейчас в теме
У меня такая же проблема
то есть я создаю программно реквизит формы
и хочу разместить полеФормы с указанием пути к реквизиту формы (программно созданному)
ошибка такая же как у автора поста
fedor40 как вы решили проблему?
10. starik-2005 3039 15.03.24 13:02 Сейчас в теме
(8)
я создаю программно реквизит формы
и хочу разместить полеФормы с указанием пути к реквизиту формы

1. Молодец.
2. Сначала нужно созданные реквизиты добавить на форму через ИзменитьРеквизиты.
3. Не будешь получать ошибку.
9. BBL 15.03.24 12:35 Сейчас в теме
реквизит формы и реквизит объекта разные вещи.
12. AnatoliMuz 15.03.24 13:14 Сейчас в теме
(9)
вопрос именно про программно созданный реквизит формы
и вывод на форму поляФормы с указанием пути к созданному реквизиту формы
11. AnatoliMuz 15.03.24 13:13 Сейчас в теме
(10)
конечно выполнил
ИзменитьРеквизиты(нРеквизиты);
13. AnatoliMuz 15.03.24 16:53 Сейчас в теме
ошибка была в моем коде
при добавлении нового элемента полеФормы указал родителем элемент таблицаФормы
а в пути указал название реквизита
Прикрепленные файлы:
Оставьте свое сообщение

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