Библиотека XCARRY : Проводка нескольких документов одной транзакцией с регистрацией их в виде сделки

Автор:Ilya
Дата:01.08.2008
Просмотров:3073
Скачиваний:825
Оценка: - , Оценок - 0
Скачать (zip-файл; Размер - 13333)

Обсудить в форуме

Описание

Классы библиотеки позволяют
1. Провести несколько документов (в произвольные главы, валюту, с покрытием и без) одной транзакцией.
2. Зарегистрировать проведенные документы как сделку (сложную проводку).

Код библиотеки, пример и описание библиотеки в прилагаемом архиве.

Текст примера

 import xcarry;

var OO  = XCarryDeal, 
    res,
    d   = TRecHandler("document.dbt"),
    od  = TRecHandler("obdocum.dbt"),
    odc = TRecHandler("obdocum.dbt");

record rdc ("documnt$.dbt");

// Заполняем структуру D
d.rec.Account_Payer = ...
...

// Заполняем структуру RDC (пример записи не объектного типа)
rdc.Code_Currency = 840;
rdc.Account_Payer = ...
...

// Заполняем структуру OD
od.rec.Chapter = 4;
od.rec.Account_Payer ...
...

// Заполняем структуру ODC
odc.rec.Chapter = 3;
odc.rec.Code_Currency = 840;
odc.rec.Account_Payer ...
...

// Добавляем документы
OO.AddDoc(d,   1); // Рублевый балансовый документ
OO.AddDoc(dc,  2); // валютный баласовый документ (проводка с покрытием)
OO.AddDoc(od,  1); // рублевый внебаласовый документ 
OO.AddDoc(odc, 3); // валютный внебалансовый документ (проводка без покрытия)

// Добавляем параметры сделки
OO.DL.Clear();
OO.DL.rec.Origin = 1;
OO.DL.rec.Date = {curdate};
OO.DL.rec.EndDate = {curdate};
OO.DL.rec.Descr = "Сделка зарегистрирована из макроса!";
OO.DL.rec.Oper = {oper};
OO.DL.rec.State = 2;

// Инициализируем начальный документ сделки документом RDC
OO.InitDLIniD(rdc);

// Проводим
OO.TestMode = FALSE;
OO.ToRegDeal = TRUE;
res = OO.CarryDocs();

// Печатаем отчет
OO.ORep.PrintReport(1);

if (res) 
  println("Документы проведены успешно!");
else 
  println("Документы не проведены!");
end;