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