Имя: Пароль:
1C
1С v8
КАК запустить обработчик события табличной части документа при программном заполнении
0 kgivanovich
 
28.03.18
15:30
Есть обработка, которая создает и заполняет документ, шапку и таб.часть. Все делаю на клиенте. Сначала создается УФ нового документа, заполняется шапка через ФормаДокумента.Объект и далее можно заполнить таб.часть через ФормаДокумента.Объект.ТабЧасть.
НО! При вводе новой строки и заполнения рекизита, скажем "Сотрудник" или "Номенклатура", хотелось бы запустить имеющийся обработчик события типа "СотрудникПриИзменении", который дополняет эту строку дополнительными данными: подразделение, оклад и прочее, а в случае с номенклатурой - единицу изм., коэфф. и т.д.
Эти обработчики работают с элементами формы, а точнее с текущей строкой и текущими данными. И вот у меня никак не получается добиться того, чтобы там появились данные. Делаю так:
ФормаДокумента.Элементы.ТабЧасть.ДобавитьСтроку()
После этого
ФормаДокумента.Элементы.ТабЧасть.ТекущиеДанные и ФормаДокумента.Элементы.ТабЧасть.ТекущаяСтрока содержать значения "Неопределено"
Чего не хватает? Что не так?
1 Малыш Джон
 
28.03.18
15:33
может

НоваяСтрока = ФормаДокумента.Элементы.ТабЧасть.ДобавитьСтроку();

?

и с ней работать?
2 Малыш Джон
 
28.03.18
15:34
+(1)

ну если так уж нужна текущая строка, тогда ещё:

ФормаДокумента.Элементы.ТабЧасть.ТекущаяСтрока = НоваяСтрока;
3 kgivanovich
 
28.03.18
15:37
ДобавитьСтроку() - это не функция, значение не возвращает
ТекущиеДанные доступны только для чтения
В ТекущаяСтрока содержится идентификатор строки, а не строка
4 Малыш Джон
 
28.03.18
15:46
оу, не заметил, что УФ
5 Mankubus
 
28.03.18
15:51
(0) никак не запустить. Копируй процедуру в свою обработку и запускай
6 kgivanovich
 
28.03.18
15:55
(5) Обидно однако. А зачем же тогда обработчик сделан "экспортным"?
7 Tateossian
 
28.03.18
15:59
(6) Текущие данные можно установить, спозиционировав на строку и колонку. И потом вызвать собработчик при изменении, передав текущее поле.
8 Tateossian
 
28.03.18
16:01
(6) Правда, я так делал на обычной форме

    Данные = ЭлементыФормы.Комплектующие.ТекущаяКолонка.Данные;
    
    ...
        
        МатериалыНоменклатураПриИзменении(ЭлементыФормы.Материалы.Колонки[Данные].ЭлементУправления);


Для управляемой это тоже можно повторить, так как можно обратиться к элементу коллекции таблицы формы по индексу.
9 kgivanovich
 
28.03.18
16:07
(8) У меня управляемая форма. Никаких аналогий с обычными формами там нет, как и нет аналогии китайского с русским. Приведи, пжл, хоть пару строк текста, как добавить строку и как спозиционироваться, да так, чтобы при этом в ФормаДокумента.Элементы.ТабЧасть.ТекущиеДанные появилась эта строка.