Имя: Пароль:
1C
 
Программное добавление реквизитов формы ( колонки табличной части)
,
0 Анцеранана
 
25.02.21
16:40
Уважаемые коллеги, программно пытаюсь добавить колонки табличной части вот по этой инструкции:
https://guesto.ru/1c-programmnoye-dobavleniye-i-udaleniye-rekvizitov-formy/

Распечатаю, чтобы всем было видно:

    #Область ДобавлениеРеквизитаТЧ
    
    // Массив для новых реквизитов
    ДобавляемыеРеквизиты = Новый Массив;
    
    // Опишем ревизиты формы
    Реквизит_Ячейка = Новый РеквизитФормы("Ячейка",    Новый ОписаниеТипов("СправочникСсылка.ЯчейкиХранения"),    "Объект.Комплектация", "Ячейка");
    
    // Для наглядности заполним массив после описания реквизитов формы
    ДобавляемыеРеквизиты.Добавить(Реквизит_Ячейка);
    
    // Добавим новые реквизиты в форму
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    НовыйЭлемент = Элементы.Добавить("КомплектацияЯчейка", Тип("ПолеФормы"), Элементы.Комплектация);
    НовыйЭлемент.ПутьКДанным    = "Объект.Комплектация.Ячейка";
    НовыйЭлемент.Вид            = ВидПоляФормы.ПолеВвода;
    
    #КонецОбласти

Проверил, что этот код работает, если в обработке есть табличная часть. т.е. Объект.Комплектация...
Но в моей обработке Таблица с Объектом не связана , просто висит на форме (менять это нельзя).
Убрал для этого случая "Объект.Комплектация" - код отрабатывает - в процедуре ПриСозданииНаСервере, но колонки
не добавляются. Добавлять интерактивно - не предлагать.
1 PCcomCat
 
25.02.21
16:49
Так таблица, наверное, связана с реквизитом формы типа ТаблицаЗначений?
2 Анцеранана
 
25.02.21
17:06
(1) Могло бы быть и так и тоже бы не работало... Но нет, реквизит формы - "Динамический список" и тоже не работает (произвольный запрос менять не рекомендуется)
3 PCcomCat
 
25.02.21
17:08
(2) Можно поменять программно текст запроса в ПриСозданииНаСервере
4 Анцеранана
 
25.02.21
17:18
(3) Это в типовой бухгалтерии обработка "обмен с контрагентами" - форма "текущие дела по ЭДО" таблица "ПакетыЭД" туда рекомендуется вывести "СостояниеЭдо" и "ВидДокумента" - как на предыдущих закладках, где просто выведены эти реквизиты.

ОК буду пробовать.
5 Анцеранана
 
25.02.21
17:33
(3) Завтра буду проверять но на вскидку не поможет. В тестовой обработке у меня есть реквизит Организация в запросе Динамического списка и алгоритм в (0) в ней не срабатывает, не выводится программно, только если я его в форму руками переношу.
6 asady
 
25.02.21
18:00
(0) если твоя таблица не реквизит объекта а "просто висит на форме", то с большой долей вероятности эта таблица уже является ревизитом формы и добавлять ее в реквизиты формы методом ИзменитьРеквизиты избыточно

для отражения на форме нужно добавить элементы формы с типом ТаблицаФормы и путь к данным "Таблица" (или как там она у тебя называется)
7 Анцеранана
 
26.02.21
09:58
(6) Не особо понял, но ваш каммент мне помог! Поле добавилось, если оно:
а) есть в тексте запроса динамического списка
б) если указать путь к данным "ИмяТаблицы.ИмяПоля" (например "ПакетыЭД.Организация").
Теперь попробую то что предложил в (3) PCcomCat, может взлетит.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн