|
Программное обращение к вновь добавленной колонке | ☑ | ||
---|---|---|---|---|
0
Likons
02.04.20
✎
12:20
|
Добрый день , ув. Коллеги )
Танцую с бубном , не могу разобраться ( Подскажите пожалуйста , как правильно выйти из ситуации. Есть обработка , в ней есть табличная часть(ТабличнаяЧастьЗаказа) с набором её реквизитов. Так же есть структура (СтруктураСоответствияСкладов) с названием колонок , которые необходимо добавить в эту табличную часть. Выглядит структура таким образом : ("НазваниеСклада (простая строка)" , Элемент справочника склады) Далее мне нужно каким то образом обратиться к вновь добавленным колонкам , дабы их как то заполнить. Проблема в том , что вновь добавленные колонки , не являются реквизитами моей табличной части и я не знаю , как правильно к ним обращаться ( Добавляю колонки я таким образом : Для каждого Элемент из СтруктураСоответствияСкладов цикл ИмяНовойКолонки = Элемент.Ключ; НоваяКолонка = ЭлементыФормы.ТабличнаяЧастьЗаказа.Колонки.Добавить(ИмяНовойКолонки); НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); КонецЦикла; А вот так я пытаюсь их заполнять : Для каждого Колонка из ЭлементыФормы.ТабличнаяЧастьЗаказа.Колонки цикл ЗначениеДляПоиска = неопределено; СтруктураСоответствияСкладов.Свойство(Колонка.Имя,ЗначениеДляПоиска); Если ЗначениеДляПоиска <> неопределено тогда СтруктураОтбора = Новый Структура("Склад",ЗначениеДляПоиска); МассивСтрок = ТаблицаОстатков.НайтиСтроки(СтруктураОтбора); Для каждого Элемент из МассивСтрок цикл СтрокаСНужнойНоменклатурой = ТабличнаяЧастьЗаказа.Найти(Элемент.Номенклатура,"Номенклатура"); Если СтрокаСНужнойНоменклатурой <> Неопределено тогда СтрокаСНужнойНоменклатурой[Колонка.Имя] = Элемент.Остаток; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Буду благодарен за любые наводки ) |
|||
1
Likons
02.04.20
✎
12:22
|
Уточнение : формы - обычные
|
|||
2
mistеr
02.04.20
✎
12:23
|
(0) >Далее мне нужно каким то образом обратиться к вновь добавленным колонкам , дабы их как то заполнить.
Чтобы обратиться, нужно их где-то запомнить после создания. Например, в массиве или соответствии. |
|||
3
Likons
02.04.20
✎
12:27
|
(2) не понял ( они же у меня уже есть добавленные в табличную часть ?
Вам не трудно будет показать какой то произвольный пример ? Ну или структуру нужного соответствия набросать и в какой момент его использовать ? |
|||
4
Likons
02.04.20
✎
12:34
|
(2) или может быть можно добавлять колонки не как элементы формы , а как реквизиты табличной части ?
|
|||
5
acht
02.04.20
✎
12:37
|
(3) Видите ли, Андрей Николаевич, в табличную часть обработки нельзя добавить колонку без изменения метаданных в конфигураторе. То, что вы сделали - называется: "добавили колонку отображения к элементу формы". При этом, эта колонка отображения не может быть связана с данными, потому что в табличной части их нет.
Измените свою хотелку. |
|||
6
mistеr
02.04.20
✎
12:41
|
(2) (3) Пардон, не внимательно прочитал.
Ты путаешь реквизиты ТЧ и колонки табличного поля на форме, отображающего данные этой ТЧ. В табчасть нельзя динамически добавлять реквизиты. В табличное поле можно добавить любое количество колонок, но если они не связаны с данными из ТЧ, отображать что-либо в них — полностью твоя задача. Возможно, тебе подойдет табличное поле, связанное не с ТЧ, а с таблицей значений. |
|||
7
Likons
02.04.20
✎
12:47
|
(5) (6) Беда ( Ну , я понимаю , чем колонка на форме отличается от реквизита ТЧ. А что значит "связанное данными" ? Имеется в виду путь к данным во вновь созданной колонке ? Если это так , то насколько я понимаю , все равно надо будет к ней как то обращаться.
|
|||
8
mistеr
02.04.20
✎
13:02
|
(7) Начни с вопроса "где будут физически храниться значения в этих колонках при работе формы?"
|
|||
9
Likons
02.04.20
✎
13:09
|
(8) Подозреваю , что логично их хранить в таблице значений
|
|||
10
Likons
02.04.20
✎
13:10
|
(8) Намек понял , сейчас попробую разобраться ) Спасибо )
|
|||
11
Likons
02.04.20
✎
13:29
|
(8) Благодарю , очень могли )
Если кому понадобится , решил таким образом : 1. Создал новую и заполнил таблицу значений (ТаблицаРезультат) 2. Добавил на форму обработки элемент управление "ТабличноеПоле" с типом "Таблица Значений" (ТабличноеПолеТЧЗаказа) 3. Сделал так : ТабличноеПолеТЧЗаказа = ТаблицаРезультат.Скопировать(); ЭлементыФормы.ТабличноеПолеТЧЗаказа.СоздатьКолонки(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |