|
Программное добавление реквизитов формы ( колонки табличной части) |
☑ |
0
Анцеранана
25.02.21
✎
16:40
|
Уважаемые коллеги, программно пытаюсь добавить колонки табличной части вот по этой инструкции:
Распечатаю, чтобы всем было видно:
#Область ДобавлениеРеквизитаТЧ
// Массив для новых реквизитов
ДобавляемыеРеквизиты = Новый Массив;
// Опишем ревизиты формы
Реквизит_Ячейка = Новый РеквизитФормы("Ячейка", Новый ОписаниеТипов("СправочникСсылка.ЯчейкиХранения"), "Объект.Комплектация", "Ячейка");
// Для наглядности заполним массив после описания реквизитов формы
ДобавляемыеРеквизиты.Добавить(Реквизит_Ячейка);
// Добавим новые реквизиты в форму
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
НовыйЭлемент = Элементы.Добавить("КомплектацияЯчейка", Тип("ПолеФормы"), Элементы.Комплектация);
НовыйЭлемент.ПутьКДанным = "Объект.Комплектация.Ячейка";
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
#КонецОбласти
Проверил, что этот код работает, если в обработке есть табличная часть. т.е. Объект.Комплектация...
Но в моей обработке Таблица с Объектом не связана , просто висит на форме (менять это нельзя).
Убрал для этого случая "Объект.Комплектация" - код отрабатывает - в процедуре ПриСозданииНаСервере, но колонки
не добавляются. Добавлять интерактивно - не предлагать.
|
|
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, может взлетит.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший