ERP 2.5 Документ План производства. Добавление колонки/реквизита в кросс-таблицу.

1. Wendan 21.02.25 15:46 Сейчас в теме
Всем доброго времени суток!
На форме документа "План производства" есть отдельный реквизит "ПродукцияПоДатам" с типом "ТаблицаЗначений".

Есть ТЧ "Продукция", которая находится в самом объекте. Туда добавить реквизит и вывести колонку на форму не проблема.

"ПродукцияПоДатам" является кросс-таблицей и заполняется в ПриСозданииНаСервере.
В ней уже есть определенные рекизиты. Хочу программно в нее добавить свой новый реквизит. Но не понимаю как.

// добавление элемента для ТЧ "Продукция". Тут все ок
НовыйЭлемент  = Элементы.Добавить("Эл29_ПодразделениеДиспетчер", Тип("ПолеФормы"), Элементы.Продукция);
	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;      
	НовыйЭлемент.ПутьКДанным = "Объект.Продукция.Эл29_ПодразделениеДиспетчер";

// добавление элемента для ТЧ "ПродукцияПоДатам". Ругается на ПутьКДанным.	
	НовыйЭлемент = Элементы.Добавить("ПродукцияПоДатамПодразделениеДиспетчер", Тип("ПолеФормы"), Элементы.ПродукцияПоДатам);       
	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
	НовыйЭлемент.ПутьКДанным = "ПродукцияПоДатам.ПродукцияПоДатамПодразделениеДиспетчер";
Показать


Нужно отдельно создать реквизит для этой ТаблицыЗначений?
Не понимаю. Подскажите, пожалуйста.
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Salimbek 13 24.02.25 09:21 Сейчас в теме
Когда вы написали:
НовыйЭлемент.ПутьКДанным = "Объект.Продукция.Эл29_ПодразделениеДиспетчер";

то значит у реквизита "Объект" - есть реквизит "Продукция" и у него есть поле "Эл29_ПодразделениеДиспетчер". Правильно?

Теперь, далее вы пишете:
НовыйЭлемент.ПутьКДанным = "ПродукцияПоДатам.ПродукцияПоДатамПодразделениеДиспетчер";

Но ругается на ошибку.
Логично же, что это значит, что у Реквизита "ПродукцияПоДатам" нет такого поля "ПродукцияПоДатамПодразделениеДиспетчер". Таким образом, вам надо сначала в ТЗ "ПродукцияПоДатам" сначала добавить новую колонку через ПродукцияПоДатам.Колонки.Добавить() и только потом выставлять ее в качестве значения в НовыйЭлемент.ПутьКДанным
3. Wendan 24.02.25 09:47 Сейчас в теме
(2) Да, я это понял уже потом)
Я допёр как сделать. Сначала в саму ТЗ добавляю новый реквизит, а далее добавляю новый элемент с путем до этого реквизита. И всё взлетело)

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

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