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

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

Программное добавление колонок в динамический список
Я
   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
Задача решена, всем спасибо. Просто в тексте запроса указала новые псевдонимы для добавляемых полей. Не знаю, в чем было дело - старый запрос отрабатывал без ошибок, одинаковых псевдонимов не было...

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.