1С порядок событий при проведении документа

События при проведении документа

рубрики: Документы | Дата: 3 февраля, 2018

При проведении документа выполняется множество предопределенных функций как в модуле формы, так и в модуле объекта. Часть из них выполняется в единой транзакции. В каждую из этих функций разработчик может добавить свой код.
Но чтобы правильно выбрать ту или иную функцию для своего кода, необходимо представлять в какой последовательности выполняются эти функции и где они выполняются — на клиенте или на сервере.

Как всегда я призываю не принимать на веру любую теорию, а опробовать все самостоятельно на практике. Эксперименты будем проводить на платформе 8.3 с использованием управляемой формы документа. Для начала создадим любой документ с возможностью проведения и добавим в него форму. Далее откроем модуль формы и добавим в него все предопределенные процедуры связанные с записью документа. А чтобы в момент записи и проведения документ мог сам нам рассказать в какой последовательности выполняются предопределенные процедуры, в каждую из них вставим вызов сообщения с указанием имени процедуры.
В итоге получим вот такой код:

&НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Сообщить(«МодульФормы.ПередЗаписью»); КонецПроцедуры &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Сообщить(«МодульФормы.ОбработкаПроверкиЗаполненияНаСервере»); КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Сообщить(«МодульФормы.ПередЗаписьюНаСервере»); КонецПроцедуры &НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Сообщить(«МодульФормы.ПриЗаписиНаСервере»); КонецПроцедуры &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) Сообщить(«МодульФормы.ПослеЗаписиНаСервере»); КонецПроцедуры &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) Сообщить(«МодульФормы.ПослеЗаписи»); КонецПроцедуры

И такую же процедуру проделаем с модулем объекта:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Сообщить(«МодульОбъекта.ОбработкаПроверкиЗаполнения»); КонецПроцедуры Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Сообщить(«МодульОбъекта.ПередЗаписью»); КонецПроцедуры Процедура ПриЗаписи(Отказ) Сообщить(«МодульОбъекта.ПриЗаписи»); КонецПроцедуры Процедура ОбработкаПроведения(Отказ, РежимПроведения) Сообщить(«МодульОбъекта.ОбработкаПроведения»); КонецПроцедуры

А теперь посмотрим в какой последовательности отработают все вышеперечисленные события. Для этого откроем документ и нажмем кнопку Провести, т.е. выполним проведение документа из его формы. В итоге в окне сообщений получим следующую последовательность событий:

  • МодульФормы.ПередЗаписью
  • МодульФормы.ОбработкаПроверкиЗаполненияНаСервере
  • МодульОбъекта.ОбработкаПроверкиЗаполнения
  • МодульФормы.ПередЗаписьюНаСервере
  • МодульОбъекта.ПередЗаписью
  • МодульОбъекта.ПриЗаписи
  • МодульОбъекта.ОбработкаПроведения
  • МодульФормы.ПриЗаписиНаСервере
  • МодульФормы.ПослеЗаписиНаСервере
  • МодульФормы.ПослеЗаписи

Для наглядности представим информацию в графическом виде:

Как видим все процедуры модуля документа за исключением проверки заполнения выполняются в единой транзакции. Также в этой транзакции выполнятся и процедура модуля формы ПриЗаписиНаСервере(). В этой процедуре у нас есть последний шанс отказаться от проведения документа. Стоит также отметить, что после выполнения процедуры модуля документа ПередЗаписью() у нас документ уже записан в базу данных. То есть в процедуре ПриЗаписи() у нас уже есть возможность использовать ссылку на документ.

Тем кто еще не сталкивался плотно с доработкой процедур участвующих в записи и проведении документа, советую самим поэкспериментировать с вышеперечисленными процедурами. Посмотреть какие из них выполняются при записи без проведения, при отмене проведения, во время программного проведения. Можно к примеру провести документ не из формы, а из списка документов.

Как заполнить табличную часть формы программно?  6
  Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 10060 (0x0000274C): Попытка установить соединение была безуспешной  15
  Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает 🙂 И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  37
  Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  19
 была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server  17
 Данное обстоятельство может быть обусловлено многими причинами. Одна из них — неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П Посмотреть все результаты поиска похожих

Файл:

приустановкеновогономера
1с 8.3 префикс организации
установитьновыйномер
1с префикс номера документа
префикс в 1с это
1с 8.2 префикс номера документа
1с 8.3 нумерация документов
1с нумерация документов

14 май 2012 УстановитьНовыйНомер( ПрефиксНомера ) Параметры: ПрефиксНомера (необязательный) Тип: Строка. Префикс устанавливаемого Программы 1С Устанавливает новый номер документа для заданного префикса В типовой конфигурации, как правило, установка нового номера Каким образом установить префиксы на документы? Логотип 1С-Рарус . В окне задания префикса по виду документов (справочников), подбирается В объектах 1С:Предприятия 8 существует два способа установить префикс автонумерации. Во-первых, можно передать префикс в качестве параметра Доступные цены, лицензия. Автоматизация для новых предприятий. Лаэрта — Установка и Настройка префиксов для документов и справочников в 1С. 21 фев 2012 Вход | Регистрация · 1С:Предприятие :: Метки: Установка префикса документа В базе константа с префиксом базы. Есть общий Чтобы автоматически присваивать префикс всем новым документам в базе. 17 янв 2013 В 1с Предприятии 8.2 в пользовательском режиме есть следующие документы:Заказ на протез,Заказ на Обувь, Наряд на выпуск обуви. 19 дек 2014 Форум 1С программирование, форум: общие вопросы программирования (Dev), тема: Принудительно установить префикс в документе. 13 фев 2012 Конфигурация Бухгалтерия предприятия, редакция 2.0. Подскажите, как установить префиксы номеров только у счёт фактур и актов? 8 Декабря 2014. Эта заметка вероятно заинтересует Вас, если вы уже работаете в программе 1С: Бухгалтерия предприятия, редакция 3.0 после

Составить пример качественной оценки риска для 3 ф, Инструкция мотокультиватора крот 2 с реверсом, Инструкция silent 100 crz design, Согласие супруги на отчуждение недвижимости образе, Образец заполнения анкеты на английскую визу.