8.х ПослеЗаписи() при программном проведении

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alp, 20 фев 2016.

  1. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Доброго времени Суток! Как при программном проведении документа инициализировать событие ПослеЗаписи() ? То есть нужно выполнить действие, после того, как завершилась процедура ОбработкаПроведения().
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    После записи - это обработчик события в модуле формы.

    ...............
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

    дальше делаем что нужно
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Смотрите в сторону подписок на события
  4. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26

    А если документы проводятся из меню "Операции" --- Проведение документов ?
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    тогда только подпиской на событие.
  6. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    В подписках на событие нету такого события "после записи", по крайней мере я не нашел.
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Можете объяснить что вы хотите сделать ?
  8. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Я думаю, автору нужно, вызвать свой код только после обработки проведения. В любом случае обработка проведения самого документа- это последняя стадия. Но, подписка на событие обработка проведения отрабатывает после обработки проведения самого документа. Но только есть одно, если мне память не изменяет, то они обе будут выполняться в одной транзакции.
    --- Объединение сообщений, 20 фев 2016 ---
    Интересно, кстати, какое действие нужно выполнить после проведения?
  9. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Я хочу, что бы после проведения документа, у меня производился расчет по результатам проведения данных в регистры, я понимаю , что можно сделать расчет в модуле проведения, но это грамостко и сложно... Просто не думал , что столкнусь с такой проблемой.
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    А в чем сложность-то ? Вот в обработке проведения и пишите ваш расчет.
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Расчет зависит от каждого докумета?
  12. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Ну если типовая, то саму обработку не трогайте. Делайте через подписку.
  13. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Хотел пойти по простому пути :) видимо придется рассчитывать в обработке проведения..
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Самый простой - иногда не самый правильный. Что будете делать с расчетом, если какая-нибудь обезьяна пометит документ на удаление ?
    alp нравится это.
  15. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Да, после проведения документа, рассчитываются данные за период по всем документам этим документам.
    --- Объединение сообщений, 20 фев 2016 ---
    А при подписке на событие "обоработка проведения" данные в Регистр уже запишутся ?
    --- Объединение сообщений, 20 фев 2016 ---
    Как раз должен делаться перерасчет данных.
  16. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Да. Только примите во внимание ситуацию, что alexburn описал.
    alp нравится это.
  17. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Спасибо за помощь!
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    После окончания выполнения ОбработкаПроведения() и следующей за ней подпиской на события, данных в регистре может не быть, т.к. транзакция на этот момент еще не завершилась. Данные могут быть записаны в регистр принудительно, но если конфигурация типовая, то вероятность этого 50/50.

    Если нужно выполнять какие-то вычисления, то правильнее будет выполнить проведение документов и уже после окончания этого выполнять свой расчет.

Поделиться этой страницей