В данной статье мы рассмотрим организацию автообмена 1С:Предприятие 7.7 с использованием УРБД (управление распределенными базами данных) через FTP сервер. Для конкретизации задачи, предположим, что у нас есть центральный офис и несколько удаленных филиалов (торговых точек), которые будут обмениваться с центральным офисом информацией посредством автообмена и распределенных баз данных. Подробно останавливаться на конфигурировании распределенной ИБ мы не будем, предположив, что вы уже проделывали это не раз. Наша задача - свести "пользовательскую составляющую" автообмена к минимуму, т.е. - добиться того чтобы для проведения автообмена пользователь запускал некий один ярлык, после запуска которого информация из центральной базы, попадала бы в перефирийную и наооборот. Для организации всего вышесказанного нам потребуются FTP-сервер, а также доступ в интернет на всех торговых точках. Предположим конфигурация распределенной базы данных у нас следующая (скриншот с центральной ИБ):
При этом в настройках параметров автообмена режим установлена в автоматический, каталог выгрузки - C:\DB\CP, каталог загрузки - C:\DB\PC (где C:\DB - это собственно путь к центральной базе), а имена файлов выгрузки и загрузки для указанных перефирийных ИБ имеют следующие значения:
При этом в настройках параметров автообмена режим установлена в автоматический, каталог выгрузки - C:\DB\CP, каталог загрузки - C:\DB\PC (где C:\DB - это собственно путь к центральной базе), а имена файлов выгрузки и загрузки для указанных перефирийных ИБ имеют следующие значения:
Переферийная ИБ | Каталог выгрузки | Каталог загрузки | Имя файла выгрузки | Имя файла загрузки |
---|---|---|---|---|
МГ1 (Ростов) | C:\DB\CP | C:\DB\PC | MG1C.zip | MG1D.zip |
МГ2 (Новосибирск) | C:\DB\CP | C:\DB\PC | MG2C.zip | MG2D.zip |
МГ3 (Калуга) | C:\DB\CP | C:\DB\PC | MG3C.zip | MG3D.zip |
- Создадим в папке с базой подпапку AutoExchange, т.е. создадим C:\DB\AutoExchange.
- Скачаем с NcFTP Client Home Page утилиты ncftpget.exe и ncftpput.exe и положим их в папку AutoExchange. Это консольная версия FTP клиента, в принципе, можно было бы воспользоваться штатным ftp.exe встроенным в ОС, но ввиду того, что с ним бывают определенные проблемы (иногда, когда нет возможности соединиться с FTP серверов в активном режиме, отправка / получение данных не происходит, также отмечен ряд проблем при установленном антивирусе Касперского и т.п.), вообщем, для обеспечения надежного и бесперебойного обмена данными проще воспользоваться утилитами сторонних разработчиков.
-
Создадим в папке AutoExchange файл правил автообмена, назавав его
_Exchange.prm
:
[General] Quit = 1 AutoExchange = 1 Output=Exchange.log [AutoExchange] SharedMode = Y ReadFrom=* WriteTo=*
-
Затем в той же самой папке создадим файл пакетного сценария
_runobmen.bat
или
_runobmen.сmd
(для корректного отображения кириллицы, плюс, если кириллические символы у вас используются в путях и т.п., файл необходимо создавать в кодировке
CP866
, сделать это можно в том же блокноте, выбрав в качестве шрифта - Terminal), содержимое файла следующее:
@echo off rem (c) Decker, 2011-2013, decker@compkaluga.ru set CP_Folder=%~dp0..\CP set PC_Folder=%~dp0..\PC rem set DebugMode=-d stdout set DebugMode= title АвтоОбмен color 0b setlocal enableextensions :fromftp echo Пробуем загрузить изменения. ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %PC_Folder% /MG1D.zip ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %PC_Folder% /MG2D.zip ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %PC_Folder% /MG3D.zip echo ErrorLevel: %ErrorLevel% echo Работает 1С...АвтоОбмен... start "АвтоОбмен" /wait /min "C:\Program Files\1Cv77\BIN\1cv7.exe" config /d"%~dp0..\" /N"obmen" /P"obmen" /@"%~dp0_Exchange.prm" :toftp echo Пробуем выгрузить изменения. ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %CP_Folder%\MG1C.zip ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %CP_Folder%\MG2C.zip ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %CP_Folder%\MG3C.zip echo ErrorLevel: %ErrorLevel% exit
- В данном примере с FTP сервера ftp.company.ru (логин - ftp_user, пароль - ftp_pass) с помощью ncftpget.exe последовательно скачиваются файлы обмена MG1D.zip, MG2D.zip, MG3D.zip, полученные от перефирийных баз и складываются в папку %PC_Folder%, т.е. в C:\DB\PC (каталог загрузки). Затем запускается платформа 1С:Предприятие с именем пользователя obmen и паролем obmen и происходит автообмен. В результате которого в папке %CP_Folder% оказываются подготовленные файлы выгрузки для перефирийных баз, которые затем, с помощью ncftpput.exe последовательно заливаются на ftp сервер. На этом конфигурирование обмена на стороне центральной базы закончено, пользователям достаточно вывести на рабочий стол ярлык к созданному _runobmen.bat или _runobmen.сmd , убедившись при этом, что в свойствах ярлыка рабочей папкой для данного сценария является именно та папка, в которой он находится.
-
Настройка автообмена в каждой из перефирийных баз ничем не отличается, за исключением файла
_runobmen.bat
или
_runobmen.сmd
. Рассмотрим этот файл на примере первой перефирийной базы:
@echo off rem (c) Decker, 2011-2013, decker@compkaluga.ru set CP_Folder=%~dp0..\CP set PC_Folder=%~dp0..\PC rem set DebugMode=-d stdout set DebugMode= title АвтоОбмен color 0b setlocal enableextensions :fromftp echo Пробуем загрузить изменения. ncftpget.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru %CP_Folder% /MG1C.zip echo ErrorLevel: %ErrorLevel% echo Работает 1С...АвтоОбмен... start "АвтоОбмен" /wait /min "C:\Program Files\1Cv77\BIN\1cv7.exe" config /d"%~dp0..\" /N"obmen" /P"obmen" /@"%~dp0_Exchange.prm" :toftp echo Пробуем выгрузить изменения. ncftpput.exe -u ftp_user -p ftp_pass -F %DebugMode% ftp.company.ru . %PC_Folder%\MG1D.zip echo ErrorLevel: %ErrorLevel% exit
- Здесь, первым действием мы забираем файл выгрузки центральной базы MG1C.zip с сервера и помещаем его в папку CP, затем, запускаем автообмен, и помещаем файл выгрузки из перефирийной базы MG1D.zip из папки PC обратно на сервер. Аналогичный сценарий используется и в двух других перефирийных базах, с разницей лишь в именах файлов.
Комментариев нет:
Отправить комментарий