1с77 + УРБД + DropBox


Удачное решение полуавтоматического обмена УРБД через DropBox

Компания, в которой я работаю занимается розничной торговлей. У нас 6 магазинов + офис.

Все это работает на дописаной 1с77 ТиC + УРБД. В каждом магазине компьютер, на неи 1с77 ТиС + Самописным фронт + Торговое оборудование. Магазины небольшие - от 70 до 150кв.м. Кроме кассовых функций, 1с77 в магазине служит для оприходования товара, печати этикеток, инвентаризаций, и т.п.

DropBox уже третье решение по обмену файлами.

Первый был через электропочту. Файлы отправлял-получал обработкой, с помощью внешней компоненты. Плюсы в том что худо-бедно работало. Минусы: некоторые письма сервера резали как спам, иногда бывало подвиснет интернет и при пересылке большого файла (при обновлении конфиги 4,7мб) компонента не могла прокачать письмо и все повисало и т.п. проблемы

Второй способ обмен через FTP. Работало стабильно, но минусы теже. При пересылке большого файла работа магазина вставала... Или FTP сервер подвис и 1с его не видит, или в магазине интернет отпал... Файлы отправлял получал в самой 1с с помощью DialMail.dll

Была даже написана небольшая софтинка на VB.Net, она умела запускать конфигуратор с параметрами, переименовывать файлы обмена и отправлять-забирать их с FTP сервера. Но на магазинах она не прижилась... по некотрым причинам...

Ну и последний вариант это обмен с помощью DropBox

http://www.DropBox.com это сервис синхронизации информации одного компьютера с любым другим на котором запущен сервис с тем же логин\паролем. Также сервис позволяет синхронизировать одну папку одного аккаунта с другим аккаунтом (Share folder)

На хабре часто делятся не стандартными способами использования этим удобным сервисом http://habrahabr.ru/tag/dropbox/

 

Для каждого узла УРБД (офис и магазины) завел отдельный аккаунт в BropBox. В центральном акк сделал несколько папок (по числу распределенных узлов) и рашарил каждую папку центрального узла с соответствующим аккаунтом DropBox распределенного узла УРБД.

Можно было конечно использовать один и тот же аккаунт BropBox во всех магазинах, но в этом случае файл обмена каждого магазина грузился бы в каждый магазин. Если это вечерний файл обмена магазина, то размер примерно 1-2 Кб, и фиг бы с ним, пусть грузится по всем магазинам. Но если была изменена конфига (а она у меня в постоянном тюнинге :) то файл обмена уже 4,8Мб При 6 распределенных узлах это каждый магазин должен прогрузить 4,8Мб*6 при обновлении

В общем то сам алгоритм обмена:

При обмене Центр -> Переферийная база

  1. 1сЦентр генерирует файл параметров для запуска конфигуратора
  2. 1сЦентр генерирует cmd.bat для:
    1. запуска конфигуратора с файлом парамтеров из п.1
    2. переименования файла выгрузки (например 4050.zip -> pr_405_2010-06-30_12-00-05.zik) это делаю чтоб каждый файл обмена был уникальный и не потерялся при следующем обмене
    3. копирования файла pr_405_2010-06-30_12-00-05.zik в архив и в папку DropBox_а для конкретного узла
    4. удаления файлов параметров, cmd.bat, лога УРБД
  3. 1сЦентр запускает cmd.bat и закрывает сама себя. Практика показала что времени на закрытие 1с до запуска конфигуратора очень даже хватает

После того как обмен отработает и файл попадет в папку DropBox_а можно работать в 1сЦентр, а переферийный комп получит свой файл когда DropBox прокачает его. Даже если нет интернета в офисе или магазине, файл дойдет когда инет появится. В идеале через минут 5-10 можно звонить в магазин и просить чтоб нажали обмен.

Примерно так же настроен обмен папкой ExtForms из офиса в магазины

 

Если кто-то решит зарегистрироваться в DropBox, пожалуста, используйте мой реферал :) за это добавляют место на сервере (250Мб за каждого подписавшегося)

https://www.dropbox.com/referrals/NTU3NzE3ODk

 

Буду рад ответить на вопросы :)

UPD По поводу приложенной обработки:

1) папку DropBox я разместил в каталоге базы данных

2) в константы добавил КодУРБД, без миграции. Т.о. в центральной базе она равна "000", в переферийных коду УРБД из конфигуратора

3) в настройках автообмена УРБД указал общую папку выгрузки-загрузки КаталогИБ() + "Exch", внутри этой папки есть папка "Архив".

Для автоматической настройки этой опции пытался использовать скрипты, но пока ничего не получилось... попытки описаны тут: http://www.forum.mista.ru/topic.php?id=490386

Файлы обработки:

-