helpf.pro
Регистрация
 +15 
Распечатать

1С 8.x : Последовательность выполнения ПередЗаписью(), ПриЗаписи(), ПослеЗаписи() и ОбработкаПроведения() ?

Для чего может пригодиться знание последовательности, в которой отрабатывают такие предопределенные процедуры модуля документа и модуля формы документа, как ПередЗаписью(), ПриЗаписи(), ПослеЗаписи() и ОбработкаПроведения() ?
Ответ прост - что бы правильно организовать обработку данных на разных этапах и режимах проведения документа.

Чтобы выяснить этот вопрос, Вы можете разместить вывод сообщений в указанных процедурах и посмотреть, в каком порядке они запускаются.

Итак, начнем с самого распространенного режима - проведение документа пользователем из его формы (проще говоря нажатием на кнопку "Провести" или "Ок" в форме документа).

Последовательность запуска процедур будет выглядеть следующим образом:
Форма. Перед записью.
Модуль. Перед записью.
Модуль. При записи.
Модуль. Обработка проведения.
Форма. При записи.
Форма. После записи.
При простой интерактивной записи документа (без проведения) порядок будет тот-же, за исключением процедуры ОбработкаПроведения(), которая в режиме записи не запускается. А при отмене проведения вместо нее запускается процедура ОбработкаОтменыПроведения();

На этапах 1 и 2 Вы еще можете программно внести изменения в документ, если это требуется - запись документа в базу еще не произошла и транзакция записи еще не начата. Начиная с этапа 3 внести изменения уже не получится, т.к. процесс записи документа уже совершился, но транзакция еще не завершена. Транзакция завершится только после завершения этапа 5, когда все требуемые данные и движения документа будут полностью физически записаны в базу данных.

Теперь давайте рассмотрим проведение документа без открытия формы документа (с помощью обработки или из формы списка). Последовательность запуска процедур будет выглядеть следующим образом:
Модуль. Перед записью.
Модуль. При записи.
Модуль. Обработка проведения.
Как видите, процедуры модуля формы не запустились.

Вывод: Если Вы хотите провести какие-то проверки в процессе оформления документа (т.е. пока он открыт у пользователя), и не хотите, чтобы они выполнялись например при регламентном перепроведении документов, то их следует располагать в модуле формы документа. В противном случае, если надо эти проверки проводить всегда, то код целесообразно разместить в модуле документа. Но при этом надо помнить, что в серверном варианте работы БД код модуля документа выполняется на сервере, поэтому обязательно надо помнить, какие методы программы работают на сервере, а какие нет.

Источник: lessons1c
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 55867
 +15 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
Google maps : вывод точек на карту и режим панорамы 9
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.