АРМ «КЛИЕНТ». Описание интерфейса DLLимпорта / экспорта
29.03.11 | Раздел публикации: Сбербанк России
АРМ «КЛИЕНТ»
Описание интерфейса DLLимпорта / экспорта
DLL содержит три группы функций. Первая группа состоит из двух функций и служит для инициализации и закрытия библиотеки (функции InitExtLib, CloseExtLib). Ко второй группе относятся функции, предназначенные для получения информации о данном варианте библиотеки: имени библиотеки, которое отражает ее назначение, совместимости для обработки требуемого вида документов, по умолчанию заданном имени входных и выходных файлов, возможности дописывания в файл для экспорта данных, а так же функция возвращающая код последней произошедшей ошибки (функции CheckIsCompatible, GetExtLibName, GetInOutFileName, GetTegAddingInFileExp, GetLastErrorDll, GetTegTransferLowOper). К третей группе относятся функции, предназначенные для обработки документа (функции TuneExtLib, ProcDocument, ProcAllDocuments), первая из которых служит для настройки библиотеки и установки параметров необходимых для импорта или экспорта данных, вторая служит для обработки каждого документа в отдельности и последняя функция служит для предварительной, в случае импорта или окончательной в случае экспорта обработки всех документов.
Далее приводится краткое описание функций библиотеки:
Функция, вызываемая при инициализации библиотеки:
function InitExtLib (RegName : PChar): boolean;
RegName— регистрационное имя программы, которая вызывает DLL.
Функция, вызываемая при закрытии библиотеки:
function CloseExtLib (): boolean;
Функция для проверки совместимости библиотеки указанному типу документа и совершаемой операции (экспорт / импорт):
function CheckIsCompatible (dwDocType: DWORD; bDirectionImport: boolean): boolean;
dwDocType— указатель на переменную, содержащую значение типа документа (1- для платежных поручений);
bDirectionImport— принимает значение Trueв случае импорта документа, и Falseв случае экспорта документа;
функция возвращает Trueв случае, если библиотека совместима с указанным типом документа и операцией.
Функция для получения названия библиотеки:
function GetExtLibName (szLibName: pChar; pdwNameLen: pDWORD): boolean;
szLibName— указатель на строковую переменную;
pdwNameLen— указатель на переменную, в которой содержится длина строковой переменной;
в случае успешной работы функция возвращает значение True.
Функция возвращающая имя файла экспорта/импорта, используемого по умолчанию:
function GetInOutFileName (szFileName: pChar; pdwNameLen: pDWORD; bDirectionImport: boolean): boolean;
szFileName— указатель на строковую переменную;
pdwNameLen— указатель на переменную, в которой содержится длина строковой переменной;
bDirectionImport— принимает значение Trueв случае импорта документа, и Falseв случае экспорта документа;
в случае успешной работы функция возвращает значение True.
Функция, возвращающая признак, указывающий на поддержку возможности дописывания данных в файл экспорта (используется только при экспортировании документа):
function GetTegAddingInFileExp() : boolean;
функция должна возвращать True, если возможность дописывания данных в файл экспорта поддерживается.
Функция, возвращающая признак, указывающий на необходимость запроса операций, начиная с нижнего предела заданного временного интервала, и заканчивая текущей датой (необходимо при расчете оборотов по дебету и/или кредиту)
function GetTegTransferLowOper() : boolean;
функция должна возвращать True, для запроса операций, начиная с нижнего предела заданного временного интервала, и заканчивая текущей датой.
Функция возвращающая код последней ошибки:
function GetLastErrorDll (): integer;
в настоящее время клиент реагирует на два кода ошибки, возвращаемых функцией:
DOCNONEXPORT— документ не экспортирован;
EXPORTBREAKUSER— экспорт документов прерван пользователем;
функция GetLastErrorDllвызывается клиентом после вызова функции ProcDocument
Функция для задания первоначальных настроек библиотеки:
function TuneExtLib (szFileName: pChar; bOverwrite: boolean; dwDocType: DWORD; bDirectionImport: boolean; pDocCount : pDWORD = nil): boolean;
szFileName— передается имя файла;
bOverwrite— параметр определяющий возможность перезаписывания файла в случае экспорта документов, принимает значение True, если файл необходимо перезаписывать;
dwDocType— тип экспортируемого документа (1 – для платежного поручения);
bDirectionImport— принимает значение Trueв случае импорта документа, и Falseв случае экспорта документа;
pDocCount— количество документов, которое как предполагается может быть передано для обработки;
в случае успешной работы функция возвращает значение True.
Функция, обрабатывающая документ:
function ProcDocument (recDocument: PRurDocument): boolean;
recDocument— указатель на структуру, содержащую поля документа
подробное описание структуры приводится в приложении 1.
Функция, производящая окончательную в случае экспорта или предварительную в случае импорта обработку документа:
functionProcAllDocuments(pDocCount : pDWORD = nil) : boolean;
pDocCount— количество документов, передаваемое клиенту в случае импорта документов.
Приложение 1.Структура, содержащая поля документа.
TRurDocument= record
NDoc: integer; //банковский номер операции по счету
DocNum: integer; //номер платежного поручения
Date: TDateTime; //дата составления платежного поручения
SendType : String[50]; //вид платежа
Summa : Currency; //сумма
PayerINN : string[12]; //ИНН плательщика
PayerName : string[255]; //имя плательщика
PayerAccount : string[25]; //номер счета плательщика
PayerBank : string[255]; //банк плательщика
PayerBankAdr: string[255]; //адрес банка плательщика
PayerBIC: integer; //БИК банка плательщика
PayerCorrAcc: string[25]; //номер счета банка плательщика
ReceiverBank : string[255]; //банк получателя
ReceiverBankAdr: string[255]; //адрес банка получателя
ReceiverBIC: integer; //БИК банка получателя
ReceiverCorrAcc: string[25]; //номер счета банка получателя
ReceiverINN : string[12]; //ИНН получателя
ReceiverName : string[255]; //имя получателя
ReceiverAccount: string[25]; //номер счета получателя
DatePay: TDateTime; //срок платежа (не заполняется до указания ЦБ)
TypePay: integer; //назначение платежа кодовое (не заполняется до указания ЦБ)
OrderType: integer; //очередность платежа
Kod: array[0..10] ofchar; //(не заполняется до указания ЦБ)
Rezerv: array[0..10] ofchar; //резервное поле (заполняется в случаях, установленных нормативными актами ЦБ)
PayDest: string[210]; //назначение платежа
SendDate: TDateTime; //поступило в банк плательщика
Sign1 : integer; //подпись директора
Sign2 : integer; //подпись бухгалтера
SignName1 : string[64]; //директор
SignName2 : string[64]; //бухгалтер
AccountSumma : Currency; //базовая сумма
AccountType: integer; //тип счета (активный / не активный)
StartDate: TDateTime; //дата начала периода для выписки
FinishDate: TDateTime; //дата конца периода для выписки
CodOper: integer; //код операции
DateOper: TDateTime; //дата операции
DocType : integer; //тип документа
ConditionPay : string[170]; //условие оплаты
TimePay : integer; //срок для акцепта
DateFact : TDateTime; //дата
AccFact : integer; //№ счета фактуры
SummaTreb: Currency; //полная сумма платежного требования
ViewDoc: string[170]; //платеж по представлению (для аккредитива)
Condition: string[170]; //наименование товаров, работ, услуг и т.д. (для аккредитива)
AcredType : string[170]; //вид аккредитива
SystemName: string[170]; //название системы и версия
PokStat: string[2]; //Статус составителя расчетного документа
KPPPlat: string[9]; //КПП плательщика
KPPPol: string[9]; //КПП получателя
CodKBK: string[19]; //Показатель кода бюджетной классификации
CodOKATO: string[11]; //ОКАТО
PokOsnPl: string[2]; //Показатель основания налогового платежа
PokNalPer: string[10]; //Показатель налогового периода
PokNDoc: string[15]; //Показатель номера налогового документа
DtDoc: string[10]; //Показатель даты налогового документа
TypePlat: string[2]; //Показатель типа налогового платежа
VibCodVal : integer; //Кодвалюты
VibPayer: string[160]; //Отправитель(кредит)/Получатель(дебет)
VibDateMfs : TDateTime; //ДатаМФС
RpStatus: integer; //Статус документа
RpReceiver: string[160]; //Получатель платежа
RpCodUch: string[10]; //Код участника
RpPost: integer; //Тип отправки
RpSubBank: string[60]; //Филиал(банк-корреспондент)
RpRealAcc: string[25]; //Реальный счет получателя
RpDatePay: TDateTime; //Дата платежа
RpPayer: string[160]; //Плательщик (отправитель платежа)
RpInnPayer : string[12]; //ИНН плательщика
RpSumPost: currency; //Оплата телеграфных расходов
RpBicRkc : integer; //БИК РКЦ
RpNumTreb : integer; //Ун. № треб
RpSumItog : currency; //Сумма итого
RpUchPayer: integer; //Код участника платежа
RpNumAb: integer; //Регистрационный №
UnNum: string[25]; //Уникальный номер
Firma : string[160]; //Фирма
AccFirma : string[25]; //Реальный счет
Ground1 : string[70]; //Назначение платежа 1
Ground2 : string[70]; //Назначение платежа 2
Ground3 : string[70]; //Назначение платежа 3
end;
В обработку принимаются вопросы только по Корпоративному ПО и компьютерной технике для использования в организациях. Отправить запрос |
Техподдержка для Домашних пользователей (персональные версии программ, компьютер, ноутбук, принтер, сканер, монитор) производится Службами поддержки Производителей |