Имя: Пароль:
1C
1С v8
Изменение ТЧ документа
0 Kurbash
 
15.12.14
06:51
Всем привет. В обработчик события ПередЗаписью на сервере модуля формы документа создаю ТЗ. Хочу изменить ТЧ документа с отбором по ТЗ. Пишу так:

    для каждого стр  из ТЗ цикл
        ПараметрыОтбора = Новый Структура;
         ПараметрыОтбора.Вставить("Сотрудник", стр.Сотрудник);
         Строки = Объект.ТЧ.НайтиСтроки(ПараметрыОтбора);
         для каждого с из строки цикл
             с.крт=стр.ктр;
             конеццикла;
    конеццикла;

проходит нормально, ошибок нет, но значения реквизита в ТЧ не меняется. В чем может быть дело?
1 patria0muerte
 
15.12.14
06:57
Если я не ошибаюсь, тебе надобно из объекта данную ТЧ получить, поменять в ней все что надо, а потом в объект обратно сложить.

Там что-то вроде РеквизитФормыВЗначение(). Оттуда уже и начинай.
2 patria0muerte
 
15.12.14
06:59
+(1) Как мне кажется, надо вообще так сделать:
1) получить объект (РеквизитФормыВЗначение)
2) Собрать нужную структуру с отборами
3) Зафигачить в модуле объекта процедуру по обработке ТЧ по данной структуре
4) Положить объект обратно (ЗначениеВРеквизитФормы(), вроде)

Как-то так. Но возможно, что я не прав.
3 Kurbash
 
15.12.14
07:05
(1)ага, так и сделал

НашОбъект=РеквизитФормыВЗначение("Объект");    
    для каждого стр  из ТЗ цикл
        

        ПараметрыОтбора = Новый Структура;
         ПараметрыОтбора.Вставить("Сотрудник", стр.Сотрудник);
         Строки = НашОбъект.ТЧ.НайтиСтроки(ПараметрыОтбора);
         для каждого с из строки цикл
             с.крт=стр.ктр;
             конеццикла;
         конеццикла;
    ЗначениеВРеквизитФОрмы(НашОбъект,"Объект");
4 фобка
 
15.12.14
08:39
(2) не, это лишнее. В (0) рабочий код