Проведение одного документа при проведении другого
По теме из базы знаний
- Документ на документ. Автоматическое создание связанных документов
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Загрузка чеков в 1С из ФНС в документы БП, УНФ, ERP, КА и УТ
- Заполнение табличных частей документов одного вида из табличных частей списка документов другого вида (альтернатива ввода на основании)
- Интеграция 1С с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода - для УНФ, УТ, КА, ERP
Найденные решения
(1) В обработке проведения активна транзакция, и проводя другой документ, мы начинаем вложенную транзакцию, соот-но
- мы растягиваем транзакцию, и это плохо, так как блокировки
- если транзакция второго документа откатится, то и откатится проведение первого документа, а такого быть не должно, первый документ провели, это одни данные, факт это должен быть зафиксирован, а второй документ это другие данные
идеальной реализации нет, если б было событие объекта ПослеЗаписи (то бишь после завершения транзакции), то через него, но оно есть только на форме, и при интерактивной работе надо через него, а вот при неинтерактивной надо строить костыли с фоновыми заданиями и тп
- мы растягиваем транзакцию, и это плохо, так как блокировки
- если транзакция второго документа откатится, то и откатится проведение первого документа, а такого быть не должно, первый документ провели, это одни данные, факт это должен быть зафиксирован, а второй документ это другие данные
идеальной реализации нет, если б было событие объекта ПослеЗаписи (то бишь после завершения транзакции), то через него, но оно есть только на форме, и при интерактивной работе надо через него, а вот при неинтерактивной надо строить костыли с фоновыми заданиями и тп
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) В обработке проведения активна транзакция, и проводя другой документ, мы начинаем вложенную транзакцию, соот-но
- мы растягиваем транзакцию, и это плохо, так как блокировки
- если транзакция второго документа откатится, то и откатится проведение первого документа, а такого быть не должно, первый документ провели, это одни данные, факт это должен быть зафиксирован, а второй документ это другие данные
идеальной реализации нет, если б было событие объекта ПослеЗаписи (то бишь после завершения транзакции), то через него, но оно есть только на форме, и при интерактивной работе надо через него, а вот при неинтерактивной надо строить костыли с фоновыми заданиями и тп
- мы растягиваем транзакцию, и это плохо, так как блокировки
- если транзакция второго документа откатится, то и откатится проведение первого документа, а такого быть не должно, первый документ провели, это одни данные, факт это должен быть зафиксирован, а второй документ это другие данные
идеальной реализации нет, если б было событие объекта ПослеЗаписи (то бишь после завершения транзакции), то через него, но оно есть только на форме, и при интерактивной работе надо через него, а вот при неинтерактивной надо строить костыли с фоновыми заданиями и тп
(2) При проведении документа реализации должно осуществляться начисление бонусных баллов в проценте от суммы проданных товаров. Начисление производится в документе НачислениеИСписание бонусных баллов, отсюда и необходимость программного проведения одного при проведении другого.
(4) По 2-му пункту - зависит от логики работы. Не факт что не должно быть. Возможно как раз и надо убедиться в том что документ начисления бонусов проведен вместе с реализацией.
(6) Не вижу проблем. Сделать в событии ОбработкаУдаленияПроведения - распроведение подчиненного документа.
(1) Это работоспособно. Если связь документов Реализация и НачислениеБонусных балов строго 1 к 1 (на один документ реализация 1 документ начисления бонусов), то просто заведите в документе реализация реквизит - ссылку на автоматически создаваемый документ бонусных балов. Если нет - нужен будет другой механизм хранения связи.
Хинт: если будете делать реквизитом - озаботьтесь в событии ПередЗаписью проверкой, что документ начисления бонусов из этого реквизита действительно существует в базе, иначе очищайте реквизит.
(6) Не вижу проблем. Сделать в событии ОбработкаУдаленияПроведения - распроведение подчиненного документа.
(1) Это работоспособно. Если связь документов Реализация и НачислениеБонусных балов строго 1 к 1 (на один документ реализация 1 документ начисления бонусов), то просто заведите в документе реализация реквизит - ссылку на автоматически создаваемый документ бонусных балов. Если нет - нужен будет другой механизм хранения связи.
Хинт: если будете делать реквизитом - озаботьтесь в событии ПередЗаписью проверкой, что документ начисления бонусов из этого реквизита действительно существует в базе, иначе очищайте реквизит.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот