Для решения этой задачи был реализован ftp-сервер, запускаемый в качестве сервиса Windows, который при получении файла производит запуск процедуры в 1С.
Схема работы:
1) В центральной базе на сервере 1 происходит некое событие, инициирующее обмен с периферийно базой. Происходит выгрузка данных в файл и его передача по известному адресу на FTP-сервер.
2) FTP-сервер получает файл и записывает его к локальный каталог.
3) FTP-сервер через COM-соединение (имя класса "v82.COMConnector.1", соответственно, работает только для 8.2) вызывает в периферийной базе процедуру обмена данными.
4) Периферийная база, получив сигнал, выполняет загрузку данных из файла.
Приложение состоит из одного исполняемого файла - FastExchangeNSI.exe (здесь и далее немного используются термины из выполняемого проекта).
Установка в качестве сервиса происходит с помощью команды:
FastExchangeNSI.exe /install
Удаление - FastExchangeNSI.exe /uninstall
После создания сервиса необходимо скорректировать файл настроек setting.ini (создается автоматически в каталоге программы):
1) Указать строку соединения в формате «ConnectionString=Srvr="srv26:11641";Ref="nsi";Usr=Администратор;Pwd=» (если волнует вопрос безопасности, то данному пользователю можно дать права только на внешнее соединение).
2) Указать порт для запуска службы «PortNumber=5888» (по-умолчанию, 21).
Далее необходимо включить сервис.
В процессе работы сервис пишет лог-файл вида:
24.10.2010-17:31:50 -> -------------------------------------------------------
24.10.2010-17:31:50 -> Запуск сервиса
24.10.2010-17:31:50 -> Чтение параметров из файла: E:\data\setting.ini
24.10.2010-17:31:50 -> Параметры из файла setting.ini:
24.10.2010-17:31:50 -> PathToProgram:E:\data\*
24.10.2010-17:31:50 -> ConnectionString:Srvr="srv26:11641";Ref="nsi";Usr=Администратор;Pwd=*
24.10.2010-17:31:50 -> PortNumber:5888*
24.10.2010-17:31:50 -> Включение FTP-сервера...
24.10.2010-17:31:50 -> FTP-сервер включен успешно.
24.10.2010-17:33:03 -> * * * * * * *
24.10.2010-17:33:03 -> Получен файл: /Message_Ц_Ф.xml
24.10.2010-17:33:03 -> Попытка оповещения 1С...
24.10.2010-17:33:08 -> Подключение к 1С выполнено успешно!
Вызываемая процедура 1С находится к модуле внешнего соединения, в которую передается также имя полученного файла: Процедура StartExchange(Знач ИмяФайла) Экспорт
Для доступа к FTP-серверу необходимо указывать логин myuser, пароль mypass.
Во вложении приведен сам исполняемый файл и выгрузка конфигурации с примером.
Целью данной публикации является получение адекватной оценки жизнеспособности идеи, а также ценных замечаний и дополнений.