Проведение одного документа при проведении другого

1. 20.11.20 12:15 Сейчас в теме
Необходимо при проведения документа реализации товара провести другой документ. Как лучше всего это реализовать? На форумах люди пишут что в обработке проведения это делать не есть правильно, но не объясняют почему. Можете объяснить почему так делать нельзя и какова альтернатива?
Найденные решения
4. Dream_kz 111 20.11.20 12:23 Сейчас в теме
(1) В обработке проведения активна транзакция, и проводя другой документ, мы начинаем вложенную транзакцию, соот-но
- мы растягиваем транзакцию, и это плохо, так как блокировки
- если транзакция второго документа откатится, то и откатится проведение первого документа, а такого быть не должно, первый документ провели, это одни данные, факт это должен быть зафиксирован, а второй документ это другие данные

идеальной реализации нет, если б было событие объекта ПослеЗаписи (то бишь после завершения транзакции), то через него, но оно есть только на форме, и при интерактивной работе надо через него, а вот при неинтерактивной надо строить костыли с фоновыми заданиями и тп
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. Dream_kz 111 20.11.20 12:23 Сейчас в теме
(1) В обработке проведения активна транзакция, и проводя другой документ, мы начинаем вложенную транзакцию, соот-но
- мы растягиваем транзакцию, и это плохо, так как блокировки
- если транзакция второго документа откатится, то и откатится проведение первого документа, а такого быть не должно, первый документ провели, это одни данные, факт это должен быть зафиксирован, а второй документ это другие данные

идеальной реализации нет, если б было событие объекта ПослеЗаписи (то бишь после завершения транзакции), то через него, но оно есть только на форме, и при интерактивной работе надо через него, а вот при неинтерактивной надо строить костыли с фоновыми заданиями и тп
2. UberElder 20.11.20 12:18 Сейчас в теме
Добрый день, а какой смысл данный задумки, что хотите получить?
3. MrKondr 20.11.20 12:23 Сейчас в теме
(2) При проведении документа реализации должно осуществляться начисление бонусных баллов в проценте от суммы проданных товаров. Начисление производится в документе НачислениеИСписание бонусных баллов, отсюда и необходимость программного проведения одного при проведении другого.
5. user633533_encantado 7 20.11.20 12:58 Сейчас в теме
(3) А если еще раз проведут ту же реализацию, то и балы еще раз начислять ?
6. Азбука Морзе 90 20.11.20 13:20 Сейчас в теме
(5) а если распроведут реализацию - баллы нужно списать? Согласен, что хрень какая-то
7. Арах 20.11.20 14:24 Сейчас в теме
(3)тогда релизуйте на форме, в процедуре после записи
ipoloskov; +1 Ответить
8. shurikvz 20.11.20 22:05 Сейчас в теме
(4) По 2-му пункту - зависит от логики работы. Не факт что не должно быть. Возможно как раз и надо убедиться в том что документ начисления бонусов проведен вместе с реализацией.

(6) Не вижу проблем. Сделать в событии ОбработкаУдаленияПроведения - распроведение подчиненного документа.

(1) Это работоспособно. Если связь документов Реализация и НачислениеБонусных балов строго 1 к 1 (на один документ реализация 1 документ начисления бонусов), то просто заведите в документе реализация реквизит - ссылку на автоматически создаваемый документ бонусных балов. Если нет - нужен будет другой механизм хранения связи.
Хинт: если будете делать реквизитом - озаботьтесь в событии ПередЗаписью проверкой, что документ начисления бонусов из этого реквизита действительно существует в базе, иначе очищайте реквизит.
Оставьте свое сообщение
Вопросы с вознаграждением