Имя: Пароль:
1C
 
Программное добавление колонок в динамический список
,
0 Nicole
 
19.07.21
10:13
Есть форма справочника, есть реквизит формы "Список" типа "Динамический список", есть соответствующий элемент формы "Список".  
В процедуре ПриСозданииНаСервере() редактируется Список.ТекстЗапроса, устанавливаются параметры Список.Параметры.УстановитьЗначениеПараметра,
далее необходимо добавить в список две колонки - два новых поля списка.

РеквизитФормыКолонка1 = Новый РеквизитФормы("Колонка1", ОбщегоНазначения.ОписаниеТипаДата(...), "Список", "Колонка 1");
МассивДобавляемыхРеквизитов = Новый Массив();
МассивДобавляемыхРеквизитов.Добавить(РеквизитФормыКолонка1);
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

На последней строке выскакивает ошибка "Недопустимый путь к реквизиту. Путь: Список".

Все как будто написано верно. Или в динамический список добавлять колонки таким образом нельзя?
1 dubolom
 
19.07.21
10:47
Нельзя. Динамический список - на то и динамический, что генерируется программой динамически.
А в запросе рассчитывать эти колонки - не вариант?
2 Nicole
 
19.07.21
11:00
(1) Вариант. Они и рассчитываются в запросе. Просто текст запроса с расчетом этих колонок редактируется программно.
3 dubolom
 
19.07.21
11:01
(2) Тогда и не надо добавлять колонки специально, они сами добавятся из запроса.
4 dubolom
 
19.07.21
11:02
(2) Только реквизиты связанного элемента формы надо добавлять.
5 vicof
 
19.07.21
11:02
6 CepeLLlka
 
19.07.21
11:04
(0)Не нужно добавлять реквизиты, нужно добавлять только элементы
7 Nicole
 
19.07.21
11:07
(5) (6) Если добавлять только элементы, то возникает ошибка "Недопустимое значение" на строке НовыйЭлемент.ПутьКДанным = "Список.Колонка1";
8 dubolom
 
19.07.21
11:08
(7) А отладчик что говорит про колонки списка после изменения запроса?
9 Antony8x
 
19.07.21
11:10
(7) Собственно в запрос и добавить поля, где он редактируется программно, а если мешают программно управлять доступностью колонками:
Если ... Тогда
Элементы.Таблица.ПодчиненныеЭлементыКолонки.ТвояКлонка.Доступность = Истина;
Иначе
Элементы.Таблица.ПодчиненныеЭлементыКолонки.ТвояКлонка.Доступность = ЛОЖЬ;
КонецЕсли;
10 Nicole
 
19.07.21
11:39
(9) Так они, собственно, в запрос и добавлены
11 Nicole
 
19.07.21
11:43
(8) Ну если смотреть Список.КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы, то да, новые программно добавленные поля там присутствуют
12 Nicole
 
19.07.21
12:41
Задача решена, всем спасибо. Просто в тексте запроса указала новые псевдонимы для добавляемых полей. Не знаю, в чем было дело - старый запрос отрабатывал без ошибок, одинаковых псевдонимов не было...