Вход | Регистрация
 

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

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

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

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

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

Список тем форума
 
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.