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

Программное добавление реквизитов формы ( колонки табличной части)

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

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

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

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

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

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

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