Программное создание колонки табличного поля с программным вычислением его значения
Делаю через расширение, без добавления формы в расширение. Все делаю через расширения общих модулей, в которые происходит обращение при создании формы на сервере.
1. На форме есть табличное поле - табличная часть документа, в табличной части есть поле Сделка (с типом нескольких документов)
2. Программно создаю колонку табличного поля в на форме
3. Хочу что бы в нее выводился комментарий из сделки.
Из за того что реквизит табличной части Сделка имеет несколько типов, соответственно его раскрыть и получить комментарий нельзя.
Соответственно прописать ПутьКДанным: "Объект.Таблица.Сделка.Комментарий" нельзя
Как сделать что бы на форме данная колонка вычислялась??
1. На форме есть табличное поле - табличная часть документа, в табличной части есть поле Сделка (с типом нескольких документов)
2. Программно создаю колонку табличного поля в на форме
3. Хочу что бы в нее выводился комментарий из сделки.
Из за того что реквизит табличной части Сделка имеет несколько типов, соответственно его раскрыть и получить комментарий нельзя.
Соответственно прописать ПутьКДанным: "Объект.Таблица.Сделка.Комментарий" нельзя
КолонкаКомментарий = Форма.Элементы.Добавить("КомментарийСделкиД", Тип("ПолеФормы"), Форма.Элементы.Таблица);
КолонкаКомментарий.Вид = ВидПоляФормы.ПолеВвода;
КолонкаКомментарий.ПутьКДанным = "Объект.Таблица.Сделка.Комментарий"; //с таким путем выдается ошибка, если его не указывать поле вообще не выводится.
КолонкаКомментарий.Заголовок = "Комментарий"
Как сделать что бы на форме данная колонка вычислялась??
По теме из базы знаний
Найденные решения
(4) Обходите строки коллекции и присваиваете значение колонки. Чтоб не делать объектного чтения, можно через БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта.
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
Реквизит создается, элемент создается. Как его заполнять построчно не пойму
МассивРеквизитов = Новый Массив;
МассивРеквизитов.Добавить(Новый РеквизитФормы("РеквизитКомментарий", Новый ОписаниеТипов("Строка"), "Объект.Таблица", "Комментарий", Ложь));
Форма.ИзменитьРеквизиты(МассивРеквизитов);
КолонкаКомментарий = Форма.Элементы.Добавить("РеквизитКомментарий", Тип("ПолеФормы"), Форма.Элементы.ТаблицаТаблица);
КолонкаКомментарий.Вид = ВидПоляФормы.ПолеНадписи;
КолонкаКомментарий.ПутьКДанным = "Объект.Таблица.РеквизитКомментарий";
КолонкаКомментарий.Заголовок = "Комментарий";
ПоказатьРеквизит создается, элемент создается. Как его заполнять построчно не пойму
(4) Обходите строки коллекции и присваиваете значение колонки. Чтоб не делать объектного чтения, можно через БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта.
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот