Программное создание колонки табличного поля с программным вычислением его значения

1. odn 25.05.23 14:38 Сейчас в теме
Делаю через расширение, без добавления формы в расширение. Все делаю через расширения общих модулей, в которые происходит обращение при создании формы на сервере.

1. На форме есть табличное поле - табличная часть документа, в табличной части есть поле Сделка (с типом нескольких документов)
2. Программно создаю колонку табличного поля в на форме
3. Хочу что бы в нее выводился комментарий из сделки.

Из за того что реквизит табличной части Сделка имеет несколько типов, соответственно его раскрыть и получить комментарий нельзя.
Соответственно прописать ПутьКДанным: "Объект.Таблица.Сделка.Комментарий" нельзя

КолонкаКомментарий = Форма.Элементы.Добавить("КомментарийСделкиД", Тип("ПолеФормы"), Форма.Элементы.Таблица);
КолонкаКомментарий.Вид = ВидПоляФормы.ПолеВвода;		
КолонкаКомментарий.ПутьКДанным = "Объект.Таблица.Сделка.Комментарий"; //с таким путем выдается ошибка, если его не указывать поле вообще не выводится.
КолонкаКомментарий.Заголовок = "Комментарий"


Как сделать что бы на форме данная колонка вычислялась??
По теме из базы знаний
Найденные решения
5. glek 119 25.05.23 15:49 Сейчас в теме
(4) Обходите строки коллекции и присваиваете значение колонки. Чтоб не делать объектного чтения, можно через БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта.
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. glek 119 25.05.23 15:20 Сейчас в теме
(1) Добавить программно колонку в таблицу сделок (реквизит формы), заполнить и его уже добавить на форму.
Не забыть про "после записи на сервере", при изменении сделки и так далее перезаполнять колонку.
4. odn 25.05.23 15:45 Сейчас в теме
(3)

МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(Новый РеквизитФормы("РеквизитКомментарий", Новый ОписаниеТипов("Строка"), "Объект.Таблица", "Комментарий", Ложь));
Форма.ИзменитьРеквизиты(МассивРеквизитов);
		
КолонкаКомментарий = Форма.Элементы.Добавить("РеквизитКомментарий", Тип("ПолеФормы"), Форма.Элементы.ТаблицаТаблица);
КолонкаКомментарий.Вид = ВидПоляФормы.ПолеНадписи;		
КолонкаКомментарий.ПутьКДанным = "Объект.Таблица.РеквизитКомментарий";	
КолонкаКомментарий.Заголовок = "Комментарий";
Показать


Реквизит создается, элемент создается. Как его заполнять построчно не пойму
5. glek 119 25.05.23 15:49 Сейчас в теме
(4) Обходите строки коллекции и присваиваете значение колонки. Чтоб не делать объектного чтения, можно через БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта.
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
2. acces969 344 25.05.23 15:07 Сейчас в теме
А сделать это ручками, без программного кода, получилось? Даже без участия расширения, в самой конфигурации? Идите от простого к сложному.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот