1.3. Формат экспортных файлов TDEDIF.
Экспорт и импорт документов в Интернет-версии системы Банк+Клиент осуществляется в текстовом формате TDEDIF (данная версия формата специфична для Интернет-версии и не совместима с версией TDEDIF ПО «Банк+Клиент почтовый»). Файл TDEDIF может содержать один или несколько документов, идущих подряд (разделены переводами строк) и имеющих формат: ::DOCBEGIN::
:BODYBEGIN_0
:VERSION:=RBA
:FIELDS:=
:ID:=<строковый_идентификатор_документа>
:STATE:=<целочисленный_код_состояния>
:DOCTYPE:=<строковый_идентификатор_типа_документа>
:<поле1>:=<значение1>
:<поле2>:=<значение2>
…
:<полеN>:=<значениеN>
:BODYEND_0 ::DOCEND:: Если поле содержит многострочный текст (в качестве перевода строки используется комбинация символов с кодами 13 и 10), оно записывается в следующем формате: :<поле1>:=<строка_значения1>
:<поле1>:=<строка_значения2>
…
:<поле1>:=<строка_значенияM> Кроме этого, значения полей (каждая строка значения) кодируются в формате строк С++ (без окаймляющих строку кавычек), то есть:
символ с кодом 9 – заменяется на \t
символ с кодом 10 (одиночный, а не в составе перевода строки) – заменяется на \n
символ с кодом 13 (одиночный, а не в составе перевода строки) – заменяется на \r
остальные специальные символы (с кодами от 0 до 31) – заменяются на \?? (где ?? – шестнадцатеричный код символа)
символ \ (обратный слэш) удваивается, заменяясь на \\
остальные символы остаются без изменений.
Замечание: на практике специальные символы (кроме переводов строк) не встречаются в полях документов, за исключением поля BODY (тело документа) для документа с типом ОП (Ответственная почта), в которое записывается содержимое присоединенного файла. Существуют также поля CRYPT и CRYPTHDR, содержащие зашифрованные на симметричном ключе организации (Клиента) поля документа (все) и зашифрованные заголовочные (видимые в списке документов) поля документа. CRYPT и CRYPTHDR при экспорте кодируются в формат Base64. При импорте значения полей CRYPT и CRYPTHDR игнорируются. Значение числового поля KEY_VERSION, задающего версию симметричного ключа, при импорте учитывается. При импорте поля FIELDS, ID, STATE могут отсутствовать в TDEDIF (если присутствуют, значение поля FIELDS (задающего определения дополнительных полей типа документа) должно быть пустым, значения ID и STATE игнорируются: новому документу присваивается собственный идентификатор и соответствующее состояние – Заготовка или Введен). При экспорте в поле ID записывается уникальный идентификатор документа, при открытии документа на сайте данный идентификатор виден в ссылке вверху, в параметре iid (http:// … iid=ww0FOJO7B5GC …). Существует ряд полей, содержащих дату и время (например, DATE – дата документа, CREATEDATE – дата создания и MODIFYDATE – дата последних изменений документа). Данные поля экспортируются в формате ddmmyyyyhhnnss, где d – цифра дня, m – месяца, y – года, h – часа, n – минуты, s – секунды. Если дата не задана, а используется только время (как, например, в поле TIME Отзыва (Заявления на отзыв платежа), задающем время отзываемого документа), то вместо части с датой записывается 30121899 (30 декабря 1899 года). Примеры:
:DATE:=02042004123055
:DATE_CASHGETTING:=02042004000000
:TIME:=30121899121500 В Интернет-версии используются следующие коды состояний (значения поля STATE):
1 – Принят (из Банка),
2 – Заготовка (документ содержит ошибки)
3 – Введен (нет существенных ошибок)
4 – Подпись (есть подпись, но документ еще не полностью подписан)
8 – Полностью подписан
9 – Обработка (в Банке)
10 – Обработан (полностью обработан, получена логическая квитанций)
12 – Не обработан (ошибки обработки в Банке)
13 – Пересылка в Банк (от Сервера Интернет Доступа в АРМ Банка)
14 – Ошибки пересылки (при пересылке от СИД в АРМ Банка) Имеются следующие строковые идентификаторы типов документов (значения поля DOCTYPE; также используются в качестве значений поля TYPE Отзыва (Заявления на отзыв платежа), указывая на тип отзываемого документа):
BUY – Покупка (Заявление на покупку валюты)
CREDIT – Кредит (Извещение о заимствовании)
DEPOSIT – Депозит (Размещение вклада)
DSF – ДСФ (Документ свободного формата)
OP – ОП (Ответственная почта)
PASSPORT – Пасп. сделки (Паспорт сделки)
PAY_CANCEL – Отзыв (Заявление на отзыв платежа)
PP – ПП (Платежное поручение)
REFCURRENCY – Опер. с вал. (Справка о валютных операциях)
REFROUBLE – Поступление (Справка о поступлении валюты РФ)
RESERVING – Резерв. (Заявление на резервирование)
SELL – Продажа (Заявление на продажу валюты)
SELL_COMPULSORY – Обяз. прод. (Распоряжение о распределении средств с транзитного счета)
STATEMENT – Выписка (Выписка по счету)
TRANSFER – Перевод (Заявление на перевод валюты) Список полей TDEDIF (емкость текстовых полей и возможные значения могут быть переопределены в конкретных типах – см. таблицу полей по типам документов):
Идентификаторы полей
| Наименования полей
| Форматы данных
| Возможные значения
| NUMBER
| Номер документа
| число целое
| >0
| DATE
| Дата документа
| дд.мм.гггг
| непустое
| AMOUNT
| Сумма
| число веществ.
| >0
| INN
| ИНН Плательщика
| текст[15]
| десятичные символы
| KPP
| КПП Плательщика
| текст[15]
| десятичные символы
| FROM_NAME
| Наименование плательщика
| текст[150]
| непустое
| ADDR
| Почтовый адрес плательщика
| текст[150]
|
| ACCOUNT
| Р/с плательщика
| текст[20]
| 20 десятичных символов
| CURRENCY
| Валюта р/с плательщика
| текст[5]
| РУБ, USD и др.
| CURRENCYNAME
| Наименование валюты р/с плательщика
| текст[100]
|
| COMMENT
| Комментарии
| текст[253]
|
| BICBANK
| БИК банка плательщика
| текст[9]
| 9 десятичных символов
| KSBANK
| К/с банка плательщика
| текст[20]
| 20 десятичных символов или пустое
| NAMEBANK
| Наименование банка плательщика
| текст[150]
|
| CITYBANK
| Местонахождение банка плательщика
| текст[150]
|
| TO_INN
| ИНН Получателя
| текст[12]
| десятичные символы
| TO_KPP
| КПП Получателя
| текст[9]
| десятичные символы
| TO_NAME
| Наименование получателя
| текст[150]
| непустое
| TO_ACCOUNT
| Р/с получателя
| текст[20]
| 20 десятичных символов
| TO_CURRENCY
| Валюта р/с получателя
| текст[3]
| РУБ, USD и др.
| TO_BICBANK
| БИК банка получателя
| текст[12]
| десятичные символы
| TO_KSBANK
| К/с банка получателя
| текст[30]
| десятичные символы
| TO_NAMEBANK
| Наименование банка получателя
| текст[150]
| непустое
| TO_CITYBANK
| Местонахождение банка получателя
| текст[150]
|
| PURPOSE
| Назначение платежа
| текст[253]
|
| PAYTYPE
| Вид платежа
| текст.пер
| 0 - "пусто"; 1 - "почтой"; 2 - "телеграфом"; 3 - "электронно"
| OPERTYPE
| Вид операции
| текст[11]
| >=1
| PURPOSE_CODE
| Назначение платежа кодовое
| текст[7]
|
| PAYCODE
| Код
| текст[3]
|
| PAYTERM
| Срок платежа
| дд.мм.гггг
|
| PAYPRIORITY
| Очередность платежа
| текст[7]
| >=1
| PAYCONDITIONS
| Условие оплаты
| текст[200]
|
| ACCEPTTERM
| Срок акцепта
| дд.мм.гггг
| непустое
| OTHER_PAYCONDITIONS
| Иные условие оплаты
| текст[150]
|
| PAYONRECEIVING
| Платеж по представлению (вид документа)
| текст[100]
|
| EXTRA_CONDITIONS
| Дополнительные условия
| текст[149]
|
| DATE_DISPATCH
| Дата отсылки/вручения
| дд.мм.гггг
|
| DATE_CASHGETTING
| Дата снятия наличных
| дд.мм.гггг
|
| RESPONSIBLEPERSON
| Ответственное лицо
| текст[20]
| непустое
| RESPONSIBLEPERSON_PHONE
| Телефон ответственного лица
| текст[15]
|
| TIME
| Время документа
| чч:мм:сс
|
| TYPE
| Тип документа
| текст[46]
|
| OPERKIND
| Тип операции
| текст,пер.
| непустое; 0 – Списания / 1 – Зачисления
| DEALRATE
| Курс сделки
| текст[49]
|
| DEALRATE_TYPE
| Тип курса сделки
| текст,пер.
| непустое; 0 – внутренний / 1 – биржевой
| EXCHANGE_TRANSMIT
| Проведение через биржу
| текст,пер.
| непустое; 0 – Нет / 1 – Да
| FOREIGNACCOUNT
| Валютный счет
| текст[30]
| десятичные символы
| FOREIGNCURRENCY
| Валюта валютного счета
| текст[3]
| непустое; РУБ, USD и др.
| FOREIGNCURRENCY_NAME
| Наименование валюты валютного счета
| текст[60]
|
| TRANSITACCOUNT
| Транзитный счет
| текст[20]
| 20 десятичных символов
| TRANSITCURRENCY
| Валюта транзитного счета
| текст[3]
| РУБ, USD и др.
| COMPULSORYSELL_AMOUNT
| Сумма обязательной продажи
| число веществ.
|
| ENROLL_AMOUNT
| Сумма зачисления
| число веществ.
| неотрицательное
| CURRENCYSELL_PERCENT
| Процент продажи валюты
| число веществ.
|
| DEALPASSPORT
| Паспорт сделки
| текст[30]
|
| DEALPASSPORT_DATE
| Дата паспорта сделки
| дд.мм.гггг
|
| DEALCONTRACT
| Контракт сделки
| текст[19]
|
| DEALCONTRACT_DATE
| Дата контракта сделки
| дд.мм.гггг
|
| OKPO
| Код ОКПО
| текст[99]
|
| BUYBASIS_CODE
| Код основания покупки
| текст[7]
|
| EXECUTIVEBANK_CODE
| Код исполняющего банка
| текст[50]
|
| BENEFICIARY
| Бенефициар
| текст[50]
| непустое
| BENEFICIARY_CITY
| Местонахождение бенефициара
| текст[140]
|
| BENEFICIARY_ADDR
| Почтовый адрес бенефициара
| текст[140]
|
| BENEFICIARY_COUNTRY
| Страна бенефициара
| текст[140]
|
| BENEFICIARY_ACCOUNT
| Счет бенефицара
| текст[34]
| непустое
| BENEFICIARY_BANK
| Банк бенефициара
| текст[129]
| непустое
| BENEFICIARY_BANKADDR
| Местонахождение банка бенефициара
| текст[129]
|
| BENEFICIARY_BANKCITY
| Почтовый адрес банка бенефициара
| текст[129]
|
| BENEFICIARY_BANKCOUNTRY
| Страна банка бенефициара
| текст[129]
|
| BENEFICIARY_BANKSWIFT
| SWIFT-код банка бенефициара
| текст[11]
|
| INTERMEDIARY_BANK
| Банк посредника
| текст[253]
|
| INTERMEDIARY_BANKCITY
| Местонахождение банка посредника
| текст[69]
|
| INTERMEDIARY_BANKADDR
| Почтовый адрес банка посредника
| текст[69]
|
| INTERMEDIARY_BANKCOUNTRY
| Страна банка посредника
| текст[69]
|
| |