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

Можно ли в Процедуры ОбработкаПроведения() сделать изменение документа?

Можно ли в Процедуры ОбработкаПроведения() сделать изменение документа?
Я
   DES
 
15.07.19 - 19:55
В Модуле объекта В Процедуре ОбработкаПроведения() нужно сделать формирование XML в файл.
Но нужно делать только после Проведения (как узнать что текущий документ Проведен) и только один раз.
Есть в Документе реквизит XMLсформирован.
Корректно ли записывать в него признак того что XML был сформирован. ?
 
 
   SleepyHead
 
1 - 15.07.19 - 19:55
Можно, но изменения сохранены не будут ))
   DES
 
2 - 15.07.19 - 20:14
Модуле есть такие предопределнные
ОбработкаПроведения()
ОбработкаУдаленияПроведения()
АрхивироватьДокумент() 

Последний не могу найти в хелпе.
   RomanYS
 
3 - 15.07.19 - 20:43
(1) +1
(0) пиши признак в регистр. Или передЗаписью
(2) он не предопределнный
   Провинциальный 1сник
 
4 - 15.07.19 - 20:56
В конце проводения создавай фоновое задание, передавай в него ссылку документа и в нём уже делай своё грязное дело с объектом)
   pavig
 
5 - 16.07.19 - 00:42
(4)
Слишком жестоко.
   pavig
 
6 - 16.07.19 - 00:50
(0)

Платформа для механизма "История данных" использует следующее:
При записи регистрирует документ на создание версии.
Регламентное задание в определенное время (раз в минуту или другое расписание) собирает зарегистрированные документы и начинает создавать для них версии и записывает их.

По-хорошему, тебе надо сделать так же:
1. При записи добавляешь ссылку на свой документ (только если его там еще нет) в РС
2. Регламентным заданием собираешь ссылки ил п.1 и формируешь для каждого документа XML. Записываешь в ресурс флаг о том что XML сформирован. Документ для этого перезаписывать некорректно.
Минус решения только в том, что XML будут созданы не сразу, а по расписанию.

Но ни в коем случае не создавай XML в обработке проведения.

В (4) посыл правильный: делать надо асинхронно, но есть конкретная опасность положить сервер при массовом проведении таких документов.
   Консультант Баранов
 
7 - 16.07.19 - 01:25
(0) Создать подписку. В подписке записывать в регистр сведений.
   FIXXXL
 
8 - 16.07.19 - 09:21
(7) подписка работает в той же транзакции
блокировки, ожидания и вот это вот всё...
   novichok79
 
9 - 16.07.19 - 10:14
можно регл. задание формирования XML запускать каждые n минут, данные о выгруженных XML хранить в отдельном регистре.
на форме подтягивать значение оттуда.
   Trier
 
10 - 16.07.19 - 10:15
(0)
В Модуле объекта В Процедуре ОбработкаПроведения() нужно сделать формирование XML в файл.

Вот тут у тебя ошибка - на самом деле в ОбработкеПроведения тебе делать это не нужно.
Я у себя сделал примерно как в 6
   Консультант Баранов
 
11 - 16.07.19 - 10:35
(8) > подписка работает в той же транзакции

И? В какой момент будет отмена транзакции если в самой подписке такого не будет?
   Конструктор1С
 
12 - 16.07.19 - 10:59
(0) ты пытаешься в проведение запихнуть логику, которая не относится к проведению. Это как-минимум не есть гуд. Может быть потенциальным источником лишних проблем и тормозов
   FIXXXL
 
13 - 16.07.19 - 11:04
(11) тут дело не в Отказе, а в увеличении времени транзакции
не надо в проведение совать не относящееся к проведению непосредственно

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