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