Введение


Вдохновившись статьей о переходе с Эвотор на другое ПО, решил написать свою статью на эту тему. Она будет полезна в первую очередь специалистам, которые еще не определились на что переходить. Если интересно, прошу под кат.

Требования


  1. ПО торговой точки подконтрольно заказчику. Возможность подстраивать под бизнес процессы заказчика
  2. Полностью подконтрольный обмен данными. С возможностью доработки. Никаких облаков.
  3. Кассовое ПО должно уметь работать с: Весы, ККМ ФЗ-54, Дисплей покупателя(С этим отдельная история), Двумерный Сканер ШК.
  4. Возможность доработки ПО силами заказчика.
  5. Сроки. Весь процесс переговоров занял 5 месяцев. А разработка должна уместиться в 3.5 месяца, чтобы реализовать минимально рабочий продукт.
  6. Обмен с торговой точкой в себя включает: Перемещения(Приход на точку, возврат с точки), Списания, Чеки, Заказ на склад, Оповещение(Такой документ в который можно включить все что угодно. Некий мессенджер от менеджера к торговой точке), Переоценка, Установка цен.
  7. Стоимость оборудования должна быть минимальной, но выполнять все возложенные на нее функции. Торговое оборудование должно занимать минимум места.
  8. Весы должны быть с возможностью перемещения по торговой точке. т.е. можно отсоединить блок питания, и по беспроводному каналу связи взвешивать на POS-терминале.

Вообще описание всех требований было описано изначально на 3х страницах. К концу переговоров, тех. задание выросло до 11 страниц. И это не подробное тех. задание, а только набросок, как и что должно работать, без посвящения в детали.

Далее будет описан процесс реализации того что было обозначено в требованиях.

Оборудование и ПО «мозга» торговой точки


Первое что необходимо было сделать, определиться какое же оборудование будет установлено.
На какой платформе будет все развернуто. Тут мне помог мой предыдущий проект, который был реализован на ТСД от АТОЛ. Был запрос реализовать подключение весов Масса-К с WiFi к ТСД. Это было успешно реализовано на базе предыдущих моих изысканий . А после я подобное реализовывал для магазина строй материалов. Все это было реализовано на 1С мобильная платформа. В этом проекте требовалась своя специфика. Экран должен быть не очень большим(Иначе не влезет в ларек), но и достаточно читаемым. И тут началась череда неудач и тяжких мучений выбора. Первым вариантом я рассмотрел все что было представлено на рынке для торговли. И казалось бы вот он, шикарный вариант — Атол Sigma 10. Экран хорош. Места много не занимает, встроенный ККМ с авто отрезом и широкой лентой. Но выяснилось, что они залочены под свое приложение. Какое то время, то ли раздавали, то ли продавали коды к Атол 150Ф, который позволял работать любому ПО с данной ККМ(150Ф как раз встроен в Sigma10). Что самое интересное, Sigma 10 продается и у Контура, и еще у кого-то. Но, как я понял, там тот же самый вендор лок. Вот так умерла прекрасная мечта про сигму. Далее были рассмотрены варианты. Большая часть отпала сразу, т.к. экран требовался 9-10''. Вот перечень того что рассматривалось. И выбор я вам хочу сказать очень не велик.


Strike был выбраны победителем. Cразу по нескольким причинам. Не залоченное ПО, ставь что хочешь. Цена. Это наверное самое главное. ЦЕНА.

MSPOS Т-Ф отпал из-за требования подписать NDA на драйвер для ККТ. Мое мнение на этот счет простое, продаете свое оборудование, будьте добры, предоставить максимально открытую и понятную документацию. И судя по всему, все такие фирмы, которые представлены на рынке РФ с ККМ, которые могут работать с ФЗ-54 используют драйвер от двух компаний либо Штрих-М, либо Атол. Конкретно про эти аппараты(MsPOS), у меня сложилось стойкое впечатление, что они используют драйвер от Штрих-М. Хотя утверждать наверняка не буду. Может кто в комментариях расскажет про них больше.

Pipo x10 не понравилась тем, что порты USB выведены без какой либо защиты. И пришлось бы городить некую защиту.

Атол Optima — оказался очень дорогим.

NoName планшет — Отказались по причине того что в Strike все было, и городить огород из OTG, USB HUBа, и все это сдобренное танцами с питанием планшета, у которого только один microUSB по которому либо зарядка либо OTG.

Из-за пункта 4 (возможность доработки ПО силами заказчика) выбор пал на 1С платформу(Ну а куда же без нее). Честно признаться: я не люблю 1С, я всеми силами стараюсь от нее уйти. Но практика такова, что 1С на текущий момент в РФ остается наверное лучшей платформой для реализации задуманного. И так как точек много, а размеры таких точек невелики(от 4 до 20 квадратов), Будем стараться сэкономить на лицензиях. Под это у нас попадает 1С: Мобильная Платформа. Тут все просто:

  • Пишем решение для google.play -платим 10% с суммы свыше 60 001
  • Пишем заказное решение — Платим за каждое приложение

В нашем случае мы не стали писать все с нуля, а выбрали тиражное решение — «1С: Мобильная касса». На момент публикации, цена решения — 1800 руб на точку. Она уже включает в себя маркировку и прочие требования законов. Ну и кучу нужных возможностей. Туда же нужно отнести и поддержку торгового оборудования оборудования.

Сеть


Тут все просто. Везде стоят MIKROTIK. Маска сети /24. Точки подключаются по l2tp на сервер. Соответственно проблем с тем, чтобы достучаться до конкретной точки у нас нет. Разве что канал полностью упал. Каналы используются везде что придется: Wifi, Шнурок, 3G, магистральные VPN с выделенными VLAN. Точки видят только сервер и свою сеть.

Весы


Были рассмотрены варианты и проводных и беспроводных весов. Вот список:

  • Атол Марта
  • CAS ER-JR-30CB
  • Масса-К МК-32.2-А21(RUW)

Тут надо уточнить одну тонкость. Весы искались с возможностью записать цену по протоколу обмена, и соответственно вывести сразу сумму на дисплей весов. Я уверен что не все перерыл, но из перечисленных я просмотрел все протоколы. И ни один не поддерживает передачу цены на весы. Единственные, кто вроде так умеет это Штрих, через эмуляцию кнопок. Но времени было мало, и писать еще и драйвер под Штрих на андроид не хотелось, тем более в протоколе такая возможность описана туманно. Там были указаны какие конкретно кнопки поддерживаются (соответствие HEX кодов, аппаратным кнопкам). И вот среди них не было указано, что можно нажимать программно цифровые клавиши.

В итоге мы остановились на Масса-К. Из своего опыта могу сказать, они у меня стоят без зарядки 2 дня. Интенсивность взвешивания конечно не большая, но аккумулятор я оценил. При этом связь по WiFi не пропадает.

Сканер ШК


Сканер нужен был с подставкой. Взяли на тесты несколько моделей. Расписывать все не буду. Скажу только, что победил DBS HC-3208S. И самое главное он смог обойти на тестах именитую Zebra DS 4308. DataLogic Quick Scan QD2430 — был самым идеальным вариантом, но он существенно дороже.

Дисплей покупателя


Из-за того, что на весы не смогли вывести сумму позиции, нам пришлось придумывать вариант с дисплеем покупателя. Тут что нравится, то и можно брать. Они не прихотливы, работают десятилетиями. Подключение стандартное по USB. Те что мы тестировали все были на микросхеме PL2303. По этому проблем с подключение к Андроид у нас не возникло. Ну кроме того, что надо было написать свой драйвер для 1С.

UPD

ККМ


На точках установлены Атол 92Ф, Атол 30Ф, Атол 27Ф. 92Ф — это ньюджер. Его перевели в режим ФР. 92 и 30 подключены по USB. На старых прошивках идет медленная печать. На новом формате 5.0, мы пока не смогли завести 92-ой в режиме ФР. 30Ф пока дожидается своей очереди. Атол 27Ф работает прекрасно, но есть нюанс. В определенный момент, резко начинает терять связь, по чьей вине, пока не определили. Драйвера обновили. Улучшений нет. Может работать без нареканий и 4 часа, потом резко в логах идет частый обрыв соединения и чек все таки выходит, но в течении 30 сек — 1.5 минут. Выгрузка 1С из памяти Андроид — лечит проблему. По мере накопления информации выложу сюда дополнительные подробности.

Что касается оборудования и сети, На этом все. В комментариях оставляйте свои вопросы. Вторая часть будет полностью посвящена теме поддержки большого парка POS терминалов и разработке обменов, и всего что с этим связано. Для тех кто любит картинки, несколько скриншотов с переделанным интерфейсом Мобильной кассы.

Пара картинок с интерфейсом
image

image

image

image

image

image

image