Имя: Пароль:
1C
1С v8
Последовательность отработки ОбработкаУдаленияПроведения
0 Алекс587444
 
04.06.25
08:48
Доброе утро, такой вопрос у меня есть ОбработкаУдаленияПроведения в которой я вызываю фоновое задания для актуализации данных, но данные не актуализируются т.к.как я понимаю в этот момент данные по регистрам ещё не очистились, или не в этом проблема? моя задумка была такая  при отмене проведения  по событию (&после в расш)ОбработкаУдаленияПроведения  после очистки данных по регистрам, актуализировать данные состояния фоновым заданием
1 СвинТуз
 
04.06.25
08:58
Прям в транзакции вызываете?
2 Алекс587444
 
04.06.25
08:59
(1) вызываю фоновое в расширении (&после)ОбработкаУдаленияПроведения документа
3 СвинТуз
 
04.06.25
08:59
Юстас должен знать. Не спрашивали? )))
4 СвинТуз
 
04.06.25
09:00
(2)
Как то не очень звучит. Я бы так не стал делать.
5 Алекс587444
 
04.06.25
09:03
(4) а как посоветуете? с учётом того что нужно при отмене проведения использовать данных функционал?
6 youalex
 
04.06.25
09:03
В ОбработкаУдаленияПроведения() - движения стандартно еще есть.
В ПриЗаписи(), следующее событие  - нет
7 Мультук
 
гуру
04.06.25
09:03
(0)

1) А ваш код точно работает ?
Вы его отдельно тестировали ?

2) Вопрос решается (имхо) отладкой и точками останова

3) Можно посмотреть "как сделано в типовых"
1С переделали обновления "состояние заказ клиента" на фоновые

4) Добавление паузы чтобы транзакция ОбработкаУдаленияПроведения успела завершиться (не надо так делать) в фоновом решает проблему ?
8 Мультук
 
гуру
04.06.25
09:04
(6) Данных то нет. Но транзакция еще не commit
А фоновое небось в своей транзакции
9 Алекс587444
 
04.06.25
09:04
(6) тогда при записи чекну если не новый и отмена проведения то юзаю, попробую вернусь с результатом
10 youalex
 
04.06.25
09:06
(8) Неверно, движения еще не очищены. ФЗ вне транзакции - следующий вопрос)
11 СвинТуз
 
04.06.25
09:09
(9)
"чекну если не новый и отмена проведения"

приходи еще.
12 Fedor-1971
 
04.06.25
09:39
(6) Походу, перепутал последовательность обработчиков: сначала ПриЗаписи(), потом либо проведение (может автоматически чистить движения), либо отмена оного - в зависимости от режима записи
13 Алекс587444
 
04.06.25
09:10
(10) норм при записи уже нет данных в регистрах, сенк буду думать дальше
14 Fedor-1971
 
04.06.25
09:22
(13) При записи еще работает транзакция обработки документа, физически в БД ещё ничего не дописано, т.е. старые записи ещё есть в БД Фоновое задание получит их, а не новые данные
15 СвинТуз
 
04.06.25
09:26
Если фоновое запускается в той же транзакции, то типа что ты выиграешь? Все равно будешь висеть в ней пока не кончится.

Если в своей, то что делать если основная транзакция будет отменена?

Какая то логическая попка.

Я ХЗ что ты делаешь.
16 Fedor-1971
 
04.06.25
09:42
14+ по факту, если очень хочешь фоновое задание, то отправляй в него данные для актуализации, а не ссылку. Например, есть заказ и надо поставить статус новый (просто сохранили), утверждён (например, по галочке) и т.д. порядок будет следующим:
1. Планируем запуск регламентного задания (Актуализация статусов)
2. в обработчике делаем выборку (например, незакрытых заказов)
3. Реализуем функцию расчёта статуса с параметром Ссылка или Структура
вот тут и проверяем, если нам прислали структуру (примерно такую: Ссылка, Статус, ИзПроведения), то сравниваем текущий статус с присланным и, если надо, тупо записываем новый статус (защита от перепроведения документа, т.е. перепроведение отправляет статус - Утверждён, а заказ уже в статусе Отгружен), если просто ссылку - реализуем алгоритм вычисления нового статуса
17 Fedor-1971
 
04.06.25
09:38
(15) Наверно, хочет единый алгоритм для регламента и проведения
Минимум статусов из проведения, максимум на регламенте (только смысл заморачиваться с фоновым из проведения отсутствует - тупо вызываем одинаковую функцию установки статусов и всех делов)