Мобильное приложение для контрольно-пропускного пункта + схема работы КПП

26.01.18

Учетные задачи - Оптовая торговля

Решение позволяет на посту выезда из оптовой базы (магазина) контролировать идентичность данных товарного чека (накладной) и данных соответствующей накладной в ИБ организации. Для исключения подделок чеков и контроля ассортимента и количества вывозимого товара. Мобильная часть решения написана под терминалы сбора данных на Android. Транспорт данных - POST - запрос на HTTP сервис. Серверная часть - сервис на базе 1с сервера.

Скачать исходный код

Наименование Файл Версия Размер
Мобильное приложение для контрольно-пропускного пункта
.apk 23,60Mb
0
.apk 1.0 23,60Mb Скачать
Конфигурация ИБ 1с - серверная часть решения для КПП.
.rar 48,53Kb
2
.rar 48,53Kb 2 Скачать
Исходники мобильного приложения для КПП
.rar 91,55Mb
2
.rar 91,55Mb 2 Скачать

1. Цели и задачи внедрения решения

Есть некая оптово-розничная компания, имеющая около 20 универсальных торговых баз, занимающих значительные площади и включающих в себя до 10 открытых и крытых товарных складов на каждой из баз. ИТ оснащение складов отсутствует по разным причинам: сложности и дороговизны организации соответствующей ИТ-инфраструктуры (оборудование, которое может работать круглый год в сложных физических условиях на открытом уличном складе цемента или пиломатериала стоит дорого), специфичный контингент работающего персонала, ограниченный штат ИТ отдела. Вот в этой организации, с недавних пор стали выявляться случаи подделки товарных документов и вывоза с территории базы ТМЦ на суммы значительно большие (на несколько порядков), чем отраженные в учетной системе. Возникла потребность разработки решения, позволяющего сотрудникам службы безопасности оперативно сравнивать состав, количество товара в выезжающей машине с составом накладной в информационной базе, суммы в бумажной накладной с суммой накладной в ИБ и получать данные о времени проведения накладной в ИБ. Было рассмотрено множество вариантов (от микрокиоска до монитора за стеклом на кпп и выведенным наружу скнером штрихкода). Самым рациональным показалось решение выдать охранникам ТСД с оперативным доступом к информационной базе. Пробовали и RDP соединение с сервером поднимать на терминале, но для дедушки охранника, бывшего милиционера запустить RDP клиент на ТСД это челендж + потери соединения + работа с 1с интерфейсом на маленьком окне без мыши походить на кошмарный сон: хочешь бежать, а тебя будто кто-то держит за ногу сзади. Опять-же были приглашены видные оутсорсеры от 1с (Р...ус, например ), которые предлагали решения на суммы от 40 т.р. за терминал с вялыми ТТХ, что на мой взгляд дороговато. Особенно, с учетом того, что в Китае устройство с ТТХ превышающими предлагаемые в 2 раза стоят от 16 т.р. Руководство дало установку сэкономить, и обещало премию за внедрение более дешевого варианта. Ничто так не стимулирует, как премия. Ознакомился я с существующими платформами разработки и выбрал Xamarin по причине ее универсальности, гибкости и наличия множества сторонних библиотек для работы с оборудованием устройств, а также возможности разработки универсальных(!) решений под Андроид, iOs и Windows. Да и вообще, инетересный очень опыт. Может пригодиться в жизни. 1с mobile меня насторожил по причине слабой поддержки оборудования, с перехватом броадкаста проблемы... Все это пока напоминает фирменную игрушку от 1с. Короче не рискнул... и поступил не патриотично. Использование Xamarin + Visual Studio 2015 - отдельная трагедия в нескольких томах, но в общем, ничего неразрешимого я не встретил. И самое главное - все, что задумал, средства среды позволили реализовать, хотя и с трудозатратами раза в 3 большими, чем в 1с.

2. Аппаратная часть часть решения

Для работы решения подходит, в принципе, любое устройство на Андроиде, будь то планшет, терминал сбора данных или даже телефон. Основные требования: 1. Наличие любого подключения к сети (локальной или интернет), 2. Наличие камеры с разрешением, достаточным для распознавания штрихкода и (или) наличие лазерного считывателя штрихкодов (1D или 2D). Уровень защищенности от внешней среды следует учесть при выборе устройства под конкретные условия эксплуатации и персонал. Стоимость таких устройств начинается от 16 т.р. Приобретали 2 модели китайских устройств разных производителей. Обе проблем при установки софта, работе лазерного сканера и емкости аккумулятора, а также по надежности работы не вызвали. Срок эксплуатации уже ок. 2 мес. Требования по серверной части: любой сервер, способный тянуть базу 1с + апач.

3. Программная часть решения

Решение состояит из приложения под ОС Андроид, версии не ниже 4.1 и HTTP-сервера, обрабатывающего запросы от мобильного приложения. В принципе, на стороне сервера может быть не обязательно 1с-сервер, но и простенький сервис на php + СУБД на mySQL. 

Мобильное приложение осуществляет сканирование штрихкода, подготавливает соотвесттвующую json структуру и передает ее на сервер. Сервер производит  весь анализ данных и передает обратно JSON-структуру такого-же класса, с подготовленной аналитической информацией. В связи с тем, что кодинг в 1с в разы проще, чем на Xamarin, такой подход позволяет быстро изменять логику работы решения и даже отображаемые пользователю мобильного приложения сообщения. Формат обменной JSON-структуры такой: 

   

public class OutputScanData
    {
        public string Barcode;
        public string Purpose = "";
    }

В коде 1с она десериализуется в структуру: 

сткВх = новый Структура("Barcode, Purpose")

Мобильное приложение от сервера обратно получает данные в следующей структуре (JSON):

public class InputInfo
    {
        public string DocumentDate;
        public string DocumentTime;
        public string DocumentNumber;
        public string DocumentSum;
        public string BarcodeStatus;
        public string Description;
        public string Barcode;
        public List<Goods> Goods;
    }
public class Goods
    {
        public string Name { get; set; }
        public string Sum { get; set; }
        public string Amount { get; set; }
    }

Или в коде 1с: 

сткВых = новый структура("DocumentDate,DocumentTime,DocumentNumber,DocumentSum,BarcodeStatus,Description,Goods, Barcode"
"","","","","","",новый массив,"");

сткВых.Goods.Добавить(новый структура("Name,Sum,Amount","","",""));

После получения данных с сервера, мобильное приложение отражает их на главной странице. При сканировании следующего штрихкода, либо при нажатии кнопки "Закрыть чек" на сервер передаются инструкция по закрытию чека. Формат структуры такой-же, как при передаче штрихкода, изменяется только значение члена "Purpose".

Вот так в двух словах работает решение.

Возможности мобильного приложения:

1. Сканирование штрихкода с использованием камеры (используется библиотека zxing)

2. Сканирование штрихкода с использованием аппаратного лазерного сканера устройства. Механизм: любой аппаратный сканер штрихкода, работающий на самых массовых ТСД под управлением ОС Андроид, генерирует системное броадкаст сообщение. Его получают все подписавшиеся на сообщение приложения. Сообщение идентифицируется именем фильтра броадкаста ("Action" - в терминологии SDK Андроида) и именем параметра броадкаст-сообщения ("Extras" - в терминологии SDK Андроида). В общем, китайцы, хоть и соседи, хоть и обещали SDK к проданному устройству, но то-ли восток - очень тонкое дело, то-ли английский у них очень ломаный был и друг друга мы не поняли, но SDK они нам не прислали. Пришлось вооружиться Андроидным отладчиком (LogKat) и задампить все системные сообщения ОС в течении 3х секунд после срабатывания лазера на ТСД. Текстовый поиск по полученному дампу строки со словом <intent> дал результат вроде ...... Intent<scan.rcv.enter>...... Снарядив перехватчик с таким фильтром, но уже в отладчике Xamarin, я перехватил броадкаст и уже там расколупал структуру данных и нашел имя переменной со штрихкодом: "codestr". 

В общем, вот таких небольших проблемок было достаточно, конечно. Но решить их удалось почти все.

3. Автофокус сканера (при сканировании камерой) с изменением частоты цикла автофокуса.

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

5. Все настройки имеют подобранные эмпирически оптимальные значения "по умолчанию".

6. Подсветка при сканировании камерой в темное время суток (включается автоматически при начале сканирования).

7. Пароль супервизора на изменение настроек приложения (уж очень руки неспокойные у охранников).

8. Отображение аналитической информации по накладной (длительность жизни, погашенность, большая сумма и т.д.)

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

10. И да, есть автообновление. Но я его отключил. Вообще в Андроиде автообновление - вещь хитрая. Его можно реализовать двумя способами. Через GooglePlay, который проверяется на наличие обновлений всего установленного софта штатным сервисом ОС и, при наличии обновлений, тихо их ставит. Но вот не хочу я приложение класть в GooglePlay по причине его узкоспециализированного использования. Второй способ реализуется через скачивание файла установочного пакета и запуск намерения ("Intent" - в терминологии SDK Андроид) на установку приложения. Вот все-бы хорошо, но есть 2 проблемы: 1. Устанавливать приложения "тихо" Андроид разрешает только с рут-правами, которые надо получить разными сторонними тулзами, иначе вылезает запрос на разрешение установки. Но это мелочь. Раз в месяц пользователь может и нажать Install. 2. А вот сохранение скачанного файла в ОС Андроид - это проблема. Система дает сохранить файл только на внешний накопитель, т.е. флэшку. На встроенную память ось сохранять произвольное файло не дает. Бился я долго над этой задачей, ибо оснащать каждый ТСД еще и флэшкой - не вариант. Этот вопрос задает много народу - от индийска до американска программиста, но рабочего решения чего-то никто не предложил. Ну, подумав, решил, что допиливать я софтину буду редко и отложил пока вопрос. Хотя весь код в исходниках есть.

11. Возможность работы с произвольным HTTP сервисом и унифицированность формата передаваемых данных.

Для запуска решения в архивах в эксплуатацию требуется следующее программное оснащение:

- ОС андроид

- http-сервер (Апач или IIS).

- 1с

 

ТСД Терминал сбора данных android Xamarin C# Охрана Безопасность КПП Контрольно-пропускной пункт оптовая база торговля подделка чеков.

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    90885    108    40    

197

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166384    702    362    

389

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

2880 руб.

03.12.2018    55018    139    102    

162

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110638    34    114    

178

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки

Обмен между базами 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос в продаже с 2015г., и мы постоянно работаем над его развитием. Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    190707    270    239    

269

Обмен с системой Меркурий через Web + Ветис.API для любых конфигураций (универсальная конфигурация Хамелеон Меркурий)

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Конфигурации 1cv8 Сельское хозяйство и рыболовство Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Пищевая промышленность Россия Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная конфигурация Хамелеон Меркурий для взаимодействия с системой Меркурий(тестовый+рабочий+демо контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Основное отличие от других решений - работа через веб-интерфейс и API 2.0(API 2.1). Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом Меркурий, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе Меркурий и наоборот.

104000 руб.

08.11.2017    121067    295    140    

394
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 19.05.17 15:21 Сейчас в теме
"работа с 1с интерфейсом на маленьком окне без мыши походить на кошмарный сон:"
- я б таких разработчиков убивал на месте, которые на экран ТСД тянут штатный интерфейс 1Ски. для ТСд для продуктивной работы (допустим что работаем напрямую через РДП) пишутся специальные нормальные фейсы, которые даже на экране 240x320 позволяют отобразить все что надо и еще место остается.
+
2. Prometeus2011 211 19.05.17 15:48 Сейчас в теме
(1), Само собой форму написали свою. Использовать штатный интерфейс на ТСД - это даже для злой шутки слишком. Там не в отображении формы проблема, а в реакции интерфейса, разрывах соединения с сервером и философии работы с десктопным интерфейсом.
+
3. CheBurator 3119 19.05.17 16:24 Сейчас в теме
разрывы соединения с сервером - это сугубо техническая задача. для торговой площадки/складов стройматериалов (если один хозяин) развести сеть на пункты пропуска - да, конечно денег стоит, но если смотреть трезво - почти копейки. а обеспечить устойчивым вайфаем от пункта пропуска в радиусе 50-70 метров - не проблема. и все можно сделать чисто на 1Ске. без всяких мобильных платформ. но сделали как у вас описано и работает - то и ок.
гораздо интереснеее
1. каков непрограммстский результат за 2 месяца эксплуатации.
2. годика через полтора - сообщите, плиз, сколько "сматрфонов" поменяете из-за выхода из строя.
+
4. Prometeus2011 211 20.05.17 09:21 Сейчас в теме
(3), Да, ок, если не забуду. Охранники говорят, что Андроид, субъективно, поприятней. Ночами они на ТСД в Энгри Бердс играют:). Насчет надежности - самому интересно. Буду еще наборку и приемку автоматизировать. Тут еще возникает вопрос нагрузки на сервер терминалов. Каждый склад - человека 4 пользователя ТСД. Примерно 100-200 мб оперативки надо на каждого на терминале. Если масштабы скромные - об этом не думаешь, но вот когда автоматизируешь предприятие от 150 пользюков, то проблемы уже возникают иные совсем, чем когда пишешь прикольную игрушку для скучающего владельца магазинчика за углом. Начиная от организации предельно коротких транзакций в функционале и заканчивая размышлениями о распределении нагрузки на железо. Если решать вопросы "в лоб", то становится дорого все сильно.
+
5. CheBurator 3119 20.05.17 14:35 Сейчас в теме
Ну тут уже не сугубо технические вопросы, а вопросы бюджета и организации автоматизации всего объекта с распределенными площадками. Надо прорабатывать уже на нормальном уровне
+
6. Tahallus 439 10.08.17 14:43 Сейчас в теме
Данный проект не собираетесь выкладывать на github ?
+
7. Prometeus2011 211 10.08.17 14:45 Сейчас в теме
(6), Уже. Ссылка в теме.
+
8. Prometeus2011 211 10.08.17 14:46 Сейчас в теме
(6), Буду признателен за конструктивные замечания по проекту. На шарпе я профессионально не разрабатываю.
+
9. Prometeus2011 211 10.08.17 14:46 Сейчас в теме
10. Tahallus 439 10.08.17 15:35 Сейчас в теме
т.е. это приложение и https://infostart.ru/public/659281/ это одно и тоже получается ?
+
11. Prometeus2011 211 10.08.17 18:24 Сейчас в теме
(10), А, извиняюсь, заголовок темы не прочитал. Тут, в принципе, все классы те-же. Формы только другие. Будет время - выложу.
+
Оставьте свое сообщение