Как изменить добавленный руками реквизит таблицы значений в событии формы ПриИзменении?

1. WideSmile 24.11.09 23:21 Сейчас в теме
Думаю вопрос старый и глупый, по форумах полазил - ничего не нашел. (видимо ищу не по тем ключевым словам)

В общем на форму документа выведена его табличная часть и затем в неё добавлена колонка, хотелось бы чтобы при событии <ИмяТабличнойЧасти><ИмяРеквизита>ПриИзменении(Элемент) происходило автозаполнение новой колонки(НЕ являющейся реквизитом табличной части). Не пойму как можно обратиться к этой колонке для Записи.

Пример. В основной форме документа РеализацияТоваровУслуг в табличной части Товары есть Код и Артикул (не входящие в раквизиты Табличной части), их заполнение происходит во время обработки события ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки). Хотелось бы пересчитывать значения только при изменении реквизита Номенклатура. Но не понятно как можно к ним обратиться. ЭлементыФормы.Товары.ТекущиеДанные, ЭлементыФормы.Товары.ТекущаяСтрока - имеют тип - ДокументТабличнаяЧастьСтрока.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Моха 25.11.09 17:49 Сейчас в теме
В ОформленииСтроки Ищи ОформлениеЯчейки. В значение Ячейки и пиши.
Прим. Пишу малёк сумбурно, ибо нет возможности прям ща в код залезть. Если не прорвёшься сам, напиши сюда - отвечу подробнее.
3. dotBY 27.11.09 14:17 Сейчас в теме
Событие ПриПолученииДанных табличной части используй. В моей процедуре Артикул и Модель - добавленные колонки без связи с данными:
Процедура СоставКоробаПриПолученииДанных( Элемент, ОформленияСтрок )
	
	Для Каждого ЭлементОформления Из ОформленияСтрок Цикл
	      ДанныеСтроки = ЭлементОформления.ДанныеСтроки;
	      ЭлементОформления.Ячейки.Артикул.Значение =
                  ДанныеСтроки.Номенклатура.Артикул;
	      ЭлементОформления.Ячейки.Модель.Значение = 
                  ДанныеСтроки.Номенклатура.Код;
		
	КонецЦикла;
	
КонецПроцедуры // СоставКоробаПриПолученииДанных()
Показать

Отрабатывает это событие при любом изменении данных табличной части, которое требует перерисовки элемента управления. Но не при прокрутке )) И используй разыменование через точку "ДанныеСтроки.Номенклатура.Код" только в том случае, когда у тебя число строк не более 100, т.к. на каждое такое разыменование получается объект целиком (Номенклатура). Иначе будет тормозить и лучше одним запросом.
4. WideSmile 01.12.09 17:14 Сейчас в теме
Моха пишет: В ОформленииСтроки Ищи ОформлениеЯчейки.


В том то и дело, что в событии <ИмяТабличнойЧасти><ИмяРеквизита>ПриИзменении(Элемент) нет параметра ОформлениеСтроки

Сергей aka dotBY, Спасибо, вариант. НО Я использовал Событие ПриВыводеСтроки. Но это не хорошо - вызывается каждый раз для всех строк при изменении одной. Идеально конечно бы было ПриИзменении, но я не вижу способа залесть отсюда в реквизиты Элемента формы. СЛЕДОВАТЕЛЬНО:ПолученииДанных - Возникает при получении данных табличным полем, после обработки событий ПриВыводеСтроки. (количество вызовов ОЧЕНЬ не оптимально - нафига переполучать данные не изменённых объектов)
Оставьте свое сообщение

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