Главная » Статьи » ПК и все что связанно

УРБД: Автоматический обмен через интернет между центральной и периферийными базами в Windows 7 + 1С:Предприятие 7.7.

УРБД: Автоматический обмен через интернет между центральной и периферийными базами в Windows 7 + 1С:Предприятие 7.7.

 
На инфостарте есть ряд навороченных средств, таких как у romix'а http://infostart.ru/public/15564/или у Вадима http://infostart.ru/public/14945/, а в моей публикации все делается вручную, используются bat- файлы, vbscript, принцип действия прозрачен + по горячим следам поднимания УРБД уделил время многочисленным ссылкам. Весь процесс настройки автообмена через интернет от начала до конца:
1) Создаю периферийную базу.
2) Настраиваю автообмен УРБД (можно мастером).
3) Настраиваю пересылку файликов по ФТП.
4) Еще бывает автообмен через dropbox от Антона  (http://infostart.ru/public/72556/).
5) Настраиваю пересылку файликов по электронной почте (опционально).

Настройка обмена УРБД через интернет по шагам 1-3 и 5 (1C 7.7 + windows 7):

1) Стандартный процесс создания периферийной базы через «Файл/Загрузить данные» подробно описан вфирменной документации (это от Сергея Коцюры раздел Документация по УРИБ (методические рекомендации, установка и подключение, принципы работы, инициализация, выгрузка и загрузка, управление режимами миграции, средства встроенного языка).

Если периферийка не новая (например восстанавливается после сбоя), заново выгрузите из центральной базы первоначальный образ (для этого в центральной базе в файле 1SDBSET поменяйте значение поля DBSTATUS этой периферийной базы на "N").

Если ждать загрузки периферийной базы приходится долго, есть быстрый способ – копируем центральную и в копии (периферийной) удаляем таблицы 1SDWNLDS, 1SUPDTS, редактируем таблицу 1SDBSET, удаляем в ней все строчки кроме строчки данной периферийной ПБ и центральной ЦБ базы. В оставшихся двух строчках меняем статусы, в колонке DBSTATUS переназываем, меняем местами значения полей M и P.

Как пересоздать периферийку на mssql я написал внеубиваемой базе. Для mssql есть скрипт у Maksim K.


 2) Обмен выполняем в пакетном режиме 1С:Предприятия 7.7, теория:

http://www.softpoint.ru/article_id75.htm - подробно. Здесь у Ильи - кратко.

Общие принципы на примере совета Vasil Pupkin из Google+. Чтобы посмотреть цитату полностью нажмите спойлер:
 

Но я уже давно привык к мощному ФТП-клиенту winscp и сделал настройки для него. При подготовке этой статьи наткнулся на подходящую респектабельную ссылку с картинками: http://center-comptech.ru/1c_7_7_nastroyka_avtoobmena_cherez_ftp.html.

Вот мои настройки. Батник запуска скачивания апдейтов для центральной базы D:\1C-Data\CIB\Exchange\download\download_SKL_run.bat следующего содержания:

runas /savecred /user:file-server\admin D:\1C-Data\CIB\Exchange\download\download_SKL.bat

D:\1C-Data\CIB\Exchange\WinSCP.com /script=D:\1C-Data\CIB\Exchange\download.txt /log=D:\1C-Data\CIB\Exchange\exchange.log

WinSCP устанавливается в папку D:\CIB\Exchange. Настройки подключений сохраняются в файл WinSCP.ini, пароль подключения шифруется. Файл WinSCP.ini формируется автоматически при создании нового подключения в графическом режиме WinSCP.exe (у меня оно называется snkosm), когда вы скачали, распаковали и запустили клиент и добавили новый логин (stored session). В расширенном режиме настройки (advanced options) можно настроить таймауты соединений (connections), а когда установите соединение в режиме ФТП-браузера будет доступна настройка  options->preferences->presets->binary особенностей передачи и записи файлов на ФТП сервер.

 Настройки winscp для УРБД

Там есть русский интерфейс (скачивается отдельно) и все понятно. Если будут вопросы по настройке клиента, допишу об этом.

Вот настройка D:\1C-Data\CIB\Exchange\download.txt для пакетного запуска WinSCP на загрузку в центральную базу:

open snkosm

option transfer binary

option confirm off

cd exchange

get SKL1.zip \\file-server\1C-Data\ExchangeC\SKL1.zip

rm SKL1.zip

close

exit

Вот настройка пакетного запуска WinSCP для выгрузки изменений из центральной базы на ФТП D:\1C-Data\CIB\Exchange\upload.txt:

open snkosm

option transfer binary

option confirm off

cd exchange

put \\file-server\1C-Data\ExchangeC\SKL0.zip \SKL0.zip

close

exit

snkosm - это имя соединения, которое подхватывается в файле настройки акетного задания winscp, само же соединение редактируется в графическом интерфейсе winscp.

Настройки автообмена в периферийной базе (папка обмена ExchangeK):

Exchange копия\prm\SKL.Upload.prm

[General]
Quit = 1
AutoExchange = 1
Output= "D:\1C-Data\Копия\\prm\SKL.Upload.log"
[AutoExchange]
SharedMode = Y
ReadFrom = SKL

Exchange копия\prm\SVR.Download.prm

[General]
Quit = 1
AutoExchange = 1
Output= "D:\1C-Data\CIB\\prm\SKL.Download.log"
[AutoExchange]
SharedMode = Y
WriteTo = SKL

Exchange копия\Exchange\download\download_SKL.bat

rem "C:\Program Files\The Bat!\thebat.exe"/NOLOGO /CHECKautoobmen_sklad@mail.ru /EXIT;
cscript D:\1C-Data\Копия\Exchange\VBS\Obmen.Peref.vbs "SKL" "D:\1C-Data\Копия\" UPLOAD %WINDIR% 1

Exchange копия\Exchange\download\download_SKL_run.bat

D:\1C-Data\Копия\Exchange\WinSCP.com /script=D:\1C-Data\Копия\Exchange\download.txt /log=D:\1C-Data\Копия\Exchange\exchange.log
D:\1C-Data\Копия\Exchange\download\download_SKL.bat

Exchange копия\Exchange\upload\upload_SKL.bat

cscript "D:\1C-Data\Копия\Exchange\VBS\Obmen.peref.vbs" "SKL" "D:\1C-Data\Копия\" DOWNLOAD %WINDIR% 1
rem "C:\Program Files\The Bat!\thebat.exe"/NOLOGO /MAIL;USER="autoobmen_sklad@mail.ru";TO="autoobmen_cib@mail.ru";ATTACH="D:\1C-Data\ExchangeK\SKL1.zip";SUBJECT="from SKL";SEND; /EXIT

Exchange копия\Exchange\upload\upload_SKL_run.bat

cscript "D:\1C-Data\Копия\Exchange\VBS\Obmen.peref.vbs" "SKL" "D:\1C-Data\Копия\" DOWNLOAD %WINDIR% 1
rem "C:\Program Files\The Bat!\thebat.exe"/NOLOGO /MAIL;USER="autoobmen_sklad@mail.ru";TO="autoobmen_cib@mail.ru";ATTACH="D:\1C-Data\ExchangeK\SKL1.zip";SUBJECT="from SKL";SEND /EXIT 
D:\1C-Data\Копия\Exchange\WinSCP.com /script=D:\1C-Data\Копия\Exchange\upload.txt /log=D:\1C-Data\Копия\Exchange\exchange.log

Exchange копия\Exchange\VBS\Obmen.Peref.vbs<input class="input-button" div')[1].getelementsbytagname('div')[0].style.display="" !="" )="" {="" this.parentnode.parentnode.getelementsbytagname('div')[1].getelementsbytagname('div')[0].style.display="" ;="" this.innertext="" this.value="Свернуть" }="" else="" }"="" type="button" value="Развернуть" style="margin: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 13px; line-height: inherit; font-family: Verdana, Arial, Helvetica, sans-serif; -webkit-appearance: button; cursor: pointer;">
 

Exchange копия\Exchange\download.txt

open snkosm
option transfer binary
option confirm off
cd exchange
get SKL0.zip d:\1C-Data\ExchangeK\SKL0.zip
rm SKL0.zip
close
exit

Exchange копия\Exchange\upload.txt

open snkosm
option transfer binary
option confirm off
cd exchange
put d:\1C-Data\ExchangeK\SKL1.zip \SKL1.zip
close
exit

Все это есть в файле для скачивания, все содержимое подпапки "F:\Exchange копия" распаковывается непосредственно в информационную базу (в архиве две папки, одна для центра другая для периферийной базы).

Есть еще несколько вещей, о которых хочется упомянуть в заключение.

В некоторых публикациях предлагаются платные способы решения нашей задачи - УРБД Мастер и ROBOтяга, описывать которые здесь подробно не будем, предпочтем вручную поколупаться, скопировать и поправить несколько батников проприетарному ПО.

Понравилась статья «Автообмен через dropbox» от http://infostart.ru/profile/36474/ (http://infostart.ru/public/72556/), но только увидел её, а сам не пробовал.

О том, как организовать обмен по почте можно писать отдельно – это не просто и многие от этого способа плюются, но у него есть свои достоинства, наример – логи ФТП не всегда есть у нас в распоряжении, то есть обвинить в ошибке при желании можно и программиста (размыта ответственность) а вот пришло ли письмо на почту и когда оно пришло все могут видеть однозначно. Рою в сторону воспользоваться клиентом The bat:

Загрузка (центральная база) в bat-файле download_SKL.bat

"C:\Program Files (x86)\The Bat!\thebat.exe"/NOLOGO /CHECKautoexchange_cib@mail.ru /EXIT;

И выгрузка (центральная база)

"C:\Program Files (x86)\The Bat!\thebat.exe"/NOLOGO /MAIL;USER="autoexchange_cib@mail.ru";TO=" autoexchange_skl@mail.ru";ATTACH="D:\1C-Data\ExchangeC\SKL0.zip";SUBJECT="from CIB";SEND /EXIT

Как делается загрузка и выгрузка по почте в периферийной базе показано там, где я пишу про периферийную базу (в комментариях "rem" чуть выше).

В общем пакеты отправляются и принимаются, но пока не поборол зависание The bat после отправки письма с вложением. В гугли можно выловить несколько коварных настроек реестра для The bat, но это не так быстро как с winscp...

При обмене по почте могут быть проблемы с рассылкой измененной конфигурации из-за большого размера файлов. Выходом может служить способ перепаковки (побить архив), предложенный http://infostart.ru/profile/20743/ - на Инфостарте не выложено, а выложено вhttp://venger.narod.ru/storage/1Cv77_BatchFiles.zipПакетные файлы (*.bat) для архивации/обновления и/или отсылки по почте (многотомными архивами с паролем) баз данных 1С:Предприятие 7.7 (dbf-версий).

Категория: ПК и все что связанно | Добавил: grot789 (05.10.2015)
Просмотров: 1742 | Теги: УРБД: Автоматический обмен через ин | Рейтинг: 5.0/1
Всего комментариев: 0
avatar

Расскажи друзьям интересные новости:


Установить на свой сайт!