Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отловить событие ПослеПроведения

Отловить событие ПослеПроведения
Я
   Juliette_Juliette
 
03.10.20 - 08:23
Задача немного нетривиальная. Общепит, производство.
Надо в момент проведения поступления товаров часть товара переводить в другой товар. Для этого используем документ Пересортица.
Как я поняла, ни в модуле документа, ни в подписке проведения нет смысла это писать, т.к. движения документа поступления еще отсутствуют.
Тем не менее код автоматического создания документа пересортица реализован в подписке пока в режиме проведения = Записать. Провести не дает.
Создать регистр отложенного проведения, куда писать ссылки документов пересортица? Пока так думаю. Может проще можно?
   Timon1405
 
1 - 03.10.20 - 09:08
можно заранее рассчитать итоговые таблицы движений по регистрам, положить их в Объект.ДополнительныеСвойства и достать в подписке в Источник.ДополнительныеСвойства.Получить(). покурите типовые конфигурации
   Cyberhawk
 
2 - 03.10.20 - 09:36
Только через очередь
   Juliette_Juliette
 
3 - 03.10.20 - 10:49
так?
создала регистр отложенных, куда добавляю ссылки в подписке проведения, регламентное задание, код такой
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ОчередьОтложенныхОперацийПересортицыДляПроведения.Документ КАК Документ
        |ИЗ
        |    РегистрСведений.ОчередьОтложенныхОперацийПересортицыДляПроведения КАК ОчередьОтложенныхОперацийПересортицыДляПроведения";
    
    РезультатЗапросаВыборка = Запрос.Выполнить().Выбрать();
    Пока РезультатЗапросаВыборка.Следующий() Цикл
        Попытка
            ДокОбъект = РезультатЗапросаВыборка.Документ.ПолучитьОбъект();
            ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
            
            НаборЗаписей = РегистрыСведений.ОчередьОтложенныхОперацийПересортицыДляПроведения.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.Документ.Установить(РезультатЗапросаВыборка.Документ);
            НаборЗаписей.Записать();         
        Исключение
        КонецПопытки;    
    КонецЦикла;
   Juliette_Juliette
 
4 - 03.10.20 - 11:02
вроде работает
спасибо ;)
   PR
 
5 - 03.10.20 - 11:05
(2) Ну да, только через очередь, ага, других вариантов даже теоретически нет С — сарказм
   PR
 
6 - 03.10.20 - 11:07
(0) Если нужна транзакционная целостность, то делай документ-контейнер
То есть новый документ, при его проведении создавай оба документа
Если один из них не создастся, то в итоге не создавай оба
Если делаешь его непроведенным, то распроводи оба
И т. д.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.