На главную страницу Версия-Т
VTSoft.ru

Автоматизация учета на разрозненных торговых объектах


На данный момент описанная система находится на тестовой эксплуатации в двух торговых сетях г. Калуги. По завершению тестовой эксплуатации будет выпущен релиз программы «АРМ кассира Professional», в который войдут описанные возможности.

Автор:  Евгений Кокорников
руководитель отдела компании "Версия-Т"

Автоматизация торговых сетей

Автоматизация учёта на разрозненных торговых объектах


В последнее время все чаще стала возникать потребность в автоматизации товарно-денежного учета не только отдельных торговых объектов, но и комплексной автоматизации торговых сетей. В большинстве случаев торговая сеть представляет собой совокупность разрозненных магазинов, в которых ведется учет по розничным ценам, и офиса, в котором ведется централизованный товарно-денежный учет. В ряде случаев на торговых объектах может не вестись полноценного учета, а система будет получать данные о номенклатуре из офиса, и будет передавать обратно в офис информацию о результатах торговли. Основной задачей при автоматизации торговых сетей является консолидация разрозненных данных, накапливаемых на каждом торговом объекте и в офисе.
В данной статье будут рассмотрены различные способы решения поставленной задачи, а также плюсы и минусы каждого из подходов к ее решению. После краткого анализа различных способов консолидации разрозненных данных в торговой сети, будет более подробно рассмотрен способ реализации поставленной задачи, выбранной нашей компанией для автоматизации нескольких торговых сетей.
Наиболее распространенные на данный момент варианты обеспечения консолидации данных в территориально удаленных точках это:
Помимо перечисленных способов, также возможна репликация баз данных, в случае работы удаленных торговых объектов каждого со своей локальной базой данных, или реализация учетной системы в виде web-приложения. Но эти подходы мы не будем рассматривать в рамках данной статьи.

Подключение к общей базе данных

При этом подходе клиентская часть учетной системы запускается на ПК каждого торгового объекта, но подключается она к общей базе данных, расположенном на каком-либо сервере (например, в офисе торговой компании). Этот подход является стандартным при использовании локальной сети, но, если между торговыми объектами отсутствует надежный высокоскоростной канал связи, то использование такого подхода сильно ограничено.

Плюсы:


Минусы:



Терминальный доступ к учетной системе

При таком подходе реализуется доступ к учетной системе, расположенной в офисе, из торговых объектов в режиме терминала. В офисе устанавливается сервер терминалов (Windows Server 2003, Citrix и т.п.), под управлением которого будет работать учетная система. На торговых объектах устанавливаются терминальные клиенты, которые будут подключаться к серверу терминалов для работы с учетной системой.

Плюсы:


Минусы:


На последнем вопросе стоит немного заострить внимание, поскольку работа с торговым оборудованием является неотъемлемой частью автоматизации торговли. Рассмотрим причины возникновения возможных проблем при работе с оборудованием в режиме терминального доступа. Терминальный режим работы основан на том, что все программное обеспечение работает на сервере, а на клиентские ПК передается только изображение рабочего экрана. То есть задачей терминального клиента является исключительно отображение картинки (или изменений в картинке), которые передал терминальный сервер и передача серверу действий, совершаемых пользователем. Поскольку все программы, в том числе и взаимодействующие с торговым оборудованием через порты ПК, работают на сервере, а торговое оборудование подключено к портам клиентских терминалов, то для организации взаимодействия программ с оборудованием необходимо настроить перенаправление ввода/вывода информации с локального порта сервера на порт удаленного терминала. То есть, если программа должна взаимодействовать, например, с ККМ, подключенной к последовательному порту COM1, то сервер терминалов должен создать у себя виртуальный COM-порт с указанным номером и, при обращении к нему, перенаправлять всю информацию терминальному клиенту, сообщая о том, что эта информация должна быть передана на последовательный порт COM1. Получается, что при обращении программы к ККМ образуются дополнительные задержки, вызванные необходимостью формирования и передачи TCP пакета от терминального сервера терминальному клиенту. Больше всего времени, в этом случае, тратится на установку связи между сервером и клиентом, и напрямую зависит от времени отклика удаленного ПК. В локальной сети это время, чаще всего, не превышает 1мс, поэтому при при использовании терминального доступа в локальной сети проблем с торговым оборудованием практически не возникает. При соединении удаленных ПК через интернет или VPN, в зависимости от технологии подключения и маршрута от сервера до клиента, это время всегда больше, чем при подключении через локальную сеть и может составлять от нескольких десятков до нескольких сотен миллисекунд. Поскольку при обмене программ с оборудованием довольно часто используются протоколы, основанные на определенном времени ожидания программой ответа от устройства (или наоборот), то при увеличении времени доставки пакета от программы до устройства может возникнуть ситуация, при которой программа после отправки запроса устройству не дожидается от него ответа в течение определенного времени. В этом случае обычно возникает ошибка связи с устройством.
Второй причиной возникновения проблем является то, что в виртуальных драйверах последовательных портов, используемых для перенаправления ввода/вывода на терминальных клиентов, не всегда полностью реализуются все возможности стандартных последовательных портов (явное управление битом паритета, использование сигналов готовности и т.д.). В случае, если оборудование использует возможности последовательного порта, не реализованные в драйвере виртуального порта, то связь с устройством будет либо невозможна, либо будет весьма нестабильной.
Для решения подобных проблем, чаще всего, единственным выходом является модификация исходного кода программы и прошивки устройства. Возможно также написание специальных сетевых драйверов для устройства, но в этом случае уже будет использоваться не только обычное терминальное подключение, но и сетевое подключение между клиентской и серверной частью сетевого драйвера. Настройка подобной системы несколько сложнее, чем организация классического терминального доступа.

Синхронизация при помощи файлов

Конечно, «синхронизация при помощи файлов» - весьма общее понятие и реализация подобной синхронизации будет зависеть от того, какая именно информация будет передаваться в файлах и насколько часто будет производиться обмен между торговыми объектами. Поэтому, для начала, постараемся выбрать и более точно определить ключевые моменты консолидации данных при помощи передачи файлов.
За минимальную единицу передачи информации между торговыми объектами примем любой документ, который может влиять на состав номенклатуры, остатки, резерв и цены товаров. Сюда войдут все приходные и расходные накладные, акты перемещения, акты переоценки, кассовые чеки и т.д. Основным форматом файла для передачи документов выберем XML, как наиболее удобный формат для передачи структурированной текстовой информации. Транспортным уровнем для передачи данных будет являться протокол FTP. Все файлы будут передаваться по этому протоколу на общий FTP-сервер. Каждому торговому объекту на FTP-сервере будет отведен отдельный каталог, через который будет производиться обмен информацией с офисом торговой компании. Для уменьшения потребляемого интернет-трафика будем сжимать передаваемые файлы в формат ZIP/GZIP. Сформированные и проведенные на любом торговом объекте документы будут сразу же сохраняться на FTP-сервере. Проверка появления новых документов на FTP-сервере будет производиться через определенные промежутки времени. Этот промежуток времени может изменяться по желанию пользователя и будет зависеть от того, насколько быстро должна поступать информация о любом изменении учетных данных в офис или торговый объект.

Формализовав задачу, попробуем оценить плюсы и минусы подобного подхода.

Плюсы:


Минусы:


Наша компания выбрала данный подход к консолидации разрозненных данных при автоматизации нескольких торговых сетей. В качестве учетной системы в настоящее время используется конфигурация «Торговля и Склад» программы «1С:Предприятие 7.7», в которую были внесены изменения, обеспечивающие формирование файла в формате XML, при проведении документов, а также обеспечивающие обработку файлов, полученных из удаленных торговых объектов. На торговых объектах использовалась новая версия программы «АРМ кассира Professional», в которой был полностью переработан механизм работы с документами товародвижения. Для формирования и обработки передаваемых документов для программы были разработаны несколько внешних модулей (плагинов), а также утилита, обеспечивающая пересылку данных по FTP протоколу.
На следующем рисунке приведена примерная схема взаимодействия систем, установленных в офисе и магазине, при распределении товара по торговым объектам. Идеальным вариантом является тот, при котором приходные документы от поставщиков товара поступают в центральный офис, а после оформления прихода от поставщика, товары распределяются между торговыми объектами, путем формирования внутренних актов перемещения на розничные склады, определенные в «1С:Предприятие ТиС» для каждого удаленного объекта. Следует отметить, что при проведении акта перемещения товара на розничный склад, реального перемещения остатков не происходит, а производится резервирование остатков товаров, подлежащих перемещению. Реальное перемещение остатков будет произведено только в случае получения подтверждения того, что передаваемый по накладной товар принят в магазине.


При приемке товара могут возникнуть следующие типовые ситуации.



Рассмотрим механизмы передачи информации о продажах из магазинов в офис.



Из рисунка видно, что в ходе работы магазинов, в офис поступает информация о любой реализации товара. Задержка в поступлении этой информации будет определяться частотой опроса FTP-сервера на предмет появления на нем новых документов. Поскольку информация о каждом выведенном чеке сразу же передается в офис, то в офисе возможно в любой момент увидеть актуальное состояние остатков по каждому товару. Передачу информации о каждом выведенном в магазинах чеке можно отключить. По закрытию кассовой смены в программе «АРМ кассира» в офис будет передан файл, на основании которого будет формироваться документ закрытия кассовой смены. При проведении этого документа производится удаление всех кассовых чеков, относящихся к этой смене. Однако, используемая 1С-конфигурация, при удалении чеков, производит их архивацию и в любой момент времени позволяет построить по ним отчет.

Помимо описанного выше, система реализует следующие возможности:



На данный момент описанная система находится на тестовой эксплуатации в двух торговых сетях г. Калуги. По завершению тестовой эксплуатации будет выпущена следующий релиз программы «АРМ кассира Professional», в которую войдут все описанные возможности.


Все публикации