Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)
Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.
(1) Добавил отдельно apk. На Oreo не тестил, но оно написано с target API level 26 поэтому работать должно. Не может же там не быть обратной совместимости! Может не скачивается по причине региона? Сейчас проверю в маркете
(6) Для распознавания нужно чтобы было google play services - если этого нет (т.е. нет на устройстве google play) то оно при нажатии на кнопку просто не запустится, но все остальное будет работать. А какой там андроид? я могу apk-шку попробовать сделать если версия не слишком старая
(8) На 4.2.2 не будет модных кнопок внизу BottomNavigationView... так как они появились начиная с Lolipop... В принципе можно выпустить версию для старых устройств заменив те кнопки обычными Button... Если у меня получиться я напишу.
(9) Спасибо :) Есть 10 магазинов, там работают эти "старые" ТСД, но работают через "прокладку" - стороннее приложение. Давно есть мысль 1С на них запустить...
(10) Я выложил еще один apk под 4.2. Сразу скажу что тестил на эмуляторе и не уверен в том что глюков нет. Судя по тем проблемам которые вылезали в процессе переделки, вылезти может в неожиданных местах. На эмуляторе работает.
ОФИГЕТЬ!
Автор молодец.
Вопрос :
"В справочнике Экраны задаются визуальные элементы"
А как Вы сделали эти элементы ? Не могу пока посмотреть в демо-базе, т.к. требует 8.3.12
(11) Спасибо! Как сделал на Андроиде или в 1С? В связке это работает так: допустим вам надо на экране ввода количества товара разместить надпись "введите количество", еще написать по какому товару (который был отсканирован) и поле ввода типа Число. Для этого вы заводите новый элемент справочника Экраны, добавляете в таб. часть 3 строчки: "Надпись" с переменной в которой хранится название товара, тест "Введите количество" и "Ввод числа". На андроиде когда этот экран будет показываться он на экране покажет эти 3 элемента, заполнит надпись с товаром значением переменной, и будет ждать когда Вы введете число, после этого сработает обработчик вввода и переключится экран(либо не переключится если ему запретить). Как то так.
(12)
Это понятно. Непонятно, откуда взялись сами картинки экрана. Их же как то надо было сделать и передать на андроид. Или это все уже есть в Simple WMS Client ? Но в инструкции это все нарисовано в 1с. Как рисовали ? Как передавали ?
(31) Сами картинки рисует приложение на андроид. Ему из 1С приходит XML и там допустим написано "элемент экрана надпись" и оно показывает надпись. 1С нужна только для того чтобы этот XML сформировать, ну и обработчики конечно же. Или вопрос в том как я это в java реализовал?
Очень достойная работа. Есть вопросы:
1. На экране можно выводить информацию, например, сколько уже было введено количества? Типа "Было: 200 шт., будет: 201 шт." ?
2. Приложение связано со сканером ТСД? Или сканирование через камеру?
3. Если оборвется связь с веб-сервисом, данные сохранятся или нет на ТСД? Актуально для инвентаризаций.
(13) Спасибо. 1. Да конечно, на экран можно вывести любую переменную, которую Вы сами и определяете. В скриншоте по ОС "Отсканировано 1 из 2 строк" - это примерно аналогичный случай, по количеству также можно сделать. Плюс таблица "План-факт" 2.И так и так - там 2 режима. 3. На ТСД вообще нет данных - это тонкий клиент, все данные хранятся на стороне сервера. Примерно то же самое что ТСД через RDP.
(17) Это код справочника "Мобильные клиенты". Заводите в базе клиента(устройство), назначаете ему конфигурацию, при сохранении ему присваивается код - число, прописываете его в приложении, перезапускаете, он скачивает конфигурацию клиента. В инструкции более подробно написано.
На ТСД передать картинку можно?
Суть проблемы: кладовщик собирает заказ для клиента, ему нужно взять с полки "шампунь для жирных котов с провитамином и хренитином". Перед ним на полке 28 пузырьков с разными шампунями. Я хочу, чтобы кладовщик, нажав у себя на экране на кнопку "картинка", получил от сервера картинку с шампунем. Такой функционал можно будет реализовать?
(19) Теоретически да, можно. Сейчас этого нет. С этой задачей обычно справляются с помощью адресного хранения. Я не думаю что картинка сильно поможет, но сделать можно.
(20) Адресное хранение поможет, когда лежит 28 упаковок шампуней, при этом каждая упаковка на своей полке. А когда каждого вида по одному-два пузырька и все 28 видов на одной полке... Специфика интернет-магазина: "как разместить 5 тысяч наименований на 300м2"
Насколько сложно прикрутить картинки?
(21) минимальное "адресное хранение", которое делается примерно также быстро как и данный сабж. и прикрутка правила "не располагать товраы одной учетной группы рядом" ;-)
а так да - если на нормальную систему нет денег, то картинка - выход. у меня на складе на ТСД была картинка, но по статистике ею никто не пользовался. просто потому что потребности такой не возникало.
(21) в адроесном хранении одна из фишек в том - что совершенно по-барабану где хранится шампунь.
28 ПОХОЖИХ (но разных) бутылочек с шампунями следует разложить на 28 РАЗНЫХ ячеек, чтобы в одной ячейке не лежали похожие товары. Храните в одной ячейке разнородные товары: яч1 = "шампунь1, твердое мыло1, щетка для вычесывания1, тапочки для тараканов1", яч2 = "шампунь2, твердое мыло2, щетка для вычесывания2, тапочки для тараканов2". Даже самое простое адресное хранение с грамотной работой "по бумаге" позволяет увеличить скорость сборки ~1.5-2 раза. У себя на ТСД тоже делал просмотр картинки товара - но никто этим не пользовался, за ненадобностью.
(155) Ниче ты запоздал с ответом)) За это время я уже прикрутил картинки и фотографирование и кучу всего. Так как клиент используется не только на складах, но и например в торговых залах в рознице, курьерской доставке, картинки безусловно нужны. А в этом конкретно случае - просто склад маленький и ниче не влезает. Это проблема, да. Ниче с этим не поделаешь.
(149) Если с точки зрения организации процессов - то да конечно, это конструктор же на нем все можно организовать. Если речь о считывании датаматрикс, то zxing (компнента которая отвечает за считывание) эти штрихкоды считывает. Но я сам не пробовал, не было такого проекта. Ну а если вариант развертнывания через RDP то там считываение станартным драйвером т.е. тоже да.
(30) Продаются только в комплекте абонементов ( Нам как раз нужен легкий тонкий клиент, вообще без логики, способный тупо принимать и отдавать введенные данные, сейчас реализуем через веб-сервер, сайт на битриксе и браузер, зашитый в .апк, получается так себе -_-.
Хорошая разработка!
Одна тотальная бяка - надо было названия товаров - еще меньшим шрфитом написать. Потом порадоватьяс за кладовщиков у которых к концу дня глаза на лбу от вглядывания. Что-то технически мешает масштабировать надписи на экране под размер отводимого им поля для вывода надписи?
(41) Ну оно в принципе безразмерное с переносом, если не влезет то сдвинется на вторую строку и т.д. Но спасибо за ценный совет, увеличу шрифт на 2-3 пункта.
(42) на 2-3 пункта - не выход, конечно, можно ориентироватьяс на типа "стандартную" часто используемцю среднюю длину наименования. но увеличение на 2-3 пунтка - в каких-то позициях приведет к невозможности прочитать ЗНАЧИМУЮ информаци по названию товара, которая окажется в "хвосте" надписи, которая не вместилась.
т.е. по большому счету речь идет о автомасштабировании текста на форме. если таковое не возможно, то - имхо - лучше увеличить шрифт до максимально возможного для _средней_ стандартной длины надписи и на всякий слуячай предусмотретькнопку" типа "показать название товара подробно" (типа карточка товара)
(46) сделайте шрифт на экране нормально физического размера для быстрого считывания и прмерно 4-5 часов работы - меньша 14 пунктов на экране 240 на 320 - тяжело воспринимается. и надпись названия товара символов в 50. а некоторые не брезгуют и 100 - не влезет. поэтому и хотелось бы (хотелка конечно) если название короткое - показывается стандартной крупной надписью. а вот если не влазит - тогда уменьшаем (это я думаю весьма проблематично) - тогда проще по отдельной "кнопке" - расшифровку на отдельном "экране"...
(49) на самом деле подгонка размеров надписей в андроиде есть, но она не совместима с разными версиями - где то будет работать, где то нет, а я так не могу - мне надо чтобы у всех все работало. Я думаю добавить html-строки, их как раз в 1С нет, а штука удобная. Шрифт я уже увеличил в apk-ке котрая в публикации, в маркет выложу со следующим релизом. По поводу крупной и мелкой надписей: у меня как раз есть элемент "Надпись описание" - оно занимает нижнюю половину экрана (если нет картинки) и туда можно толкать все что угодно. Надпись 1, Надпись 2 и Надпись 3 (которые с заголовками вверху) - туда можно выводить краткое описание.
Аналогичный подход я пробовал на РДП-варианте. когда экраны - только визуализация. но, получается не очень. часть "логики" приходится впихивать в сами "экраны". в первую очередб это связано с производительностью на быстрйо однтипной работе - тупо раздражает перерисовка экранов, то есть временные лаги перехода от формы к форме.
(44) А у меня нет перехода от формы к форме - на одной активити элементы включаются/выключаются. На 1С я кстати тоже делал также на упр формах - одна форма и включение/выключение элементов экрана . Поэтому быстро. Другие решения я смотрел, используют разные формы, но по моему опыту структура форм однообразна, и рисовать для каждого экрана отдельную форму - смысла нет. Тут можно для проверки сделать цикл из 2х экранов - он мгновенно работает.
(45) при развесистиой структуре диалогов рулить большим количеством визуальных элементов м.б затруднительно 9а элементов реально может быть много) - разные текстовые надписи разных размеров в разных местах экрана, кнопки, тоже например могут быть (хотя это извращение). таблички/списки разных размеров в разных местах экрана и т.д.
я тоже пробовал (РДП+1С) делать все в одной форме на разных слоях - логика управления слоями в заивисмости от разных условий - выходила замуторная. Здесь, конечно, когда вся логика вынесена на сервер и супертонкий клиент только отрисовывает нужные элеменгты - такое возможно ок.
(48) Оно предопределенное: сверху надпись 1, ниже надпись 2, и т.д. , поля ввода 1-2-3, надпись комментария, надпись действия и т.д. Короче все на своих местах
(50) это хорошо. но для достаточно простой логики отображения и соответсвенно чтобы набором простой логики отображения сделать сложную логику взаимодествия с пользователем - как у вас сделано - постоянным обменом с сервером. и тут вопрос - будет ли это успешно протягиваться когда на сервер будут одновременно долбиться 50-100 пользователей (ну это если серьезный склад).
но это лично все мои частные соображения, исключительно на собственном опыте аналогичных работ и +по проектам автоматизации на других складах. Все идет на уровне РДП. проблем с лицензиями как-то не было. Видимо потому что в общей структуре стоимости проекта это не так уж и много ;-) или может по другому клиенты обходили ;-)
(51) Да, RDP - самый быстрый способ. Возможно я на этом же конструкторе сделаю вариант 1С+RDP т.е. пользователь сможет выбирать как ему работать или вообще гибридно и так и так. Ну чтобы не конфигурировать 2 раза.
Какие еще элементы управления поддерживаются?
таблица со списокм чего-либо? +оасшифровка внизу таблицы в текстовом поле подробного "описания" текущей строки таблицы?
как быстро работает типа такого (и есть ли вообще) - в поле ввода набираем артикул. если набрано более Nзнаков - с каждым набранным знаком в таблице показывается текущий набор товаров, подходящих под набранные знаки?
(53) Элементы ввода: ввод числа, строки, штрихкод, голосовой ввод и диалог да/нет. В скором времени еще ввод фоток появится. Вариант автозаполнения не реализован, я думаю он будет тормозить и дело тут не в плиложении, а в 1С. Это ж надо запросы генерить причем с ПОДОБНО... Я конечно могу это сделать на уровне андроида и передать обработчик автозаполнения 1С чтобы на стороне 1С управлять этим и показ там вариантов... вот это вот все... Но боюсь тормоза будут. Не буду пока делать.
..вот то же самое "введите количество" - редко когда приходится вводить количество из 15-20 знаков. Почему не сделать "количество" нормальными буквами чтобы кладовщик не убивал глазки - высотой примерно с сантиметр?
однообразность и универсальность - это хорошо, но почти всегда это в ущерб эффективности и удобства. И получается что для частных "экранов" - нужен свой дизайн.
(54) увеличу. По поводу экранов..Я вот смотрю подобные базы внедренные н-лет назад (всякие топлоги, логитоны и т.д.) и что там было по поводу индивидуальных экранов. Там просто тупо откопированы формы экранов и прописаны свои надписи без изменения шрифта, как то не заморачивались. Честно говоря до Ваших комментов я и не придавал этому такого значения. Я думаю если увеличить то что сейчас мелко, то нормально будет. Но авторесайз я держу в памяти. Дело в том что гугл только несколько месяцев назад выпустила такую штуку и пока она не совместима на все версии, я думаю потом ситуация поменяется.
(58) да, тут я согласен. у меня например есть ТСДшные формы ВМС работающие в размер экрана десктопа (РМ упаковщиков) и они сдизайнерены с размером шрифтов и кнопок и прочего - под экран десктопа - здесь про нормальное автомасштабирование элементов формы (из типа стандартного маленького прототипа) - речи нет (вдобавок функционал этого АРМ туппо на экране ТСД не прокатит - придется вместо одного экрана вязать несколкьо). и такой ТСДшный фейс в размере на экране ТСД - не будет ок. поэтому универсальностью здесь ну никак не получится. но по крайней мере хоелось бы если фейс нарисован на 240-320 - то на 480-640 - чтобы он именно масштабировался, а не растягивался.
все это, конечно, чисто интерфейсные хотелки, которыми должен заморачиваться тот, кто разрабатывает и отвечает только за интерфейсную часть. А таких выделенных спецов - я не встречал. Так что это не первостатейная такая уж задача. Но по поводу масштабирования есть 1-2 публикации на Ис приличные - посмотри у меня в группе "Адресный учет - пошерсти там если интерес будет
Дмитрий добрый день. Очень понравился Ваш проект, даже абонемент купил специально чтобы скачать и попробовать функционал. Пока разбираюсь во всём, но пока столкнулся с одной проблемой, почему то с аппаратным сканером не хочет работать с элементом ШтрихКод
Если на это экране сделать полле вода числа, и передать в ту же переменную (barcode_room) например, то всё отрабатывает ок. Вот сижу думаю на каком уровне проблема. Если есть мысли можете подсказать куда копать.
(61) Спасибо! Аппаратный сканер должен отправлять в разрыв клавиатуры штрих коды с #13 на конце, ну т.е. штрихкод и enter как бы. Поле ввода на таком экране не надо иначе оно будет перехватывать штрих код.
Я пробовал без суффикса аппаратную кнопку Enter нажимать, фокус кудато сдивгается, и при повторном нажатии уходит в начальное меню.
Установил в настройках суффикс \n, теперь добавляется Enter автоматом, и на полях ввода (сроки или числа), происходит переход к следующему экрану, но на элементе ШтрихКод, то же поведение.
(63) Я правильно понимаю, что если вы на экране размещаете поля ввода, сканируете аппаратным сканером, то в поле ввода этот штрих код попадает? И если добавлен /n то происходит переход на новый экран (если в конфигурации стоит галка Переключаться по окончанию ввода). Все верно?
Но если на экране не размещать поле ввода, а разместить только ШтрихКод и отсканировать, то ничего не происходит?
(71) Здравствуйте, Дмитрий!!!!
У меня похожая ситуация. Через камеру сканирует отлично, а вот аппаратка не реагирует ни на какие символы. Использую типовой вариант приемки по Задаче. Можно пожалуйста мне тоже apk-шку для решения?
(160) В настройках сканера суффиксы и префиксы отключены по умолчанию.
Есть возможность штатно передавать вместе со ШК (End charachter) такие символы как: Enter, Tab, \n, \t ... Сейчас стоит Null здесь.
Пробовал:
- в "постфикс" ставить #13
- в "End charachter" ставить Enter, \n
Не проходит. Установил "Блокнот". Сканирую. Появляются только 13 символов без каких либо знаков еще. Что добавить спереди или сзади, чтобы система перехватывала?
(64) Заметил что , если просто дважды нажать Enter то происходить то же самое, первый раз ничего, но фокус смещается на кнопку "Назад", и второй раз вызывается первичный экран с фокусом на кнопке "Настройки"
Как с Вами связаться через соц сети или мессенджеры?
Меня интересует проверка сборки заявок.
Пример кладовщик собрал заявку и надо перепроверить с помощью штрих кодов .
Можно ли чтобы он отсканировал штрих код товара и приложение показало, что именно этого товара в эту заявку надо 10 штук , затем сканирование следующий позиции и должно показать к примеру что надо 7 штук и тд. ? Желательно чтобы с фото товаром это показывалось .
(74) Сначала отвечу на вопрос: конечно можно! Конструктор для этого и создан. В операцию добавляете экран сканирования заказа (запоминаете заказ в переменной) и цикл "Сканирование товара -> показ количества и картинки". Можно еще в табличку "план-факт" отметку об уже проверенных выводить. Аналогичные примеры есть в демо базе. Ну и в инструкции это расписано. По поводу мессенджера - Вы меня добавили в друзья, теперь можете отправлять сообщения, я там напишу свой скайп и т.д.
(78)
Я не программист, а просто пользователь.
Вы могли бы дописать приложение чтобы Ваш конструктор работал с обменом данными информации через moysklad.ru?
(79) Приложение управляется с бекенда а не наоборот. Если программисты бекенда(мой склад) напишут серверное взаимодействие через rest API, то оно будет работать. Если не напишут то не будет. Я не могу повлиять на этот процесс так так отвечаю за фронт. Это приложение - это фронт и инструмент для разработчика который с него снимает необходимость заниматься мобильной разработкой, но логику обработчиков на сервере все равно прописывать надо. Надеюсь понятно написал.
Интересный проект. Думаю, многим пригодится.
Чем-то похож на коробочное решение от Axelot (конфа WMS: Управление складом). Там тоже все на веб-сервисах. И установлен нативный клиент под WinMobile и WinCE. Для Андроида вроде тоже делали.
Главный минус: если вай-фай на складе имеет несколько точек доступа, а бесшовный роуминг не настроен (задача не тривиальная сама по себе), то периодически при переключении теряются пакеты с данными. Это невозможно отследить и исправить. Как результат: на сервере событие уже произошло, на клиенте - нет. И наоборот. Итог: постоянные глюки и требование бесшовного роуминга.
Вышли из ситуации при помощи RDP и написанию своего АРМ для работы с теми бизнес-процессами, которые нам нужны. Минусы: нужны доп.лицензии 1с (они есть), плюсы - при потере связи (даже кратковременной) не теряются пакеты, клиенты продолжают работать после возобновления.
Не берусь судить, как работает тут. Но как минимум, тут клиент только под андроид. Если на предприятии много устаревших ТСД - покупать новое обрудование довольно затратно.
Но нет худа без добра: как только перешли на RDP, границы возможностей резко стали шире, поскольку после этого появились АРМы под другие базы данных. Плюс возможность работать в одной БД через COM-соединение.
Вообщем, буду следить за проектом. Тема очень интересная и я с ней тесно связан.
(81) Спасибо! Вариант клиента под RDP сейчас активно тестируется и готовится к релизу. Думаю к середине февраля будет. В итоге на одной "конфигурации клиента" будет работать экосистема клиентов: ТСД с 1С через RDP/или веб клиент + ТСД на андроид + обычные телефоны на андроид для других задач.
Добрый день, Дмитрий.
Скачал демо-конфигурацию, развернул веб-сервис, через браузер база работает, мобильный клиент сообщает: "Не удалось получить конфигурацию. Установите адрес веб-сервиса и код клиента". Но эти параметры установлены... Код клиента 5, адрес http://192.168.0.100/hs/simplewms . Используется Windows 10 Pro + IIS + 1с 8.3.14.1595
В какую сторону копать ?.. Заранее спасибо за ответ
(83) Добрый день!Вы пропустили похоже имя сервиса. И логин/пароль пользователя 1С заданы? Если на устройстве открыть браузер и написать что то типа http://192.168.1.4:2312/TestWS/hs/simplewms/get_conf?code=5 (надо адрес ваш подставить) то должен возвращать конфу.
Добрый день. Может ли мобильный клиент использовать GPS координаты, чтобы по ним определять адрес помещения ? У нас ОС находятся в помещениях у наших контрагентов, а им штрихкода не наклеишь :(
Спасибо
Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0")