Мобильное приложение для склада с функцией голосового ввода

05.03.18

Учетные задачи - Логистика, склад и ТМЦ

Несложное приложение под Андроид предназначенное для выполнения операций по наборке и приемке товаров на складе, а также выполнения других складских операций. Мобильная часть решения написана под терминалы сбора данных на Android. Транспорт данных - POST - запрос на HTTP сервис. Серверная часть - сервис на базе 1С сервера.

Скачать файлы

Наименование Файл Версия Размер
Мобильное приложение для склада с функцией голосового ввода:
.rar 7,92Mb
9
.rar 7,92Mb 9 Скачать

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

При разработке приложения решались сразу несколько задач, а именно:

- Обеспечить обработку наборки товара по документам перемещений;

- Обеспечить обработку оприходования товара из приходных накладных;

- Обеспечить инвентаризацию штрихкодов товаров (в .т.ч. создание новых);

- Обеспечить работу в онлайн режиме связи с 1с, посредством локальной сети, через wi-fi;

- Обеспечить дешевизну решения.

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

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

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

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

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

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

Конфа 1С для формирования выходных и обработки входных структур прилагается. 

Реализованный функционал:

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

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

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

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

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

6. Сканирование штрихкода с использованием аппаратного лазерного сканера устройства. Как это работает - описал в другой статье: //infostart.ru/public/623232/

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

8. Возможность голосового ввода значений на русском языке (как цифр, так и фильтров поиска объектов по базе 1с). Есть один забавный момент. Например, чтобы Андроид интерпретировал слово как цифру "1", надо говорить не "один", а "раз". В остальном-же все распознает четко. Там есть куча настроек по распознаванию (уровень подавляемого шума, задержки всякие и т.д.). Я выведу их в настройки потом. 

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

10. Возможность адаптации несложного функционала на стороне сервера 1С под свои потребности.

11. Возможность добавлять, изменять, удалять номенклатуру; изменять единицы, серии, характеристики и качество номенклатуры, полученной из документа (поиск производится по фильтру, к наименованию - вводится с виртуальной клавиатуры или голосом. Вид сравнения "СОДЕРЖИТ", впрочем, тоже может быть изменен на стороне 1с. Кроме того, можно добавлять к фильтру кодовую фразу с меткой вида сравнения, например "Фильтр Равен ...." или "Фильтр не равен....", а на стороне 1с это все обрабатывать. Еще раз повторяю, что Андроид речь распознает очень четко.)

12. Исходники приложения на C# (Xamarin), PCL-проект (этот вид проекта позволяет махом его расширить на использование под IOS и Windows - такая вот магия).

Исходники не выкладываю. Т.к. здесь вряд-ли кто-то будет их качать, а размер большой. По запросу - могу скинуть.

Ссылка на исходники: https://github.com/KotVezdehod/ScanBee

Там-же, в проекте, есть и сборка. Так-же называется "СБОРКА.rar". В ней то-же самое, что и здесь, в прикрепленных файлах.

P.S.

Это версия не "из коробки". Предполагается, что в конфе есть реализация сервиса по обмену данными с устройством и при мер реализации алгоритма разбора получаемых данных и подготовки отправляемых данных, а также необходимые универсальные метаданные, наличие которых обусловлено обменным механизмом.
Итого там есть:
1. Общий модуль "ПодготовкаДанныхДляТСД"
2. HTTP-Сервис "Warehouse_1_0"
3. Перечисление "ФункциональноеНазначениеУстройства"
4. РС "ТоварКОбработкеВТСД" (хранятся данные о состоянии наборки документов)
5. РС "ФункциональнаяПривязкаУстройств" (данные о функции, для которой будет использоваться конкретное устройство)

Изменения на 02.02.2018.

1.Добавлено сжатие потока данных при обмене между 1с и мобильным приложением.

Это позволяет примерно в 1,5-2 раза сократить объем передаваемых данных и время передачи.

1.1. Реализация на стороне мобильного приложения. Передаваемая структура json конвертируется в массив байтов, который затем преобразуется в поток и сжимается посредством класса DeflateStream (пространство имен: System.IO.Compression; сборка в NuGet "Microsoft.Bcl.Build" (бета-версия, но за исключением некоторых странностей поведения, свою функцию выполняет)), затем сжатый поток сохраняется в массив байтов и преобразуется в строку BASE64, которая и передается на сторону 1с. Прием - в обратном порядке.

1.2. Реализация на стороне 1с (очень весело). 1с так и не сделала класс для сжатия и извлечения потоков данных, хотя и есть объекты и методы для работы с двоичными данными, чтения zip-архивов и сжатия данных, помещаемых в хранилище значений. Но вот чтобы все вместе, т.е. работа с потоком сжатых данных - нет. Это проблема. Пришлось воспользоваться методами из публикации //infostart.ru/public/618906/ В общем, все работает.

2.Добавлена подсветка строк в таблице товаров документа, по которым набранное количество отличается от количества к наборке.

2.1. Реализация на стороне мобильного приложения. Используется  интерфейс "IValueConverter".

3.Добавлена подсветка строк в таблице товаров документа, по задаваемой строковой метке.

Например, в документе 50 позиций к наборке. Товар разложен по типу (краска, гвозди, молотки и т.д.). Штрихкодов, чтобы их ловко отсканировать - нет.  Посредством новой фичи, оператор может введя строку поиска подсветить в списке товары определенного вида. 

3.1. Реализация на стороне мобильного приложения. Используется  интерфейс "IValueConverter".

Изменения на 05.03.2018.

1. Реализовано чтение настроек через сканирование штрихкода, созданного на стороне 1с.

Чтобы не забивать настройки в ТСД (т.к. это утомительно делать на нескольких устройствах) на стороне 1с в регистре сведений "Настройки ТСД" создаются записи с настройками для каждого устройства. При нажатии в форме записи регистра кнопки "показать штрихкод" на экране отображается QR-код с сжатыми алгоритмом Deflate и завернутыми в BASE64 настройками. На стороне ТСД они могут быть прочитаны камерой и применены к устройству. Все это делается за 10-15 секунд.

ТСД Терминал сбора данных мобильное приложение склад наборка товара штрихкоды инвентаризация

См. также

SALE! 20%

Автоматический заказ поставщику в 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 22800 руб.

21.04.2017    90185    105    39    

191

Модуль "Ответственное хранение" или фулфилмент (FBS / FBO) для 1С:УТ 11.5, КА 2.5, ERP 2.5

Логистика, склад и ТМЦ Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Модуль "Ответственное хранение" для 1С (УТ 11.5, КА 2.5, ERP 2.5) позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

60000 руб.

09.06.2020    34317    27    57    

54

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

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

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 9504 руб.

29.10.2014    210185    620    524    

439

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

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

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

2880 руб.

03.12.2018    54621    137    102    

161

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

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

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150727    367    375    

501

AS WMS: автоматизация склада с адресным хранением с помощью ТСД

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления адресным складом. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    3232    13    0    

8
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Tahallus 431 08.08.17 11:25 Сейчас в теме
Проще исходники выложить на github
user931544; jaroslav.h; +2 Ответить
2. Prometeus2011 210 08.08.17 12:24 Сейчас в теме
Да, сделаю - ссылку сюда кину.
starik-2005; jaroslav.h; +2 Ответить
3. jobkostya1c_ERP 100 09.08.17 06:34 Сейчас в теме
Хорошая идея приложения для склада с голосовым поиском.
4. Prometeus2011 210 09.08.17 09:41 Сейчас в теме
(3), Видели бы вы изумление на лице коммерческого...
5. jaroslav.h 180 09.08.17 10:14 Сейчас в теме
(4)двумя руками за исходники
6. WellMaster 104 09.08.17 12:18 Сейчас в теме
Аналогично делал Акселот в своей 1с:WMS Управление складом. Я про то, что на ТСД мобильное приложение отрисовывает то, что ей "сообщит" сервер 1с.

А можно по-подробней про практическое применение голосового управления?
8. Prometeus2011 210 09.08.17 13:50 Сейчас в теме
(6), Нет, приложение отрисовывает, то что зашито в коде и сказано ему отрисовать в настройках на стороне ТСД. Не так круто. Просто, например, поиск объектов ведется не на устройстве, по полным справочникам, которые туда надо загнать предварительно, а на стороне сервера. На сервер передается конкретный запрос.

Распознавание речи можно применять при вводе фильтров поиска объектов. Например, хочет кладовщик добавить в документ новую позицию, "Насос центробеж. НПЦ 400/30 "Калибр"", ему надо ввести фильтр поиска на стороне ТСД. Можно в окошечко вбивать "насос", а можно нажать большую кнопку и сказать "насос" или "калибр". Все быстрее. Цифры тоже можно голосом вводить.
7. WellMaster 104 09.08.17 12:24 Сейчас в теме
Еще ничего не сказано про минимальную версию платформы 8.3.10
9. Prometeus2011 210 09.08.17 13:54 Сейчас в теме
Не, версия платформы - любая, главное чтобы функционал http- запросов был.
14. WellMaster 104 09.08.17 20:46 Сейчас в теме
(9) Попробовал открыть конфу платформой 8.3.9, ругнулось, что нужна 8.3.10.
15. Prometeus2011 210 09.08.17 21:09 Сейчас в теме
(14). Да, совместимость конфигурации была отключена по-умолчанию. Поставил 8.3.8. Перезалил.
Как тут сделать скачку бесплатной?
18. sasha777666 321 11.08.17 17:40 Сейчас в теме
(15) никак, инфостарт не разрешает :(
10. DitriX 2091 09.08.17 16:27 Сейчас в теме
Дык, в мобильной 1С такое юзается уже года два. По фикту - кроме эффекта "вау" ничего не дает. Так как на шумном складе, с ветром, с криками и т.д. - очень плохо идет распознание. А каждый раз подносить к лицу и кричать - бред.
Так что используется только отделом брака, где надо надиктовать причину, по которой некая модель была посчитана браком.
11. Prometeus2011 210 09.08.17 16:35 Сейчас в теме
(10), В мобильной платформе 1с есть распознавание речи?
12. DitriX 2091 09.08.17 19:32 Сейчас в теме
(11) а чего бы и нет? Это стандартный функционал андроида :) Там много чего есть, резка фото, маршруты и куча разных других приколов. Но для этого надо знать - что такое андроид и как он работает. Добавить в 1С ввод голосом - 3 строки кода :)
13. Prometeus2011 210 09.08.17 20:43 Сейчас в теме
(12), Ниче себе! А что за метод или объект платформы??? На Шарпе настроек-то специфичных только строк на 9! На форумах все шлют ко внешним компонентам. Ну, а внешняя компонента - геморрой больший, чем сборка чисто на C#. Собственно, из-за недостатков в реализации взаимодействия с аппаратной частью и многими функциями оси, выбрал другую среду разработки. Если на 1с реализовать перехват адресного системного Intent'a проще - значит 1сники сильно вперед продвинулись.
16. DitriX 2091 09.08.17 22:22 Сейчас в теме
(13)
	
        НовВз = Новый ЗапускПриложенияМобильногоУстройства("android.speech.action.RECOGNIZE_SPEECH");
	
	Если НовВз.Запустить(Истина) = 0 Тогда
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не поддерживается на вашем устройстве.");
	Иначе
		Объект.Комментарий = НовВз.ДополнительныеДанные.Получить("query").Значение;
	КонецЕсли;
Показать


Это если грубо говоря.
akR00b; Alien_job; Danil.Potapov; obemgyorik; +4 Ответить
17. Prometeus2011 210 10.08.17 09:36 Сейчас в теме
(16). Спасибо. В принципе, то-же самое.

 
var voiceIntent = new Intent(RecognizerIntent.ActionRecognizeSpeech);
StartActivityForResult(voiceIntent, Globals.VOICE);

Только классы констант с нужными строками из СДК есть.
Но, откровенно говоря, там еще процедуру для перехвата результата активити надо реализовывать. На 1с - проще, конечно.
19. WellMaster 104 14.08.17 21:08 Сейчас в теме
Запустил на 8.3.10
В конфе почти ничего нет.
Что с ней делать - не ясно.
Зря потраченное время
20. Prometeus2011 210 15.08.17 09:51 Сейчас в теме
(19)1. Это версия не "из коробки". Предполагается, что в конфе есть реализация сервиса по обмену данными с устройством и при мер реализации алгоритма разбора получаемых данных и подготовки отправляемых данных, а также необходимые универсальные метаданные, наличие которых обусловлено обменным механизмом.
Итого там есть:
1. Общий модуль "ПодготовкаДанныхДляТСД"
2. HTTP-Сервис "Warehouse_1_0"
3. Перечисление "ФункциональноеНазначениеУстройства"
4. РС "ТоварКОбработкеВТСД" (хранятся данные о состоянии наборки документов)
5. РС "ФункциональнаяПривязкаУстройств" (данные о функции, для которой будет использоваться конкретное устройство)

Я мог-бы просто выложить описание обменных структур, но это сложно и затратно по времени, как для меня, так и для читающего. По-этому проще выложить функционал.
Если-бы решение было адаптировано ко всем конфигурациям, то я-бы запросил за решение денег. А за бесплатно, я гарантирую, что решение рабочее, но на внедрение и отладку - надо потратить время.
21. alexander-lubich 26 17.01.19 12:53 Сейчас в теме
Вопрос автору: https://github.com/KotVezdehod/ScanBee это серверная часть?

проект из которого был собран файл apk Вы не открываете?
Оставьте свое сообщение