From 826f1d6adacbfcb406aa7c7d77d413ceb95d9a02 Mon Sep 17 00:00:00 2001 From: Dmitrii Evdokimov Date: Tue, 19 Jun 2018 21:25:57 +0300 Subject: [PATCH] Add the RR compatibility --- README.md | 11 ++++- SVKTrans.hta | 38 ++++++++++++++++- SVKTrans.ini | 100 +++++++++++++++++++++++++-------------------- SVKTrans.ini.702 | 104 ++++++++++++++++++++++++++--------------------- 4 files changed, 160 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index 3d97734..e36532d 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,12 @@ Файловый адаптер СВК и др.) выглядит крошечной и шустрой утилитой, тем не менее обладающей достаточно развитым функционалом. +## Важные изменения, влияющее на совместимость + +В версии 2.10.0 добавлено *Резервное решение* (РР) Банка России. +Кодировка ini для удобства на GitHub переведена в UTF-8. Верните в 1251, +если это играет роль в Вашей системе. + Смотрите также проекты [PTK-PSD Browser](http://diev.github.io/PTK-PSD-Browser-hta) для просмотра информационных посылок ПТК ПСД Банка России и @@ -39,8 +45,9 @@ web-аутентификацией. * Распаковать дистрибутивный `zip` из [Releases](https://github.com/diev/SVK-Transport/releases) в отдельную папку. * Программа из соображений защиты IE работает только с локального диска! -* До первого запуска программы внимательно изучите и отредактируйте -`SVKTrans.ini`. +* До первого запуска программы внимательно изучите и отредактируйте исходный +`SVKTrans.ini` или возьмите за основу `SVKTrans.ini.702` для Северо-Западного +ГУ ЦБ. * Для отправки информационных сообщений требуется MSXML версии 4.0 или выше. Программа при старте проверяет его наличие, выдавая предупреждение при его отсутствии. Загрузить MSXML 6.1 можно с сайта diff --git a/SVKTrans.hta b/SVKTrans.hta index 5e72b89..73d07f9 100644 --- a/SVKTrans.hta +++ b/SVKTrans.hta @@ -13,7 +13,7 @@ selection="no" contextMenu="no" singleinstance="yes" - version="2.9.12" + version="2.10.0" author="mozers™ (retired)" email="mozers@mail.ru" icq="256106175" @@ -756,6 +756,16 @@ function SortingFiles(filename, format) { return; } + if (isContainArray(Recipients, INI.Account.UEO_uic_work_rr)) { // Логический адрес АРМ КБР РР + WriteLog('это ' + format + ' документ для АРМ КБР РР'); + if (INI.Paths.pay_in_rr) { + XCopyFile(filename, INI.Paths.pay_in_rr + '\\', true); // в каталог входящих сообщений для АРМ КБР РР + } else { + WriteLog('!Каталог входящих сообщений для АРМ КБР РР НЕ ЗАДАН'); + } + return; + } + if (isContainArray(Recipients, INI.Account.UEO_uic_ies)) { // Логический адрес АРМ КБР (для информационных сообщений) WriteLog('это ИНФОРМАЦИОННОЕ ' + format + ' сообщение для АРМ КБР'); if (INI.Paths.pay_in) { @@ -776,6 +786,16 @@ function SortingFiles(filename, format) { return; } + if (isContainArray(Recipients, INI.Account.UEO_uic_test_rr)) { // Логический тестовый адрес АРМ КБР РР + WriteLog('это ТЕСТОВЫЙ ' + format + ' документ АРМ КБР РР'); + if (INI.Paths.pay_test_in_rr) { + XCopyFile(filename, INI.Paths.pay_test_in_rr + '\\', true); // Каталог входящих тестовых сообщений для АРМ КБР РР + } else { + WriteLog('!Каталог входящих тестовых сообщений для АРМ КБР РР НЕ ЗАДАН'); + } + return; + } + if (isContainArray(Recipients, INI.Account.UEO_uic_ies_test)) { // Логический тестовый адрес АРМ КБР (для информационных сообщений) WriteLog('это ТЕСТОВОЕ ИНФОРМАЦИОННОЕ ' + format + ' сообщение для АРМ КБР'); if (INI.Paths.pay_test_in) { @@ -823,6 +843,14 @@ function SortingFiles(filename, format) { WriteLog('!Каталог квитанций на сообщения для АРМ КБР НЕ ЗАДАН'); } break; + case INI.Account.UEO_uic_work_rr: // Логический адрес АРМ КБР РР + WriteLog('это квитанция о получении платежного документа РР ' + receipt_info); + if (INI.Paths.pay_kvit_rr) { + XCopyFile(filename, INI.Paths.pay_kvit_rr + '\\', true); // в каталог квитанций на сообщения для АРМ КБР РР + } else { + WriteLog('!Каталог квитанций на сообщения для АРМ КБР РР НЕ ЗАДАН'); + } + break; case INI.Account.UEO_uic_test: // Логический тестовый адрес АРМ КБР WriteLog('это квитанция о получении ТЕСТОВОГО платежного документа ' + receipt_info); if (INI.Paths.pay_test_kvit) { @@ -831,6 +859,14 @@ function SortingFiles(filename, format) { WriteLog('!Каталог квитанций на тестовые сообщения для АРМ КБР НЕ ЗАДАН'); } break; + case INI.Account.UEO_uic_test: // Логический тестовый адрес АРМ КБР РР + WriteLog('это квитанция о получении ТЕСТОВОГО платежного документа РР ' + receipt_info); + if (INI.Paths.pay_test_kvit_rr) { + XCopyFile(filename, INI.Paths.pay_test_kvit_rr + '\\', true); // в каталог квитанций на тестовые сообщения для АРМ КБР РР + } else { + WriteLog('!Каталог квитанций на тестовые сообщения для АРМ КБР РР НЕ ЗАДАН'); + } + break; case INI.Account.from_addr: // Адрес отправителя файлов статистической отчетности WriteLog('это квитанция о получении информационного сообщения ' + receipt_info); if (INI.Paths.stat_info_kvit) { diff --git a/SVKTrans.ini b/SVKTrans.ini index fb658bc..ad32509 100644 --- a/SVKTrans.ini +++ b/SVKTrans.ini @@ -1,126 +1,138 @@ [Account] -; ( DNS, , IP ) +; Сервер СВК (если нет уверенности в стабильной работе DNS, то лучше задавать не имя, а IP адрес) svk_host=172.19.35.4 -; dialup ( , !) +; Имя dialup соединения с СВК (если используется постоянное подключение, то параметр необходимо закомментировать!) connection=SVK -; ( ) +; Логин канальной аутентификации (при постоянном подключении параметр не используется) chan_login=chan_nnv746 -; ( ) +; Пароль канальной аутентификации (при постоянном подключении параметр не используется) chan_passw=12345678 -; : Telnet ( , telnet ) +; Адрес:порт сервера Telnet (если не задан, то telnet аутентификация не проводится) ;telnet_host=172.19.35.6:23 -; telnet- +; Логин telnet-аутентификации telnet_login=tel_nnv746 -; telnet- +; Пароль telnet-аутентификации telnet_passw=12345678 -; web- ( web- - ) +; Логин web-аутентификации (для регионов с раздельной web-аутентификацией - логин для платежных сообщений) web_login=web_nnv746 -; web- ( web- - ) +; Пароль web-аутентификации (для регионов с раздельной web-аутентификацией - пароль для платежных сообщений) web_passw=12345678 -; web- ( WEB-) +; web-логин для информации и статистики (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_login_info=ko745i -; web- ( WEB-) +; web-пароль для информации и статистики (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_passw_info=12345678 -; web- ( WEB-) +; web-логин для тестовых платежных сообщений (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_login_test=ko745pt -; web- ( WEB-) +; web-пароль для тестовых платежных сообщений (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_passw_test=12345678 -; +; Адрес получателя файлов статистической отчетности to_addr=nnovg2 -; (true) (false) -; , ( - - ) +; Запрашивать (true) или нет (false) квитанции о получении файлов статистической отчетности +; Если необходимы квитки на платежные документы, то настройте АРМ КБР (Конфигурация - Транспортные реквизиты - Запрашивать квитанции) AckRequest=true -; ( ) -; ( "props:To" ) +; Адрес отправителя файлов статистической отчетности (требуется только для сортировки квитанций о получении) +; (Этот адрес пишется в ноде "props:To" в квитанции о получении) from_addr=nnv746_stat -; +; Логический адрес АРМ КБР UEO_uic_work=uic:220274600000 -; +; Логический адрес АРМ КБР РР +UEO_uic_work_rr=uic:220274600020 + +; Логический тестовый адрес АРМ КБР UEO_uic_test=uic:220274600011 -; ( ) +; Логический тестовый адрес АРМ КБР РР +UEO_uic_test_rr=uic:220274600021 + +; Логический адрес АРМ КБР (для информационных сообщений) UEO_uic_ies=uic:220274600050 -; ( ) +; Логический тестовый адрес АРМ КБР (для информационных сообщений) UEO_uic_ies_test=uic:220274600051 -; ( ) +; Имена компьютеров или пользователей (через запятую) для отправки сообщений об ошибках в работе скрипта ;messages_recipient=Admin,192.168.0.12 [Paths] -; +; Каталог входящих платежных сообщений pay_in=C:\BankOfRF\Payments\Incoming\UEO +pay_in_rr=C:\BankOfRF\Payments\Incoming\UEO -; +; Каталог исходящих платежных сообщений pay_out=C:\BankOfRF\Payments\Outcoming\UEO +pay_out_rr=C:\BankOfRF\Payments\Outcoming\UEO -; +; Каталог квитанций на платежные сообщения pay_kvit=C:\BankOfRF\Payments\Kvit\UEO +pay_kvit_rr=C:\BankOfRF\Payments\Kvit\UEO -; +; Каталог входящих тестовых платежных сообщений pay_test_in=C:\BankOfRF\PaymentsTest\Incoming\UEO +pay_test_in_rr=C:\BankOfRF\PaymentsTest\Incoming\UEO -; +; Каталог исходящих тестовых платежных сообщений pay_test_out=C:\BankOfRF\PaymentsTest\Outcoming\UEO +pay_test_out_rr=C:\BankOfRF\PaymentsTest\Outcoming\UEO -; +; Каталог квитанций на тестовые платежные сообщения pay_test_kvit=C:\BankOfRF\PaymentsTest\Kvit\UEO +pay_test_kvit_rr=C:\BankOfRF\PaymentsTest\Kvit\UEO -; +; Каталог входящих информационных и сообщений из статистики stat_info_in=C:\BankOfRF\StatInfo\Incoming -; +; Каталог исходящих информационных и сообщений в статистику stat_info_out=C:\BankOfRF\StatInfo\Outcoming -; +; Каталог квитанций на сообщения в статистику stat_info_kvit=C:\BankOfRF\StatInfo\Kvit -; ( , ) +; Каталог для создания резервных копий принимаемых и отправляемых сообщений (если не задан, то резервное копирование не ведется) backup=C:\BankOfRF\Backup -; ( 0 9). -; , . -; . stat_info_in +; Фильтры входящих информационных сообщений (от 0 до 9). +; Задается приемный каталог и маски файлов, которые должны в него попадать. +; Срабатывают последовательно. Не попавшие ни под одну маску файлы попадают в stat_info_in ;stat_info_in_filter0=C:\BankOfRF\StatInfo\Incoming\files\*.tif|*.rar|*.pdf ;stat_info_in_filter1=C:\BankOfRF\StatInfo\Incoming\update\0????.cab ;stat_info_in_filter2=C:\BankOfRF\StatInfo\Incoming\365P\mz*.* [Timeout] -; () +; Проверка по таймауту (сек) next=3600 -; () +; Проверка наличия исходящих сообщений (сек) outbox=60 -; () +; Запрос ответа на отправленное сообщение (сек) conform=600 -; () +; Повтор неудавшегося подключения (сек) connerror=20 [Config] -; ( ) -; , ED374 ( ) +; Маска файлов которые будут немедленно уничтожаться на сервере (без их загрузки) +; например, ED374 (информация об участниках системы БЭСП) ;file_ignore=ED374?????.EDS -; / ( : 2048, 4096, 8192, 16384) -; +; Размер сегментов для получения/отправки файла по частям (рекомендуются значения: 2048, 4096, 8192, 16384) +; Оптимальное значение выбирается исходя из качества связи и настроек сервера СВК ;segment_size_download=16384 ;segment_size_upload=16384 diff --git a/SVKTrans.ini.702 b/SVKTrans.ini.702 index ab44264..68873f9 100644 --- a/SVKTrans.ini.702 +++ b/SVKTrans.ini.702 @@ -1,124 +1,136 @@ [Account] -; ( DNS, , IP ) +; Сервер СВК (если нет уверенности в стабильной работе DNS, то лучше задавать не имя, а IP адрес) ;svk_host=172.19.35.4 svk_host=10.64.80.5 -; dialup ( , !) +; Имя dialup соединения с СВК (если используется постоянное подключение, то параметр необходимо закомментировать!) ;connection=SVK -; ( ) +; Логин канальной аутентификации (при постоянном подключении параметр не используется) ;chan_login=chan_nnv746 chan_login=ch702i -; ( ) +; Пароль канальной аутентификации (при постоянном подключении параметр не используется) ;chan_passw=12345678 chan_passw=12345678 -; : Telnet ( , telnet ) +; Адрес:порт сервера Telnet (если не задан, то telnet аутентификация не проводится) ;telnet_host=172.19.35.6:23 telnet_host=10.64.80.15:23 -; telnet- +; Логин telnet-аутентификации ;telnet_login=tel_nnv746 telnet_login=net702i -; telnet- +; Пароль telnet-аутентификации ;telnet_passw=12345678 telnet_passw=12345678 -; web- ( web- - ) +; Логин web-аутентификации (для регионов с раздельной web-аутентификацией - логин для платежных сообщений) ;web_login=web_nnv746 web_login=ko702p -; web- ( web- - ) +; Пароль web-аутентификации (для регионов с раздельной web-аутентификацией - пароль для платежных сообщений) ;web_passw=12345678 web_passw=12345678 -; web- ( WEB-) +; web-логин для информации и статистики (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_login_info=ko745i web_login_info=ko702i -; web- ( WEB-) +; web-пароль для информации и статистики (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_passw_info=12345678 web_passw_info=12345678 -; web- ( WEB-) +; web-логин для тестовых платежных сообщений (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_login_test=ko745pt web_login_test=ko702pt -; web- ( WEB-) +; web-пароль для тестовых платежных сообщений (ТОЛЬКО ДЛЯ РЕГИОНОВ С РАЗДЕЛЬНОЙ WEB-АУТЕНТИФИКАЦИЕЙ) ;web_passw_test=12345678 web_passw_test=12345678 -; +; Адрес получателя файлов статистической отчетности ;to_addr=nnovg2 to_addr=ias -; (true) (false) -; , ( - - ) +; Запрашивать (true) или нет (false) квитанции о получении файлов статистической отчетности +; Если необходимы квитки на платежные документы, то настройте АРМ КБР (Конфигурация - Транспортные реквизиты - Запрашивать квитанции) AckRequest=true -; ( ) -; ( "props:To" ) +; Адрес отправителя файлов статистической отчетности (требуется только для сортировки квитанций о получении) +; (Этот адрес пишется в ноде "props:To" в квитанции о получении) ;from_addr=nnv746_stat from_addr=ko702i -; +; Логический адрес АРМ КБР ;UEO_uic_work=uic:220274600000 UEO_uic_work=uic:403070200000 -; +; Логический адрес АРМ КБР РР +UEO_uic_work=uic:403070200020 + +; Логический тестовый адрес АРМ КБР ;UEO_uic_test=uic:220274600011 UEO_uic_test=uic:403070200011 -; ( ) +; Логический тестовый адрес АРМ КБР РР +UEO_uic_test=uic:403070200021 + +; Логический адрес АРМ КБР (для информационных сообщений) ;UEO_uic_ies=uic:220274600050 UEO_uic_ies=uic:403070200050 -; ( ) +; Логический тестовый адрес АРМ КБР (для информационных сообщений) ;UEO_uic_ies_test=uic:220274600051 UEO_uic_ies_test=uic:403070200051 -; ( ED510, ED511) +; Логический адрес АРМ КБР (для информационных сообщений ED510, ED511) UEO_uic_51x=uic:403070200053 -; ( ED510, ED511) +; Логический тестовый адрес АРМ КБР (для информационных сообщений ED510, ED511) UEO_uic_51x_test=uic:403070200063 -; ( ) +; Имена компьютеров или пользователей (через запятую) для отправки сообщений об ошибках в работе скрипта ;messages_recipient=Admin,192.168.0.12 ;messages_recipient=pc1573 [Paths] -; +; Каталог входящих платежных сообщений ;pay_in=C:\BankOfRF\Payments\Incoming\UEO pay_in=C:\SVK\PLAT\IN +pay_in_rr=C:\SVK\PLATRR\IN -; +; Каталог исходящих платежных сообщений ;pay_out=C:\BankOfRF\Payments\Outcoming\UEO pay_out=C:\SVK\PLAT\OUT +pay_out_rr=C:\SVK\PLATRR\OUT -; +; Каталог квитанций на платежные сообщения ;pay_kvit=C:\BankOfRF\Payments\Kvit\UEO pay_kvit=C:\SVK\PLAT\REP +pay_kvit_rr=C:\SVK\PLATRR\REP -; +; Каталог входящих тестовых платежных сообщений ;pay_test_in=C:\BankOfRF\PaymentsTest\Incoming\UEO pay_test_in=C:\SVK\PTEST\IN +pay_test_in_rr=C:\SVK\PTESTRR\IN -; +; Каталог исходящих тестовых платежных сообщений ;pay_test_out=C:\BankOfRF\PaymentsTest\Outcoming\UEO pay_test_out=C:\SVK\PTEST\OUT +pay_test_out_rr=C:\SVK\PTESTRR\OUT -; +; Каталог квитанций на тестовые платежные сообщения ;pay_test_kvit=C:\BankOfRF\PaymentsTest\Kvit\UEO pay_test_kvit=C:\SVK\PTEST\REP +pay_test_kvit_rr=C:\SVK\PTESTRR\REP -; +; Каталог входящих информационных и сообщений из статистики ;stat_info_in=C:\BankOfRF\StatInfo\Incoming stat_info_in=C:\SVK\INFO\IN -; +; Каталог исходящих информационных и сообщений в статистику ;stat_info_out=C:\BankOfRF\StatInfo\Outcoming stat_info_out=C:\SVK\INFO\OUT expl_info_out=C:\SVK\INFO\OUT\expl @@ -126,45 +138,45 @@ lic_info_out=C:\SVK\INFO\OUT\lic otzi_info_out=C:\SVK\INFO\OUT\otzi upsir_info_out=C:\SVK\INFO\OUT\upsir -; +; Каталог квитанций на сообщения в статистику ;stat_info_kvit=C:\BankOfRF\StatInfo\Kvit stat_info_kvit=C:\SVK\INFO\REP -; ( , ) +; Каталог для создания резервных копий принимаемых и отправляемых сообщений (если не задан, то резервное копирование не ведется) ;backup=C:\BankOfRF\Backup backup=C:\SVK\Backup -; ( 0 9). -; , . -; . stat_info_in +; Фильтры входящих информационных сообщений (от 0 до 9). +; Задается приемный каталог и маски файлов, которые должны в него попадать. +; Срабатывают последовательно. Не попавшие ни под одну маску файлы попадают в stat_info_in ;stat_info_in_filter0=C:\BankOfRF\StatInfo\Incoming\files\*.tif|*.rar|*.pdf ;stat_info_in_filter1=C:\BankOfRF\StatInfo\Incoming\update\0????.cab ;stat_info_in_filter2=C:\BankOfRF\StatInfo\Incoming\365P\mz*.* [Timeout] -; () +; Проверка по таймауту (сек) ;next=3600 next=900 -; () +; Проверка наличия исходящих сообщений (сек) ;outbox=60 outbox=60 -; () +; Запрос ответа на отправленное сообщение (сек) ;conform=600 conform=300 -; () +; Повтор неудавшегося подключения (сек) ;connerror=20 connerror=20 [Config] -; ( ) -; , ED374 ( ) +; Маска файлов которые будут немедленно уничтожаться на сервере (без их загрузки) +; например, ED374 (информация об участниках системы БЭСП) ;file_ignore=ED374?????.EDS -; / ( : 2048, 4096, 8192, 16384) -; +; Размер сегментов для получения/отправки файла по частям (рекомендуются значения: 2048, 4096, 8192, 16384) +; Оптимальное значение выбирается исходя из качества связи и настроек сервера СВК ;segment_size_download=16384 ;segment_size_upload=16384 segment_size_download=16384