Имя: Пароль:
1C
 
Как обработать такое событие.
0 lanc2233
 
22.10.16
11:49
Есть периодический регистр сведений, СтатусыЗаказов, подчиненный регистратору, движения делают несколько видов документов.

Задача : выполнить некоторый код, при изменении статуса на сегодняшнюю дату.

Проблема : непонятно где это делать. Если в модуле проведения документа, то там не получается сделать проверку.
Например, есть единственный документ, заказ 1, делает движение "Заказ1" - "В обработке".

При проведении, если проверять, то этого движения нет. Тоесть любое перепроведение будет выдавать что статус заказа изменился.

Как можно организовать проверку?
1 Рэйв
 
22.10.16
11:52
>>непонятно где это делать
В модуле менеджера РС.
2 lanc2233
 
22.10.16
11:57
В модуле набора записей, или в модуле менеджера?

Пробовал в модуле набора записей

Процедура ПриЗаписи(Отказ, Замещение)
    Для Каждого ТекСтрока из ЭтотОбъект Цикл
      // в этот цикл не всегда заходит, при проведении
      // непонятно по какому принципу        
    КонецЦикла;
КонецПроцедуры
3 iceman2112
 
22.10.16
14:48
По принципу НаборЗаписей.Записать()
4 PR
 
22.10.16
14:57
(0) Анализировать перед записью, если это проведение и протягивать в проведение
5 arsik
 
гуру
22.10.16
15:00
(2) 2 раза в эту процедуру попадает. Первый раз очищает старые движения (в нем на каких строк не будет). И второй раз когда движения новые формирует
7 arsik
 
гуру
22.10.16
18:07
(6) Ты гонишь.
(0) Только нужна переменная модуляДокумента - типа "НужноПровестиПоНашему регистру" - "ПередЗаписью"
В модуле документа - процедура "ПередЗаписью"
Типа так
Перем НужноПерепровестиМойРегистр;
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение и Ссылка.Проведен Тогда
        //Это перепроведение
        //лезем в движения этого документа. Здесь пока еще старые движения
        если намвсеженужноегоизменить тогда
            НужноПерепровестиМойРегистр = истина;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Если НужноПерепровестиМойРегистр Тогда
        //Делаем движения
    КонецЕсли;
КонецПроцедуры
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.