Организация обмена распределенных баз 1С через sftp сервер

I. Имеется

1 Локальная сеть головного предприятия (windows), которая имеет выход в Интернет через FreeBSD сервер, который и будет служить «точкой обмена» данными. На нем работает SSH сервер.

2 Филиал. Работает терминальный сервер (Ubuntu 10.04, LTSP, WINE@Etersoft)

II. Настраиваем обмен на центральной базе.

1. Устанавливаем пакет PuTTY.

2. Генерируем в программе puttygen.exe приватный и публичный ключи. Сохраняем.

3. В программе putty.exe создаем сессию для подключения к sftp серверу. Указываем login obmen для входа и приватный ключ, чтобы входить без пароля. Сохраняем сессию под именем obmen.

4. Создаем командный файл для обмена с периферийной базой.

echo off
set PATH=C:\Program Files\Portable PuTTY;%PATH%

rem Обмен бухгалтерия
pscp obmen:buh_in/L1.zip \\server\database\buh\pc\
"C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /D"\\server\database\buh" /@c:\1c\script\autoexec
pscp \\server\database\buh\cp\L0.zip obmen:buh_out

rem Обмен зарплата
pscp obmen:zar_in/L1.zip \\server\database\zar\pc\
"C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /D"\\server\database\zar" /Nobmen /P123456 /@c:\1c\script\autoexec
pscp \\server\database\zar\cp\L0.zip obmen:zar_out

5. Создаем файл autoexec.prm и помещаем его в каталог С:\1с\script\

[General]
AutoExchange=Y
Quit=Y
Output=C:\1c\avtoobmen.log

[AutoExchange]
SharedMode=Y
ReadFrom=*
WriteTo=*

6. Создаем в 1С учетные записи obmen с паролем 123456

7. Создаем центральную и периферийную базы.
Устанавливаем префиксы для центральной — M, для периферийной — L.

III. Настраиваем SFTP сервер

1. Создаем учетную запись для обмена. login obmen
В домашней директории создаем соответствующие поддиректории:

buh_in
zar_in

buh_out
zar_out

IN- входящие для Центральной базы
OUT - исходящие из Центральной базы

2. Ограничиваем доступ учетной записи только через sftp и только к домашней директории.
Для этого добавляем в файл /etc/ssh/sshd_config :

Match name obmen
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

IV. Настраиваем обмен на периферийной базе.

1. Помещаем периферийные базы в каталог /home/data/ (buh,zar)
(Для wine это будет C:\buh и C:\zar соответственно)

2. Под учетной записью пользователя, который будет производить обмен, создаем публичный и приватный ключи.

$ ssh-keygen

и копируем публичный ключ на sftp сервер

$ ssh-copy-id -i ~/.ssh/id_rsa.pub obmen@XX.XX.XX.XX

3. Создаем командный файл для обмена с центральной базой:

#!/bin/sh

sftp -b batch_in obmen@XX.XX.XX.XX
wine "C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /D"c:\buh" /@c:\\1c\\script\\autoexec
wine "C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /D"c:\zar" /Nobmen /P123456 /@c:\\1c\\script\\autoexec
sftp -b batch_out obmen@XX.XX.XX.XX

Содержимое файла batch_in:

get buh_out/L0.zip /home/data/buh/cp
get zar_out/L0.zip /home/data/zar/cp

Содержимое файла batch_out:

put /home/data/buh/pc/L1.zip buh_in
put /home/data/zar/pc/L1.zip zar_in

4. Файл autoexec.prm помещаем в каталог С:\1с\script\ (/home/data/1c/script)

Назад

 

 

 

 

 

 

 

 

 

Используются технологии uCoz