|   |   | 
| 
 | Программное добавление колонки дерева значений в расширении | ☑ | ||
|---|---|---|---|---|
| 0
    
        dimm7310 26.01.24✎ 14:33 | 
        На форме обработки есть дерево значений ЗаданияНаПеревозкуПланируемые (реквизит формы)
 Нужно добавить колонку для ДЗ ДЗ = ДанныеФормыВЗначение(ЗаданияНаПеревозкуПланируемые, Тип("ДеревоЗначений")); ДЗ.Колонки.Добавить("НомерРаспоряжения", Новый ОписаниеТипов("Строка")); ЗначениеВДанныеФормы(ДЗ, ЗаданияНаПеревозкуПланируемые); МассивДобавляемыхРекизитов = Новый Массив; МассивДобавляемыхРекизитов.Добавить(Новый РеквизитФормы("НомерРаспоряжения",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(11)),"ЗаданияНаПеревозкуПланируемые.НомерРаспоряжения","Номер Распоряжения")); ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРекизитов); НовыйЭлемент = Этаформа.Элементы.Вставить("НомерРаспоряжения",Тип("ПолеФормы"),ЭтаФорма.Элементы.РаспоряженияНаДоставку); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "НомерРаспоряжения"; НовыйЭлемент = Этаформа.Элементы.Вставить("НомерРаспоряжения",Тип("ПолеФормы"),ЭтаФорма.Элементы.РаспоряженияНаДоставку); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "НомерРаспоряжения"; Получаю ошибку : "Недопустимый путь к реквизиту. Путь: "ЗаданияНаПеревозкуПланируемые.НомерРаспоряжения"" Что не так ? | |||
| 1
    
        dimm7310 26.01.24✎ 14:36 | 
        "  НовыйЭлемент = Этаформа.Элементы.Вставить("НомерРаспоряжения",Тип("ПолеФормы"),ЭтаФорма.Элементы.РаспоряженияНаДоставку);
 НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "НомерРаспоряжения";" - это в фрагмент в коде один, скопировалось в окно сообщения дважды | |||
| 2
    
        Волшебник 26.01.24✎ 14:38 | 
        РеквизитФормы (FormAttribute)
 конструктор по умолчанию Путь к создаваемому реквизиту. Не включает имя реквизита. | |||
| 3
    
        dimm7310 26.01.24✎ 14:47 | 
        (2) Спасибо, исправил, но получил другую ошибку
 ДЗ = ДанныеФормыВЗначение(ЗаданияНаПеревозкуПланируемые, Тип("ДеревоЗначений")); ДЗ.Колонки.Добавить("НомерРаспоряжения", Новый ОписаниеТипов("Строка")); ЗначениеВДанныеФормы(ДЗ, ЗаданияНаПеревозкуПланируемые); МассивДобавляемыхРекизитов = Новый Массив; МассивДобавляемыхРекизитов.Добавить(Новый РеквизитФормы("аНомерРаспоряжения",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(11)),"ЗаданияНаПеревозкуПланируемые","Номер Распоряжения")); ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРекизитов); НовыйЭлемент = Этаформа.Элементы.Вставить("аНомерРаспоряжения",Тип("ПолеФормы"),ЭтаФорма.Элементы.РаспоряженияНаДоставку); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "аНомерРаспоряжения"; Ошибка Недопустимое значение: НовыйЭлемент.ПутьКДанным = "аНомерРаспоряжения"; | |||
| 4
    
        Волшебник 26.01.24✎ 14:49 | 
        (3) Вы что там курите?     | |||
| 5
    
        dimm7310 26.01.24✎ 14:51 | 
        (4) видимо туплю под вечер пятницы.  Ткните пжл где не правильно     | |||
| 6
    
        dimm7310 26.01.24✎ 15:04 | 
        вернее: как правильно указать НовыйЭлемент.ПутьКДанным = "аНомерРаспоряжения";     | |||
| 7
    
        dimm7310 26.01.24✎ 15:15 | 
        ДЗ = ДанныеФормыВЗначение(ЗаданияНаПеревозкуПланируемые, Тип("ДеревоЗначений"));
 ДЗ.Колонки.Добавить("аНомерРаспоряжения", Новый ОписаниеТипов("Строка")); ЗначениеВДанныеФормы(ДЗ, ЗаданияНаПеревозкуПланируемые); МассивДобавляемыхРекизитов = Новый Массив; МассивДобавляемыхРекизитов.Добавить(Новый РеквизитФормы("аНомерРаспоряжения",Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(11)),"ЗаданияНаПеревозкуПланируемые","Номер Распоряжения")); ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРекизитов); НовыйЭлемент = Этаформа.Элементы.Вставить("аНомерРаспоряжения",Тип("ПолеФормы"),ЭтаФорма.Элементы.РаспоряженияНаДоставку); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "аНомерРаспоряжения"; Ошибка Недопустимое значение: НовыйЭлемент.ПутьКДанным = "аНомерРаспоряжения"; | |||
| 8
    
        vicof 26.01.24✎ 15:22 | 
        НовыйЭлемент.ПутьКДанным = "ЗаданияНаПеревозкуПланируемые.аНомерРаспоряжения"     | |||
| 9
    
        dimm7310 26.01.24✎ 15:26 | 
        вопрос снят, Спасибо Волшебник     | |||
| 10
    
        dimm7310 26.01.24✎ 15:27 | 
        (8) Спасибо, да.  Хотя я так пробовал перед этим, только реквизит тогда назывался НомерРаспоряжения (без "а"), когда переименовал везде аНомерРаспоряжения и прописал ПутьКДанным = "ЗаданияНаПеревозкуПланируемые.аНомерРаспоряжения" - заработало     | |||
| 11
    
        Волшебник 26.01.24✎ 15:44 | 	// ДанныеФормы в ДеревоЗначений
	ДЗ = ДанныеФормыВЗначение(Контрагенты, Тип("ДеревоЗначений"));
	
	// колонка дерева значений
	Если ДЗ.Колонки.Найти("ИНН") = Неопределено Тогда
		ДЗ.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка"));
	КонецЕсли;
		
	// реквизит формы, связанный с колонкой	
	НовыеРеквизиты = Новый Массив;
	ТипСтрока = Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(10));
	ОписаниеРеквизитаИНН = Новый РеквизитФормы("ИНН",ТипСтрока,"Контрагенты","ИНН");
	НовыеРеквизиты.Добавить(ОписаниеРеквизитаИНН);    
	ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);	
	
	// элемент формы типа "Поле", связанный с реквизитом формы
	ПолеИНН = Элементы.Вставить("ИНН", Тип("ПолеФормы"), ЭтаФорма.Элементы.Контрагенты);
	ПолеИНН.Вид = ВидПоляФормы.ПолеВвода;
	ПолеИНН.ПутьКДанным = "Контрагенты.ИНН";
	ПолеИНН.Заголовок = "ИНН";  
	
	// строка дерева значений
	НовСтрока = ДЗ.Строки.Добавить();
	НовСтрока.Код = "1"; 
	НовСтрока.Наименование = "Ромашка"; 
	НовСтрока.ИНН = "1234567890"; 
	
	// ДеревоЗначений в ДанныеФормы 
	ЗначениеВДанныеФормы(ДЗ, Контрагенты); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |