Автоматизированный обмен файлами между компьютерами розничной торговой сети — задача, осложненная требованиями безопасности, многообразием способов и скоростей подключения к Internet, разноуровневой квалификацией персонала и другими факторами. Требуется обеспечение возможности автоматизированной отправки в магазины торговой сети документов на перемещение товарно-материальных ценностей и их переоценки, а также справочника дисконтных карт. Кроме того, необходимо было организовать возможность приема из магазинов файлов с отчетами за смену с информацией о продажах и возвратах. Для реализации этой задачи была создана программа SDU (Send Download Universal), универсальная программа для отправки и загрузки.

Всего доступно три режима работы: «Центральный сервер», «Сервер розницы» и «Магазин». Программа работает по принципу клиент-сервер и является многопоточной, то есть может обрабатывать несколько входящих подключений одновременно, работая в режиме «Центральный сервер». Процесс обмена абсолютно безопасен, поскольку программа может передавать только файлы определенных типов, а при установке сеанса связи происходит передача специальных служебных сообщений, которые являются своего рода ключами. Общая схема работы программы представлена на рисунке. Теперь подробно рассмотрим каждый из трех режимов работы программы.

1. «Центральный сервер». В этом режиме программа выступает в роли связующего звена между сервером офиса розницы и магазинами. Казалось бы, файлы из магазинов можно передавать и напрямую. Однако возможна такая ситуация, когда, к примеру, сервер офиса розницы является частью локальной сети и подключается к Internet через другой компьютер или какое-либо устройство (например, модем). Либо IP-адрес меняется динамически при каждом подключении, что тоже неприемлемо. То есть во всех случаях, когда нет возможности непосредственно подключить к Internet сервер офиса розницы с выделением статического IP-адреса, возникает необходимость в промежуточном звене.

2. «Сервер розницы». Данный режим устанавливается для компьютера, на котором планируется работа оператора, выполняющего отправку файлов в магазины и прием файлов-выгрузок с центрального сервера. Отправка, по сути, состоит из двух шагов: вначале выбирается файл, предназначенный для передачи, а затем указывается магазин, в который необходимо произвести выгрузку. Стоит отметить, что возможность отправки сразу во все магазины доступна не для всех типов файлов. Например, документы на перемещение товарно-материальных ценностей и их переоценки можно отправить только в один магазин, в то время как справочник дисконтных карт отправляется во все магазины.

После нажатия кнопки «Отправить» происходит попытка соединения с выбранным магазином, и в случае успеха начинается процесс передачи файла (шкала «Процесс отправки»). Вся информация о процессе записывается в специальный журнал, а также передается на центральный сервер.

3. «Магазин». Режим предназначен для компьютера в магазине, установленного на кассе, который должен соответствовать тем же требованиям, что и центральный сервер: прямое подключение к Internet и статический IP-адрес. В данном режиме процессы приема и отправки полностью автоматизированы, а сама программа работает в свернутом виде, в фоновом режиме. После окончания торговой смены на жестком диске компьютера создается файл-выгрузка, который на другой день в заданное время обнаруживается программой и отправляется на центральный сервер.

Также в программе предусмотрена возможность выгрузки файла вручную на тот случай, если автоматическая выгрузка не удалась.

После нажатия кнопки «Выгрузить в офис» программа ищет файл-выгрузку за указанную дату и, если он был обнаружен, отправляет его на центральный сервер. В журнал записывается сообщение о том, что данный файл отправлялся вручную.

Кроме того, предусмотрена кнопка проверки связи с Internet, так как в большинстве аварийных случаев автоматическая отправка не происходит по причине отсутствия таковой. Наличие такой кнопки удобно для кассиров, как самый быстрый и простой способ диагностики.

Прием файлов вообще не требует от пользователя никаких действий. Входящий файл, в зависимости от его типа, сразу поступает в указанную в настройках программы папку.

Александр Исаев (mds-progress@mail.ru) — программист, занимается разработкой, тестированием и внедрением программ на С++ и для платформы 1С Предприятие


Рисунок. Общая схема работы программы