Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 14:50

подскажите как обратиться из модуля объекта к модулю документа

Автор Dobrolubov, 28 мая 2012, 09:07

0 Пользователей и 1 гость просматривают эту тему.

Dobrolubov

Доброго дня!!!
Суть вопроса, мне необходимо получить при проведении документа в модуле номер документа.
мне надо чтоб при проведении документа сделать некий вид операций, к примеру


Процедура ОбработкаПроведения(Отказ, Режим)
      
   // регистр Движение
      Движения.Движение.Записывать = Истина;
   Для Каждого ТекСтрокаТабличнаяЧасть1 Из ТабличнаяЧасть1 Цикл
      Движение = Движения.Движение.Добавить();
      Движение.Период = Дата;
      Движение.Номенклатура = ТекСтрокаТабличнаяЧасть1.Наименование_корма;
      Движение.Силос = ТекСтрокаТабличнаяЧасть1.Силос;
      Движение.Склад_отправитель = ТекСтрокаТабличнаяЧасть1.Склад;
      Движение.Склад_получатель = ТекСтрокаТабличнаяЧасть1.Склад;
      Движение.План = ТекСтрокаТабличнаяЧасть1.кол_во;
      Движение.Факт = ТекСтрокаТабличнаяЧасть1.кол_во;
      
         конеццикла;
   
   
        доквыбор=документы.Выработка_Кк.Выбрать();
       пока доквыбор.Следующий() цикл
       доквыбор.ПолучитьОбъект();
        для каждого СТЧ из докВыбор.ТабличнаяЧасть1 цикл
       кол_во=табличнаячасть1.Количество();
       конеццикла;
        конеццикла;
КонецПроцедуры



когда я делаю 

пока доквыбор.Следующий() цикл
       доквыбор.ПолучитьОбъект();
       
      ....
      
        конеццикла;

то он проверяет у меня все документы, а мне надо только тот который я провожу



cska-fanat-kz

При проведении лучше ничего не править в самом документе, потому что транзакция проведения происходит уже после записи документа в базу данных. В итоге после проведения вы получите новый запрос на запись документа...

Если вам нужно что-то рассчитать в колонках ТЧ при записи - делайте это здесь же в модуле объекта только в обработчике события ПередЗаписью(). И не надо тогда никакой объект документа получать, просто пишете...

для каждого СТЧ из ТабличнаяЧасть1 цикл
       кол_во=табличнаячасть1.Количество();
конеццикла;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск