В системе "Клиент-Сбербанк" имеется встроенный конвертор данных из структуры базы данных, принятой в системе, в формат DBF или строчный и обратно. Это необходимо для связи с ОД банка или другой бухгалтерской системой у клиента.
Под строчным форматом понимается текстовый файл, в котором каждая строка соответствует записи базы данных, при этом данные, соответствующие полям записи, расположены в строке позиционно. Например, сумма платежа находится в строке с позиции 5 по позицию 25.
Идентификатором системы хранения данных АРМ "Клиент-Сбербанк" являются символы в расширении имени файла DDF.
Реализованы следующие типы конвертации:
DBF_TO_DDF - из DBF в DDF STR_TO_DDF - из STR в DDF DDF_TO_DBF - из DDF в DBF DDF_TO_STR - из DDF в STR DDF_TO_SBRF - из DDF в SBRF3
Формат первых трех строк файла шаблона конвертации:
ТИП: DBF_TO_DDF ИСТ: F:\path\YYYYYYYY.DBF РЕЗ: XXXXXXXX.DDF Для типов STR_TO_DDF и DDF_TO_STR должна быть строка: LEN: 550 // где 550 - длина строки для конвертации Где: ИСТ: D:\YYYYYYYY.DBF - файл источник информации формата DBF ( на момент анализа шаблона программой должен существовать ) РЕЗ:XXXXXXXX.DDF - файл базы данных программы - получатель информации ( при отсутствии создается с параметрами, указан- ными в файле KL_BANK.OBD )
Далее должна идти пустая строка или строка с надписью FIELDS.
Формат последующих строк файла - шаблона:
FIELD <наим.поля в файле XXXXXXXX.DDF> F=<наим.поля в файле YYYYYYYY.DBF>
Примечание: В строке допускается указание значения, вводимого при конвертации в поле файла XXXXXXXX.DDF в случае, если соответствующему полю файла YYYYYYYY.DBF не присвоено значения (т.н. ввод "значения по умолчанию"). Для осуществления этого действия необходимо в конце данной строки указать UM=<значение по умолчанию>. Формат последней строки файла конвертации:
END
Файл базы данных системы может быть криптографированным на уникальном ключе. В этом случае данные правильно видит только сама программа и внешним конвертором (программа CONVERT.EXE) пользоваться нельзя. Для определения криптованности того или иного файла базы смотрите файл с описанием полей FIELDS.OBT, в котором стоит признак CRIPT.
В качестве примера приведен файл шаблона VIBOR.SHB, определяющего параметры конвертации данных о движении средств на счетах клиентов из файла IVIBOR.DBF в файл внутренней базы данных VIBOR.DDF.
ТИП: DBF_TO_DDF РЕЗ: VIBOR.DDF ИСТ: G:\NEWKLBNK\LASTCONV\DBF\IVIBOR.DBF FIELD N_платежки F=NDOC FIELD Дата F=DATADOC FIELD Номер_счета F=NSCHET FIELD Сумма F=SUMMA FIELD Банк F=PBANK FIELD Отправитель F=P_NAME FIELD СчетОтправ F=PSCHET FIELD КодБанка F=PMFO FIELD Назначение F=GROUND LEN=70 FIELD Назначение2 F=GROUND POS=70 LEN=70 FIELD Назначение3 F=GROUND POS=140 FIELD КодВалюты F=CDVAL FIELD КодОперации F=OPER FIELD ИНН F=P_INN END
Примечание: При проведении конвертации данных, программа-конвертор CONVERT.EXE работает в режиме добавления новых записей в файл - результата.
Пример шаблона для импорта данных платежных поручений в АРМ "Клиент" из внешней бухгалтерской системы.
ТИП: DBF_TO_DDF ИСТ: D:\PATH...\WORK.DBF РЕЗ: WORK.DDF FIELD N_платежки F=NDOC FIELD Дата F=DT FIELD ДатаПлат F=DATEPAY FIELD Сумма F=SUMMA FIELD Код_банка F=MFO FIELD Р/счет F=ACCPAYER FIELD Счет_банка F=ACCBANK FIELD СубСчетБанк F=SUBACC FIELD Р/сч_получ F=ACCREC FIELD Получатель2 F=RECEIVER FIELD Цель_плат1 F=GROUND LEN=70 FIELD Цель_плат2 F=GROUND POS=70 LEN=70 FIELD Сообщение1 F=GROUND POS=140 LEN=70 FIELD Трасса F=ORDER FIELD Отправка F=POST FIELD ИНН_Получ F=INN END
Кроме описания соответствия полей двух баз данных в строке могут быть описаны дополнительные данные, состоящие из служебного сочетания символов и его значения.
Зарезервированные служебные буквосочетания:
Для значений по умолчанию и строк типа преобразования данные не должны включать в себя пробелов, либо должны быть обрамлены символом " (кавычки). Символ новой строки описывается как в zзыке C ( \r , \n ).
Ниже приведен шаблон для конвертации данных из АРМ "Банк" в файл EXPORT.DBF для последующего импорта в "Операционный день" банка.
ТИП: DDF_TO_DBF ИСТ: WORK.DDE РЕЗ: F:\BANK_NEW\IMPEXP\EXPORT.DBF FIELD N_PACK UM=77 //F=N_пачки // можно взять из поля или подставить // константу, например = 77 FIELD N_DOCUMENT F=N_платежки FIELD DATADOC F=Дата FIELD DATAPAY F=ДатаПлат FIELD ORDER F=Трасса TP=%d // выгрузить число, а не текст FIELD PAYER F=Плательщик FIELD INN_PAYER F=ИНН_Отпр FIELD ACC_PAYER F=Р/счет FIELD SUM F=Сумма FIELD TEL F=Отправка TP=%d // тип отправки в виде числа FIELD MFORKC F=Код_РКЦ TP=%09lu FIELD MFO F=Код_банка TP=%09lu // девять символов с лидирующим 0 FIELD UCH_SB F=КодБанкаПол // БИК или код участника клиринговых расч. FIELD ACC_BANK F=Счет_банка FIELD SUBACC F=СубСчетБанк FIELD RECEIVER F=Получатель2 FIELD ACC_REC F=Р/сч_получ FIELD INN_REC F=ИНН_Получ FIELD GROUND F=Цель_плат1 FIELD GROUND F=Цель_плат2 TR=A // данные из поля Цель_плат2 будут // добавлены после заполненной части поля GROUND c добавлением пробела FIELD GROUND F=Сообщение1 TR=A // третье поле назначения платежа FIELD BANKKORR F=БанкКорр FIELD UNNUM F=УникНомер FIELD TIME F=Время_отпр FIELD FIRMA F=Фирма FIELD SCHFIRMA F=Счет END
Примечание: При конвертации файлы DBF должны существовать! Файл формата DBF может быть без записей, но с описателем полей!
Для правильной работы при конвертации программа проверяет наличие полей, описанных в шаблоне. Для уточнения правильности написания нужно пользоваться текстовым описателем полей баз данных системы "Клиент-Сбербанк", поставляемым с каждой версией в файле FIELDS.OBT.
При несовпадении длин полей символьных данных конвертор обрезает ту часть, которая не вместилась в поле результата.
Пример шаблона для импорта в базу платежных документов из строчного формата (WORK.IMP).
В примере имя файла указано с знаками вопроса - это значит, что будут обработаны все файлы, попадающие под данную маску поиска файлов.
ТИП: STR_TO_DDF РЕЗ: WORK.DDF ИСТ: D:\?????\...\OTCH????.TXT LEN: 580 - максимальная длина строки FIELD N_платежки POS=0 LEN=9 FIELD Дата POS=9 LEN=6 // должно быть DDMMGG // или DDMMGGGG - LEN=8 FIELD ДатаПлат POS=15 LEN=6 FIELD Сумма POS=21 LEN=15 FIELD Код_банка POS=36 LEN=9 FIELD Р/счет POS=45 LEN=25 // свой FIELD СубСчетБанк POS=70 LEN=25 // суб коррсчет филиала FIELD Р/сч_получ POS=95 LEN=25 FIELD Получатель2 POS=120 LEN=70 FIELD Цель_плат1 POS=190 LEN=70 // назначение платежа FIELD Цель_плат2 POS=260 LEN=70 FIELD Сообщение1 POS=330 LEN=70 FIELD Отправка POS=500 LEN=2 // тип отправки 10,20,30,40 FIELD ИНН_Получ POS=502 LEN=12 FIELD БанкКорр POS=514 LEN=60 FIELD Трасса POS=574 LEN=1 //очередность платежа 1-6 END
Пример шаблона для экспорта из базы платежных документов в строчный формат (WORK.EXP):
ТИП: DDF_TO_STR ИСТ: WORK.DDF РЕЗ: F:\PATH..\EXPORT.TXT LEN: 475 - максимальная длина строки без учета символов \r\n FIELD N_платежки POS=0 LEN=9 FIELD Дата POS=9 LEN=6 TP=%DDMMGG FIELD ДатаПлат POS=15 LEN=6 FIELD Сумма POS=21 LEN=15 TR=П // прижать вправо FIELD Код_банка POS=36 LEN=9 TP=%09lu // с лидирующим 0 FIELD Р/счет POS=45 LEN=25 //свой FIELD СубСчетБанк POS=70 LEN=25 // счет филиала банка FIELD Р/сч_получ POS=95 LEN=25 TR=П FIELD Получатель2 POS=120 LEN=70 FIELD Цель_плат1 POS=190 LEN=70 // назначение платежа FIELD Цель_плат2 POS=260 LEN=70 FIELD Сообщение1 POS=330 LEN=70 FIELD Отправка POS=400 LEN=2 TP=%d // число FIELD ИНН_Получ POS=402 LEN=12 FIELD БанкКорр POS=414 LEN=60 FIELD Трасса POS=474 LEN=1 TP=%d //очередность END