Skip to content

Document posting

DitriXNew edited this page Jun 16, 2020 · 5 revisions

Модуль объекта документа:

PostingServer.Post(ThisObject, Cancel, PostingMode, ThisObject.AdditionalProperties);

Общий модуль проведения вызывает функции и процедуры из модуля менеджера документа:

Function Post(DocObject, Cancel, PostingMode, AddInfo = Undefined) Export
    Module.PostingGetDocumentDataTables(DocObject.Ref, Cancel, PostingMode, Parameters, AddInfo);
    Module.PostingGetLockDataSource(DocObject.Ref, Cancel, PostingMode, Parameters, AddInfo);
    // Установка блокировки регистров
    Module.PostingCheckBeforeWrite(DocObject.Ref, Cancel, PostingMode, Parameters, AddInfo);
    Module.PostingGetPostingDataTables(DocObject.Ref, Cancel, PostingMode, Parameters, AddInfo);
    // Запись движений регистров
    Module.PostingCheckAfterWrite(DocObject.Ref, Cancel, PostingMode, Parameters, AddInfo);
EndFunction

Модуль менеджера документа:

Function PostingGetDocumentDataTables(Ref, Cancel, PostingMode, Parameters, AddInfo = Undefined) Export

Описание: Подготовка данных заполнения. В дальнейшем на основе которых будут выполнены блокировки и заполнены наборы движений в дальнейшем.

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

Алгоритм выполнения:

  1. Создание структур таблиц. Каждая таблица не имеет записей, но имеет колонки, заполненные на основе регистров и текущего документа.
  2. Запись статуса документа и определение необходимости проведения по данному статусу.
  3. Подготовка данных для заполнения структуры таблиц.
  4. Заполнение таблиц согласно заданным правилам.
  5. Возврат значения.
Function PostingGetLockDataSource(Ref, Cancel, PostingMode, Parameters, AddInfo = Undefined) Export

Описание: Подготовка данных блокировок регистров по заполненным ранее данным заполнения и заданным полям регистров.

Возвращаемое значение: соответствие. Ключ представляет имя регистра, свойство содержит структуру регистра с заданными полями и данными блокировки.

Алгоритм выполнения:

  1. Получение из модуля регистра накопления структуры с заданными полями блокировки
  2. Возврат значения.
Procedure PostingCheckBeforeWrite(Ref, Cancel, PostingMode, Parameters, AddInfo = Undefined) Export

Описание: Выполнение проверок перед проведением. Возможен отказ от проведения.

Алгоритм выполнения:

  1. Выполнение проверки.
Function PostingGetPostingDataTables(Ref, Cancel, PostingMode, Parameters, AddInfo = Undefined) Export

Описание: Подготовка данных наборов движений на заполненных ранее данных заполнения.

Возвращаемое значение: соответствие. Ключ является набором записи регистра. Свойство представляет собой структуру. Поля структуры:

  • RecordType – вид движения накопления;
  • RecordSet – таблица значений с заполненными данными;
  • WriteInTransaction – булево, определяет момент записи движения;

Алгоритм выполнения:

  1. Создание и заполнение соответствия структур.
  2. Возврат значения.
Procedure PostingCheckAfterWrite (Ref, Cancel, PostingMode, Parameters, AddInfo = Undefined) Export

Описание: Выполнение проверок после записей движений по регистрам. Возможен отказ от проведения.

Алгоритм выполнения:

  1. Выполнение проверки.
Clone this wiki locally