Удаленный склад

Тема была начата на форуме и вот во что вылилась. Но по порядку.

Задача:

Alex пишет:
Арендовали склад за 20 км от офиса. Стационарного телефона там нет.
Нужно сделать, чтобы на этом удалённом складе работала 1С с ежедневными обновлениями базы из офиса.
В офисе компы замкнуты в сеть и ходят в и-нет через ADSL модем (Zyxel Prestige 650-E1).

Со слов програмистки 1С объём обновлений примерно 50-200 килобайт в сутки. Теоретически такой объём можно прокачивать и через GPRS.
Также теоретически всё настроить вроде несложно и выглядеть это будет примерно так.
Чел на складе утром (предварительно созвонившись и убедившись, что офисный комп в сети) жмёт на кнопку обновить. Его комп коннектится с офисным компом и скачивается обновление (если оно есть).

Осталось решить техническую часть.
Может кто сталкивался?

Решение:

В качестве протокола взаимодействия между двумя удаленными компьютерами был выбран FTP (File Transfer Protocol - протокол передачи файлов). Он подразумевает наличие FTP-сервера (нами был выбран FileZilla), обслуживающего соединения FTP-клиентов. Сам FTP-сервер находится в оффисе, FTP-клиент - на складе. Компьютер с 1С-Бухгалтерией обращается к ресурсам FTP-сервера по обычной локальной сети TCP/IP. Также был куплен реальный IP-адрес для сервера FTP.

Упрощенная схема взаимодействия:

  1. Комп на складе выходит в инет через мобилу.
  2. Роутер настроен как бридж.
  3. FTP-сервер в офисе имеет постоянный (внешний) адрес IP (например 10.5.8.1).
  4. Файл обновления от компьютера с 1С-Бухгалтерией подкладываются на FTP сервер через папку с общим доступом.
  5. Комп со склада коннектится на адрес сервера и после авторизации получает возможность слить нужные ему файлы.

Настройку самого FTP-сервера FileZilla опускаем, ибо это довольно просто. Скажу только, что пусть корневым каталогом для сервера будет каталог "c:\ftp", а в нем будет еще два каталога - "Office" (для скачивания обновления для удаленного склада) и "Sklad" (для выкладывания обновлений складской базы).

Кто не знает, в ОС семейства Windows (старше Win98) есть встроенный консольный FTP-клиент, поддерживающий выполнение списка команд из заранее подготовленного файла. Исходя из этого и пишем такие командные файлы:

Содержимое файла get.cmd (забрать файл с FTP):

---------------------------------------
ftp -i -s:get.txt 10.5.8.1
---------------------------------------

где
ftp - имя команды
-i - выключаем интерактивные запросы при передаче более чем одного файла
-s - параметр, подключающий файл со списком команд
get.txt - имя файла со списком команд для FTP клиента
10.5.8.1 - внешний (реальный) IP адрес сервера.

Сопутствующий ему файл с командами get.txt:

---------------------------------------
myLoginName
mySecretPassword
lcd c:\Office
cd /Office
mget * /YES
mdelete * /YES
bye
---------------------------------------

Разберем этот файл построчно.
В первых двух строках записаны логин и пароль на сервер.
В третьей строке мы помечаем, что текущий локальный каталог будет "c:\Office".
В четвертой строке мы переходим в каталог "Office" на сервере.
Пятой строкой забираем себе все файлы из каталога "Office" в свой локальный каталог ("c:\Office").
Шестой строкой удаляем все файлы в каталоге "Office" на сервере.
Седьмой строкой прощаемся с FTP-сервером.

В случае, если мы хотим переложить все файлы из локального каталога "c:\Sklad" на FTP-сервер в каталог Sklad, то командный файл put.txt может выглядеть так:

---------------------------------------
myLoginName
mySecretPassword
lcd c:\Sklad
cd /Sklad
mdelete * /YES
mput * /YES
bye
---------------------------------------

Содержимое файла put.cmd (положить файл на FTP):

---------------------------------------
ftp -i -s:put.txt 10.5.8.1
---------------------------------------

В этом файле вместо команды mget (multi get - взять несколько файлов) появляется команда mput (multi put - покласть несколько файлов).

Схема обмена файлами

Вот и все. На компьютере склада сваливаем в какой-нибудь один каталог файлы get.cmd, get.txt, put.cmd, put.txt и создаем каталоги "c:\Office" и "c:\Sklad". В каталог "c:\Sklad" на компьютере склада кладем какой-нибудь файл (один или несколько), а в каталог "Office" на FTP сервере также кладем один или несколько файлов. Подключаем компьютер склада через мобильный телефон к сети Интернет и запускаем первый файл get.cmd а затем put.cmd. Отключаемся. Проверяем локальный каталог "c:\Office" - в нем появились файлы с офисного FTP-сервера. Смотрим в каталог "Sklad" на сервере - в нем появились файлы с компьютера склада.

Всё просто %))) Улыбаемся и идем пить пиво %))))

Yandex cite