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

26.01.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

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

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

8970 руб.

15.12.2015    170038    936    364    

399

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 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    95361    126    40    

213

SALE! 10%

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

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

50722 45650 руб.

24.04.2015    194117    148    242    

279

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    231063    1046    896    

991

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

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

2880 руб.

03.12.2018    58545    192    103    

172

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Бухгалтер Пользователь Оперативный учет Управляемые формы 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

14400 руб.

13.03.2018    59441    201    76    

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