Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия — Simple UI (обновлено 14.11.2024)


















Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

 

Важно: текущая ветка развития проекта теперь — Simple UI. Рекомендую воспринимать все посты по Simple UI и Simple WMS как единый проект и единый продукт.

 

Постановка задачи

Системы управления складом (WMS), логистикой и подобные осуществляют процессный подход к управлению в альтернативу документному подходу, который используется в учетных системах. Грубо говоря в учетной системе(например 1С:УТ или ERP) все отталкивается от документа: есть приходная накладная – есть ее аналог в учетной системе. В процессном подходе все не так :например, есть приход паллеты товара – это действие нужно сразу же отразить в системе, т.е. отразить каждую операцию процесса, поэтому такой учет более оперативный и требует автоматизации мобильными терминалами.

Соответственно, работники склада выполняют определенную последовательность действий, которые должны управляться из системы и отражаться в ней. Например работник должен отправиться на определенный адрес (последовательность обхода адресов рассчитывается исходя из топологии склада), обнаружить там паллету, взять определенное количество товара.

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

Таким образом для каждого такого процесса в мобильном клиенте должна быть последовательность экранов, на которых выводятся подсказки, содержатся элементы ввода, контроль ввода и т.д. Эта последовательность далее называется Процессом и для конструирования этих процессов для мобильного клиента и создан этот модуль.

 

Архитектура

 

Во вступлении я назвал эту систему «открытой» вот почему: ничто не ограничивает внедренца в использовании своей логики в приложении, потому что все происходит на стороне 1С в открытом коде. Android-клиент ничего не рассчитывает, ничего не хранит, не осуществляет логических переходов и обработки данных – все это происходит в обработчиках в веб-сервисе. Вариант исполнения клиента для 1С-клиента — такой же, т.е. он просто отрисовывает фронт и исполняет обработчики. Это абсолютно тонкий клиент, который умеет только отображать и получать/передавать данные от источников ввода. Конфигурация, которая является конструктором и одновременно модулем интеграции также не содержит ограничений.

 

Каждый клиент работает со своей конфигурацией рабочего места (например «Приемка», «Выпуск» и т.д.) содержащей набор процессов. Конфигурация клиента задается в виде строки XML  и передается на клиент в момент открытия приложения: приложение посылает запрос и конфигурация приходит в ответе. Таким образом для того что бы что то поменять у клиента ему достаточно просто перезайти. В принципе конфигурацию можно редактировать и просто в XML но для удобства я сделал редактор в 1С, который автоматизирует создание конфигурации.

 

В редакторе создаются различные конфигурации клиентов (например в демо-базе есть конфигурации для рабочего места «Приемка», «Отгрузка» и «Инвентаризация ОС»). Конфигурации содержат процессы, а процессы состоят из последовательностей экранов и/или циклов. Например это – состав одного из процессов:

В справочнике Экраны задаются визуальные элементы и элементы ввода для каждого шага процесса. Например так:

При этом клиент может отображать значения переменных в визуальных элементах.

Например, на первом экране сканируется штрих/код, а на следующем, показывается товар и расширенное описание товара. Это задается и отображается так:

А вот так на одной картинке выглядит весть процесс вместе. Тут видно что пользователя при запуске встречает стартовый экран, а потом начинается цикл приемки товара, пока пользователь не выйдет. Вот таким примерно образом и создаются все процессы.

Помимо полей ввода и чтения штрихкодов клиент может взаимодействовать с пользователем с помощью диалога вопроса:

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

Архитектура обмена между сервером и клиентом показана на следующей схеме:

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

На каждый клиент можно отправлять распоряжения(заказы, задания) с таблицами котрые будут запускать процессы. Это работает не через пуш, а через http-запросы. Вот пример отправки заказа клиента. В результате отправки у пользователя проигрывается звук приема сообщения и возникает диалог приема заказа, если он готов принять то стартует выполнение процесса. Кстати тут еще одни контроль того, занят клиент в данный момент или нет:

Заказ можно получить и по инициативе клиента, через сканирование штрих-кода например или поиск по номеру

Ну и обещанный бонус – распознавание голоса

Пример работы с голосом есть в демо базе. Распознавание голосом может понадобиться в случаях когда штрих коды использовать нельзя. Например, недавно ко мне обратились с учетом номеров шин на транспорте -вот тут то как раз тот случай: штрихкоды на шины в эксплуатации не наклеишь, frid-ы сомнительно. Номер состоит из 6 цифр, и на морозе вбить его затруднительно, а вот проговорить -легко. Точность распознавания товара стремиться к 100%. Даже если чтото не так, то можно переделать.

Еще вариант использования – ввод нового товара, которого нет в базе.

Честно говоря, распознавание от Google в сочетании с такой оберткой -это уже не игрушка а претендент на полноценную замену другим способам идентификации.

Вот как это выглядит:

 

Примеры процессов, реализованные на конструкторе 

 

Инвентаризация ОС

Работа клиента такая: сканируется штрих-код помещения, с сервера подгружается таблица ОС которые должны быть по учету, и цикл из одного действия – сканирования штрих-кода основного средства. В помещении может быть ОС которого нет по учету (принесли из другого помещения). Может чего-то не быть. В общем, все видно по план-факту. В результате в базе заполняется «Инвентаризация ОС» — заполняется колонка «Факт»

Клиент приемки

Клиент участка приемки содержит два процесса: «Приемка по факту» и «Приемка по заказу».. Если нет распоряжения на приемку(Заказа поставщику), но нужно принять  товар, на клиенте выбирается «Приемка по факту», если заказ есть, то «Приемка по заказу». Соответственно в первом случае – создается просто новый документ «Приемка», во втором случае тоже создается приемка, но привязанная к заказу поставщику, кроме того можно смотреть «План-факт» приемки

Клиент отгрузки.

Также в демо базе есть пример рабочего места отгрузки. Там содержится 2 процесса – отгрузка по заказу со сканом и отгрузка с приемом заказа, с сервера. Но в клиенте отображается только один процесс, так как второй-скрытый, его нельзя запустить вручную – только с сервера.

Клиент службы доставки.

Так как приложение работает через веб-сервисы оно может работать не только во внутренней сети, но и через интернет. На этом модуле можно разработать рабочее место курьера который будет отмечать доставку, возвращенные покупателем товары, оплату (сумма оплаты будет рассчитываться от суммы возврата).

Заключение. Описание поставки.

Конфигурация для инвентаризации ОС содержит всего 2 экрана, 2 обработчика и 155 строчек кода. Полноценное рабочее место для проведения инвентаризации было сделано  и готово к работе за 20 минут. Это быстро. Альтернативой могло бы стать: 1. написание мобильного приложения на платформе 1С;2. Мобильный клиент на 1С 3. написание интерфейса  1C+RDP. Но это все делается дольше, кроме того для 1С нужны лицензии и для RDP тоже нужны лицензии, а для приложения — нет. Кроме того, 1С не умеет всего того, что умеет нативное приложение Android. Например сканирование обычный штрихкодов (например EAN-13), на момент написания статьи вызывает большие вопросы.

Данный модуль и клиент предоставляют программисту инструмент котрый можно сравнить с Конвертацией данных: можно писать свой обмен между базами полностью с нуля, а можно воспользоваться КД, чтобы она взяла на себя всю инфраструктуру, оставив программисту работу с непосредственно логикой. Вопрос выбора данного инструмента – это вопрос экономии времени и денег.

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

Для работы на устройство нужно поставить приложение Simple WMS:

В архиве находится база с примерами, в базе – конфигурация с модулем для объединения и подробная инструкция по внедрению с картинками, в которой содержится все необходимое. Работа по конфигурировнию своих клиентов и интеграции со своей конфигурацией рассчитана на 1С-программиста. Требуется публикация веб-сервиса.

Конфигурация тестировалась на платформе 8.3.12.1412

Никаких защит, скрытых модулей, библиотек, покупок в приложении, ограничений в приложении в данном проекте не предусмотрено.

Обновление от 12.01.19:

-Добавлена совместимость с Android 4.2

-Добавлен элемент экрана "Картинка". В демо базе сделан пример работы с картинкой. Вот так это может выглядеть.

Обновление от 15.01.19:

-Добавлена совместимость с Android начиная с 4.0.3 (пока только в apk-файле, в магазине нет)

-Увеличен шрифт надписей

Обновление от 16.01.19 :

-Добавлена совместимость с 4.0.3 (IcecreamSandwich)

-Увеличен шрифт

-Теперь можно передвать надписи в виже html-строки.

Надписи в виде html-строки позволяют задавать форматирование в строке — увеличивать шрифт, делать подчеркивание , выделение жирным и т.д. Как это происходит например в Ворде. 

Например, задав строку в 1С в таком виде: Абразивный порошок(02-2,2) с МКР (<u>ТУ 3989-003-82101794-2008</u>) <b>Шлак гранулированный</b>

На экране она выйдет в таком виде:

HTML-строка дает большие возможности. Для того чтобы выделить часть строки надо заключить часть строки в тег. Например <b>Шлак гранулированный</b> — это bold — жирный текст.

Вот список поддерживаемых тегов:

  • p
  • ul
  • li
  • div
  • span
  • strong
  • b
  • em
  • cite
  • dfn
  • i
  • big
  • small
  • font
  • blockquote
  • tt
  • a
  • u
  • del
  • s
  • strike
  • sup
  • sub
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • img
  • br

Обновление от 17.01.19:

  • добавлена обработка аппаратной кнопки Enter на ТСД
  • вопрос при выходе из процесса
  • базовая авторизация в сервисе

 

Обновление от 21.01.19 (обновлена инструкция и демо-база):

 

  • Функции для логина(авторизации): процесс, который запускается при входе в приложение, загрузка нужного клиента
  • Мелкие улучшения. автоматический переход при диалоге (раньше не работал)
  • Передача изображения с камеры устройства. Можно разместить на экране кнопку камеры и получать полноразмерные снимки в 1С в виде строки base64. Теперь с телефона можно например организовать ввод нового товара с фотографиями, штрих кодом. Можно использовать для функции мерчендайзинга например. Или для фотографирования сотрудников.

Обновление от 31.01.19 (обновилось только приложение):

  • Добавлен запуск процессов из процессов (StartProcess). Описано ранее в инструкции.
  • Пропуск экранов по условию (надо разблокировать поле в конфигурации)
  • исправлена ошибка вылета при неправильных учетных данных на некоторых устройствах
  • html в диалогах

Обновление от 04.02.16 (Android и 1C конфигурация):

  • Теперь доступен клиент 1С для варианта работы через RDP/веб-клиент. Более подробно тут: //infostart.ru/public/995673/

Новые функции (оба клиента):

  • Сохранение структуры переменных при запуске процесса из процесса
  • Команда break для немедленного закрытия процесса
  • Обработчики "при открытии" для каждого экрана

Обновление от 11.02.19 (приложение, демо-база, инструкция):

  • Передача GPS координат и прочей информации о положении

 

 

Обновление от 16.02.19 (Только приложение):

  • Исправлена проблема с режимом пропуска экранов в цикле
  • Добавлено сворачивание экранной клавиатуры при переключениях экранов

Обновление от 23.02.19 (Приложение, Демо-база и конфигурация, инструкция):

  • Добавлен элемент управления "Список значений" (в оба клиента). Добавлен пример работы со списком

Обновление от 02.03.19 (Приложение, база, инструкция):

  • Добавлен синтез речи. Теперь можно передавать текст для озвучки

 

 

Обновление от 16.03.19 (моб. приложение, демо база, инструкция):

-Режим списка задач, запуск процессов из списка. Это может быть список заказов на доставку, список заказов для контроля, список задач, вообще люой список представленный в виде карточек

По кнопке «Задачи» теперь можно запросить учетную систему не предмет какого то списка задач, заказов и т.д. Например это могут быть «Текущие заказы к доставке для определенного пользователя»

В момент нажатии кнопки приложение делает запрос к сервису (/get_tasklist/), и он возвращает некий список. Этот список представляется пользователю как список карточек с определенным оформлением

Вместе со списком можно передать наименование операции которую надо запустить при клике на задачу, ID задачи, некий параметр который записывается в orderRef и который потом можно прочитать в обработчике.

При клике на задачу передается запрос на специальный сервис (taskcommit) с ID задачи. Это можно использовать для биллинга например

 

Обновление от 23.03.19 (моб. приложение, демо база, инструкция):

  • Теперь доступен ввод подписи с экрана. Подпись отправляется в 1С как картинка:

 

Обновление от 30.03.19 (демо-база, инструкция, приложение)

  • В моб. приложении:настройка колонок "план, факт" таблицы строк и названия кнопки "план-факт"

Обновление от 12.04.19 (демо-база, инструкция, приложение)

  • Теперь можно добавлять свои кнопки (одну или блок кнопок) на экранах

 

 

Обновление от 14.05.19 (пока только приложение):

  • Отрисовка списка задач при активизации (запрос на состав списка при активизации)
  • Управление выходом из цикла с помощью переменной-флага "exitloop" (любое значение)

Обновление от 08.06.19 (демо база, инструкция, приложение):

  • Элемент ввода "Дата"
  • Команда выхода из процесса переименована в break
  • исправление ошибок

 

Обновление от 22.06.19 (демо база, инструкция, андроид-приложение):

  • Добавлена настраиваемая кнопка "Повтор экрана" без переключения экрана. Иногда требуется обновить, оставаясь на экране, пропустить задание и т.д. Т.е. отсылка запроса идет, а экран не переключается.

Обновление от 15.07.19 (демо база, инструкция, андроид-приложение):

Подробности тут: //infostart.ru/public/1093292/

  • Произвольные таблицы отдельно и встраиваемые в экран. Раскраска, ширина колонок и т.д.
  • Переработанный запуск процесса. Цикл в цикле
  • "Не переключать экран"
  • Горизонтальный блок кнопок

 

Обновление от 15.08.19 (демо база, инструкция, андроид-приложение):

  • Офф-лайн режим. Подробности тут: //infostart.ru/public/1108116/
  • Работа с некоторыми режимами сканеров
  • Изменения в интерфейсе

 

Опубликовано готовое расширение для типовых конфигураций для работы с ордерным складом через Simple WMS//infostart.ru/public/1066904/

 

Ознакомительное видео доступно тут:https://youtu.be/T_OY-fqyJQ8

 

Пожалуйста, вопросы присылайте в тему форума  http://forum.infostart.ru/forum104/topic211360/message2158160/#message2158160

 

НОВАЯ ВЕРСИЯ ПЛАТФОРМЫ — Simple UI — ДОСТУПНА ТУТ: //infostart.ru/public/1153616/

99 Comments

  1. rpgshnik

    apk в архиве есть? На андроид 8.1 работает? С гугл пишет не поддерживается мой телефон.

    Reply
  2. informa1555

    (1) Добавил отдельно apk. На Oreo не тестил, но оно написано с target API level 26 поэтому работать должно. Не может же там не быть обратной совместимости! Может не скачивается по причине региона? Сейчас проверю в маркете

    Reply
  3. rpgshnik

    (2) телефоны Honor 8X и Honor 6X не на один из гуглплея не ставиться

    Reply
  4. informa1555

    (3) Попробуйте вот сейчас еще раз скачать из Gogle Play? Я проверил на нескольких устройствах

    Reply
  5. rpgshnik

    (4) доступно, на оба телефона, качаю

    Reply
  6. biruk

    Требуемая версия Андроид: 7.0 и выше — это из за распознавания голоса? Есть парк ТСД, но там не семерка точно…

    Reply
  7. informa1555

    (6) Для распознавания нужно чтобы было google play services — если этого нет (т.е. нет на устройстве google play) то оно при нажатии на кнопку просто не запустится, но все остальное будет работать. А какой там андроид? я могу apk-шку попробовать сделать если версия не слишком старая

    Reply
  8. biruk

    (7) 4.2.2 — не новые конечно, но работают исправно…

    Reply
  9. informa1555

    (8) На 4.2.2 не будет модных кнопок внизу BottomNavigationView… так как они появились начиная с Lolipop… В принципе можно выпустить версию для старых устройств заменив те кнопки обычными Button… Если у меня получиться я напишу.

    Reply
  10. biruk

    (9) Спасибо 🙂 Есть 10 магазинов, там работают эти «старые» ТСД, но работают через «прокладку» — стороннее приложение. Давно есть мысль 1С на них запустить…

    Reply
  11. bulpi

    ОФИГЕТЬ!

    Автор молодец.

    Вопрос :

    «В справочнике Экраны задаются визуальные элементы»

    А как Вы сделали эти элементы ? Не могу пока посмотреть в демо-базе, т.к. требует 8.3.12

    Reply
  12. informa1555

    (11) Спасибо! Как сделал на Андроиде или в 1С? В связке это работает так: допустим вам надо на экране ввода количества товара разместить надпись «введите количество», еще написать по какому товару (который был отсканирован) и поле ввода типа Число. Для этого вы заводите новый элемент справочника Экраны, добавляете в таб. часть 3 строчки: «Надпись» с переменной в которой хранится название товара, тест «Введите количество» и «Ввод числа». На андроиде когда этот экран будет показываться он на экране покажет эти 3 элемента, заполнит надпись с товаром значением переменной, и будет ждать когда Вы введете число, после этого сработает обработчик вввода и переключится экран(либо не переключится если ему запретить). Как то так.

    Reply
  13. XOCTEP

    Очень достойная работа. Есть вопросы:

    1. На экране можно выводить информацию, например, сколько уже было введено количества? Типа «Было: 200 шт., будет: 201 шт.» ?

    2. Приложение связано со сканером ТСД? Или сканирование через камеру?

    3. Если оборвется связь с веб-сервисом, данные сохранятся или нет на ТСД? Актуально для инвентаризаций.

    Reply
  14. MarryJane

    Скорее всего на экран можно посылать все что угодно

    Reply
  15. informa1555

    (13) Спасибо. 1. Да конечно, на экран можно вывести любую переменную, которую Вы сами и определяете. В скриншоте по ОС «Отсканировано 1 из 2 строк» — это примерно аналогичный случай, по количеству также можно сделать. Плюс таблица «План-факт» 2.И так и так — там 2 режима. 3. На ТСД вообще нет данных — это тонкий клиент, все данные хранятся на стороне сервера. Примерно то же самое что ТСД через RDP.

    Reply
  16. XOCTEP

    (15) спасибо, надо попробовать

    Reply
  17. pdenega76

    при запуске требует «Код клиента» и «WebService URL». Со вторым понятно. Что за первый параметр?

    Reply
  18. informa1555

    (17) Это код справочника «Мобильные клиенты». Заводите в базе клиента(устройство), назначаете ему конфигурацию, при сохранении ему присваивается код — число, прописываете его в приложении, перезапускаете, он скачивает конфигурацию клиента. В инструкции более подробно написано.

    Reply
  19. user739511

    На ТСД передать картинку можно?

    Суть проблемы: кладовщик собирает заказ для клиента, ему нужно взять с полки «шампунь для жирных котов с провитамином и хренитином». Перед ним на полке 28 пузырьков с разными шампунями. Я хочу, чтобы кладовщик, нажав у себя на экране на кнопку «картинка», получил от сервера картинку с шампунем. Такой функционал можно будет реализовать?

    Reply
  20. informa1555

    (19) Теоретически да, можно. Сейчас этого нет. С этой задачей обычно справляются с помощью адресного хранения. Я не думаю что картинка сильно поможет, но сделать можно.

    Reply
  21. user739511

    (20) Адресное хранение поможет, когда лежит 28 упаковок шампуней, при этом каждая упаковка на своей полке. А когда каждого вида по одному-два пузырька и все 28 видов на одной полке… Специфика интернет-магазина: «как разместить 5 тысяч наименований на 300м2»

    Насколько сложно прикрутить картинки?

    Reply
  22. informa1555

    (21) Я думаю несложно. Я все равно хотел прикручивать передачу картинок с камеры (для приемки). Попробую сделать для отображения.

    Reply
  23. informa1555

    (10) Я выложил еще один apk под 4.2. Сразу скажу что тестил на эмуляторе и не уверен в том что глюков нет. Судя по тем проблемам которые вылезали в процессе переделки, вылезти может в неожиданных местах. На эмуляторе работает.

    Reply
  24. mkostya

    А код android реально выложить, ну или на продажу.

    Reply
  25. Man4kin

    Видел подобное решение у франча Ситэк, но оно платное.

    Автор МОЛОДЕЦ!

    Попробую на досуге.

    Reply
  26. informa1555

    (24) Код — нет. А что хотите изменить в приложении? Я вообще планирую развивать функционал.

    Reply
  27. informa1555

    (25) Спасибо. Да похоже, но там же вроде не конструктор? Всмысле там нельзя добавлять свои процессы как я понимаю.

    Reply
  28. Man4kin

    Есть конструктор форм, рисуются в 1С.

    Reply
  29. user658480_it2

    Дмитрий, как можно получить демо-базу без стартмани? можете выложить еще одну строчку демо базы за рубли?

    Reply
  30. informa1555

    (29) Я попробовал, но там все не так просто как раньше… Не подходит ни один тип платного контента… Стартмани же продаются.

    Reply
  31. bulpi

    (12)

    Это понятно. Непонятно, откуда взялись сами картинки экрана. Их же как то надо было сделать и передать на андроид. Или это все уже есть в Simple WMS Client ? Но в инструкции это все нарисовано в 1с. Как рисовали ? Как передавали ?

    Reply
  32. informa1555

    (31) Сами картинки рисует приложение на андроид. Ему из 1С приходит XML и там допустим написано «элемент экрана надпись» и оно показывает надпись. 1С нужна только для того чтобы этот XML сформировать, ну и обработчики конечно же. Или вопрос в том как я это в java реализовал?

    Reply
  33. user658480_it2

    (30) Продаются только в комплекте абонементов ( Нам как раз нужен легкий тонкий клиент, вообще без логики, способный тупо принимать и отдавать введенные данные, сейчас реализуем через веб-сервер, сайт на битриксе и браузер, зашитый в .апк, получается так себе -_-.

    Reply
  34. informa1555

    (33) а на бирже, разве нельзя купить?

    Reply
  35. informa1555

    (10) Готово. Картинки добавлены.

    Reply
  36. bulpi

    (32)

    Теперь понятно. А я думал, что картинки тоже из 1с передаются.

    Reply
  37. informa1555

    (36) Там трафик микроскопический — маленькие json-ны. Даже на очень слабом соединении очень быстро передается.

    Reply
  38. ilya.babin

    Возможно добавить поддержку Android 4.1.2?

    Reply
  39. informa1555

    (38) Думаю да. Я посмотрю.

    Reply
  40. CheBurator

    (21) минимальное «адресное хранение», которое делается примерно также быстро как и данный сабж. и прикрутка правила «не располагать товраы одной учетной группы рядом» 😉

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

    Reply
  41. CheBurator

    Хорошая разработка!

    Одна тотальная бяка — надо было названия товаров — еще меньшим шрфитом написать. Потом порадоватьяс за кладовщиков у которых к концу дня глаза на лбу от вглядывания. Что-то технически мешает масштабировать надписи на экране под размер отводимого им поля для вывода надписи?

    Reply
  42. informa1555

    (41) Ну оно в принципе безразмерное с переносом, если не влезет то сдвинется на вторую строку и т.д. Но спасибо за ценный совет, увеличу шрифт на 2-3 пункта.

    Reply
  43. CheBurator

    (42) на 2-3 пункта — не выход, конечно, можно ориентироватьяс на типа «стандартную» часто используемцю среднюю длину наименования. но увеличение на 2-3 пунтка — в каких-то позициях приведет к невозможности прочитать ЗНАЧИМУЮ информаци по названию товара, которая окажется в «хвосте» надписи, которая не вместилась.

    т.е. по большому счету речь идет о автомасштабировании текста на форме. если таковое не возможно, то — имхо — лучше увеличить шрифт до максимально возможного для _средней_ стандартной длины надписи и на всякий слуячай предусмотретькнопку» типа «показать название товара подробно» (типа карточка товара)

    Reply
  44. CheBurator

    Аналогичный подход я пробовал на РДП-варианте. когда экраны — только визуализация. но, получается не очень. часть «логики» приходится впихивать в сами «экраны». в первую очередб это связано с производительностью на быстрйо однтипной работе — тупо раздражает перерисовка экранов, то есть временные лаги перехода от формы к форме.

    Reply
  45. informa1555

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

    Reply
  46. informa1555

    (43) Не, такого что не влезет — не может быть. Оно перенесется ниже же

    Reply
  47. informa1555

    (38) В apk-файле добавлена совместимость. В Google Play пока нет — будет выложена в след. релизе.

    Reply
  48. CheBurator

    (45) при развесистиой структуре диалогов рулить большим количеством визуальных элементов м.б затруднительно 9а элементов реально может быть много) — разные текстовые надписи разных размеров в разных местах экрана, кнопки, тоже например могут быть (хотя это извращение). таблички/списки разных размеров в разных местах экрана и т.д.

    я тоже пробовал (РДП+1С) делать все в одной форме на разных слоях — логика управления слоями в заивисмости от разных условий — выходила замуторная. Здесь, конечно, когда вся логика вынесена на сервер и супертонкий клиент только отрисовывает нужные элеменгты — такое возможно ок.

    а взаимное расположение элементов как рулится?

    Reply
  49. CheBurator

    (46) сделайте шрифт на экране нормально физического размера для быстрого считывания и прмерно 4-5 часов работы — меньша 14 пунктов на экране 240 на 320 — тяжело воспринимается. и надпись названия товара символов в 50. а некоторые не брезгуют и 100 — не влезет. поэтому и хотелось бы (хотелка конечно) если название короткое — показывается стандартной крупной надписью. а вот если не влазит — тогда уменьшаем (это я думаю весьма проблематично) — тогда проще по отдельной «кнопке» — расшифровку на отдельном «экране»…

    Reply
  50. informa1555

    (48) Оно предопределенное: сверху надпись 1, ниже надпись 2, и т.д. , поля ввода 1-2-3, надпись комментария, надпись действия и т.д. Короче все на своих местах

    Reply
  51. CheBurator

    (50) это хорошо. но для достаточно простой логики отображения и соответсвенно чтобы набором простой логики отображения сделать сложную логику взаимодествия с пользователем — как у вас сделано — постоянным обменом с сервером. и тут вопрос — будет ли это успешно протягиваться когда на сервер будут одновременно долбиться 50-100 пользователей (ну это если серьезный склад).

    но это лично все мои частные соображения, исключительно на собственном опыте аналогичных работ и +по проектам автоматизации на других складах. Все идет на уровне РДП. проблем с лицензиями как-то не было. Видимо потому что в общей структуре стоимости проекта это не так уж и много 😉 или может по другому клиенты обходили 😉

    Reply
  52. informa1555

    (49) на самом деле подгонка размеров надписей в андроиде есть, но она не совместима с разными версиями — где то будет работать, где то нет, а я так не могу — мне надо чтобы у всех все работало. Я думаю добавить html-строки, их как раз в 1С нет, а штука удобная. Шрифт я уже увеличил в apk-ке котрая в публикации, в маркет выложу со следующим релизом. По поводу крупной и мелкой надписей: у меня как раз есть элемент «Надпись описание» — оно занимает нижнюю половину экрана (если нет картинки) и туда можно толкать все что угодно. Надпись 1, Надпись 2 и Надпись 3 (которые с заголовками вверху) — туда можно выводить краткое описание.

    Reply
  53. CheBurator

    Какие еще элементы управления поддерживаются?

    таблица со списокм чего-либо? +оасшифровка внизу таблицы в текстовом поле подробного «описания» текущей строки таблицы?

    как быстро работает типа такого (и есть ли вообще) — в поле ввода набираем артикул. если набрано более Nзнаков — с каждым набранным знаком в таблице показывается текущий набор товаров, подходящих под набранные знаки?

    Reply
  54. CheBurator

    ..вот то же самое «введите количество» — редко когда приходится вводить количество из 15-20 знаков. Почему не сделать «количество» нормальными буквами чтобы кладовщик не убивал глазки — высотой примерно с сантиметр?

    однообразность и универсальность — это хорошо, но почти всегда это в ущерб эффективности и удобства. И получается что для частных «экранов» — нужен свой дизайн.

    Reply
  55. CheBurator

    Но инструментарий — хороший, мне нравится, закладочку сделал, вынес в группу: https://infostart.ru/community/groups/22/publications/

    Reply
  56. informa1555

    (51) Да, RDP — самый быстрый способ. Возможно я на этом же конструкторе сделаю вариант 1С+RDP т.е. пользователь сможет выбирать как ему работать или вообще гибридно и так и так. Ну чтобы не конфигурировать 2 раза.

    Reply
  57. informa1555

    (53) Элементы ввода: ввод числа, строки, штрихкод, голосовой ввод и диалог да/нет. В скором времени еще ввод фоток появится. Вариант автозаполнения не реализован, я думаю он будет тормозить и дело тут не в плиложении, а в 1С. Это ж надо запросы генерить причем с ПОДОБНО… Я конечно могу это сделать на уровне андроида и передать обработчик автозаполнения 1С чтобы на стороне 1С управлять этим и показ там вариантов… вот это вот все… Но боюсь тормоза будут. Не буду пока делать.

    Reply
  58. informa1555

    (54) увеличу. По поводу экранов..Я вот смотрю подобные базы внедренные н-лет назад (всякие топлоги, логитоны и т.д.) и что там было по поводу индивидуальных экранов. Там просто тупо откопированы формы экранов и прописаны свои надписи без изменения шрифта, как то не заморачивались. Честно говоря до Ваших комментов я и не придавал этому такого значения. Я думаю если увеличить то что сейчас мелко, то нормально будет. Но авторесайз я держу в памяти. Дело в том что гугл только несколько месяцев назад выпустила такую штуку и пока она не совместима на все версии, я думаю потом ситуация поменяется.

    Reply
  59. informa1555

    (55) Спасибо!

    Reply
  60. ilya.babin

    (47) Спасибо!

    Reply
  61. sersoft

    Дмитрий добрый день. Очень понравился Ваш проект, даже абонемент купил специально чтобы скачать и попробовать функционал. Пока разбираюсь во всём, но пока столкнулся с одной проблемой, почему то с аппаратным сканером не хочет работать с элементом ШтрихКод

    Если на это экране сделать полле вода числа, и передать в ту же переменную (barcode_room) например, то всё отрабатывает ок. Вот сижу думаю на каком уровне проблема. Если есть мысли можете подсказать куда копать.

    Reply
  62. informa1555

    (61) Спасибо! Аппаратный сканер должен отправлять в разрыв клавиатуры штрих коды с #13 на конце, ну т.е. штрихкод и enter как бы. Поле ввода на таком экране не надо иначе оно будет перехватывать штрих код.

    Reply
  63. sersoft

    Я пробовал без суффикса аппаратную кнопку Enter нажимать, фокус кудато сдивгается, и при повторном нажатии уходит в начальное меню.

    Установил в настройках суффикс
    , теперь добавляется Enter автоматом, и на полях ввода (сроки или числа), происходит переход к следующему экрану, но на элементе ШтрихКод, то же поведение.

    Reply
  64. informa1555

    (63) Я правильно понимаю, что если вы на экране размещаете поля ввода, сканируете аппаратным сканером, то в поле ввода этот штрих код попадает? И если добавлен /n то происходит переход на новый экран (если в конфигурации стоит галка Переключаться по окончанию ввода). Все верно?

    Но если на экране не размещать поле ввода, а разместить только ШтрихКод и отсканировать, то ничего не происходит?

    Reply
  65. sersoft

    (64)

    Да совершенно верно.

    Попробовал по другому, мануал от производителя https://www.alcaidc.com/Public/newsinfo.aspx?emailID=494

    суффикс в шестнадцатеричном виде x0Dx0A

    И тоже самое, с поллем ввода всё гуд , а вот со штрих кодом увы.

    Reply
  66. sersoft

    (64)Да именно так

    Reply
  67. sersoft

    (64) Заметил что , если просто дважды нажать Enter то происходить то же самое, первый раз ничего, но фокус смещается на кнопку «Назад», и второй раз вызывается первичный экран с фокусом на кнопке «Настройки»

    Reply
  68. informa1555

    (66) На экране где ШтрихКод — нет ни одного поля ввода?

    Reply
  69. sersoft

    Ещё заметил что хардварными кнопками (вверх, вниз, влево, вправо) не перемещается фокус между кнопками.

    Reply
  70. sersoft

    (68) Нету. Только надпись.

    Reply
  71. informa1555

    (70) Понятно, у вас enter что то перехватывает и дальше не отдает. Я сейчас сделаю по другому для этого случая и передам вам apk . Напишу в личку

    Reply
  72. sersoft

    (71)Спасибо большое!

    Reply
  73. CheBurator

    (58) да, тут я согласен. у меня например есть ТСДшные формы ВМС работающие в размер экрана десктопа (РМ упаковщиков) и они сдизайнерены с размером шрифтов и кнопок и прочего — под экран десктопа — здесь про нормальное автомасштабирование элементов формы (из типа стандартного маленького прототипа) — речи нет (вдобавок функционал этого АРМ туппо на экране ТСД не прокатит — придется вместо одного экрана вязать несколкьо). и такой ТСДшный фейс в размере на экране ТСД — не будет ок. поэтому универсальностью здесь ну никак не получится. но по крайней мере хоелось бы если фейс нарисован на 240-320 — то на 480-640 — чтобы он именно масштабировался, а не растягивался.

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

    Reply
  74. VKuser27369978

    Как с Вами связаться через соц сети или мессенджеры?

    Меня интересует проверка сборки заявок.

    Пример кладовщик собрал заявку и надо перепроверить с помощью штрих кодов .

    Можно ли чтобы он отсканировал штрих код товара и приложение показало, что именно этого товара в эту заявку надо 10 штук , затем сканирование следующий позиции и должно показать к примеру что надо 7 штук и тд. ? Желательно чтобы с фото товаром это показывалось .

    Reply
  75. informa1555

    (74) Сначала отвечу на вопрос: конечно можно! Конструктор для этого и создан. В операцию добавляете экран сканирования заказа (запоминаете заказ в переменной) и цикл «Сканирование товара -> показ количества и картинки». Можно еще в табличку «план-факт» отметку об уже проверенных выводить. Аналогичные примеры есть в демо базе. Ну и в инструкции это расписано. По поводу мессенджера — Вы меня добавили в друзья, теперь можете отправлять сообщения, я там напишу свой скайп и т.д.

    Reply
  76. VKuser27369978

    Не отправляется Сообщения в личку. Пишет — «сообщение не отправлено. отложенная группа.»

    Добавьте меня пожалуйста в телеграм — @turister

    Reply
  77. VKuser27369978

    Ещё подскажите сможет ли Ваше приложение обмениваться информацией с сайтом moysklad.ru?

    dev.moysklad.ru для разработчиков.

    Reply
  78. informa1555

    (77)

    moysklad.ru

    если они напишут обмен и логику обработчиков на своей стороне то да. Там REST API обычный. Но возможности конструктора реализованы на 1С.

    Reply
  79. user1139543

    (78)

    Я не программист, а просто пользователь.

    Вы могли бы дописать приложение чтобы Ваш конструктор работал с обменом данными информации через moysklad.ru?

    Reply
  80. informa1555

    (79) Приложение управляется с бекенда а не наоборот. Если программисты бекенда(мой склад) напишут серверное взаимодействие через rest API, то оно будет работать. Если не напишут то не будет. Я не могу повлиять на этот процесс так так отвечаю за фронт. Это приложение — это фронт и инструмент для разработчика который с него снимает необходимость заниматься мобильной разработкой, но логику обработчиков на сервере все равно прописывать надо. Надеюсь понятно написал.

    Reply
  81. WellMaster

    Интересный проект. Думаю, многим пригодится.

    Чем-то похож на коробочное решение от Axelot (конфа WMS: Управление складом). Там тоже все на веб-сервисах. И установлен нативный клиент под WinMobile и WinCE. Для Андроида вроде тоже делали.

    Главный минус: если вай-фай на складе имеет несколько точек доступа, а бесшовный роуминг не настроен (задача не тривиальная сама по себе), то периодически при переключении теряются пакеты с данными. Это невозможно отследить и исправить. Как результат: на сервере событие уже произошло, на клиенте — нет. И наоборот. Итог: постоянные глюки и требование бесшовного роуминга.

    Вышли из ситуации при помощи RDP и написанию своего АРМ для работы с теми бизнес-процессами, которые нам нужны. Минусы: нужны доп.лицензии 1с (они есть), плюсы — при потере связи (даже кратковременной) не теряются пакеты, клиенты продолжают работать после возобновления.

    Не берусь судить, как работает тут. Но как минимум, тут клиент только под андроид. Если на предприятии много устаревших ТСД — покупать новое обрудование довольно затратно.

    Но нет худа без добра: как только перешли на RDP, границы возможностей резко стали шире, поскольку после этого появились АРМы под другие базы данных. Плюс возможность работать в одной БД через COM-соединение.

    Вообщем, буду следить за проектом. Тема очень интересная и я с ней тесно связан.

    Reply
  82. informa1555

    (81) Спасибо! Вариант клиента под RDP сейчас активно тестируется и готовится к релизу. Думаю к середине февраля будет. В итоге на одной «конфигурации клиента» будет работать экосистема клиентов: ТСД с 1С через RDP/или веб клиент + ТСД на андроид + обычные телефоны на андроид для других задач.

    Reply
  83. vdscom

    Добрый день, Дмитрий.

    Скачал демо-конфигурацию, развернул веб-сервис, через браузер база работает, мобильный клиент сообщает: «Не удалось получить конфигурацию. Установите адрес веб-сервиса и код клиента». Но эти параметры установлены… Код клиента 5, адрес http://192.168.0.100/hs/simplewms . Используется Windows 10 Pro + IIS + 1с 8.3.14.1595

    В какую сторону копать ?.. Заранее спасибо за ответ

    Reply
  84. informa1555

    (83) Добрый день!Вы пропустили похоже имя сервиса. И логин/пароль пользователя 1С заданы? Если на устройстве открыть браузер и написать что то типа http://192.168.1.4:2312/TestWS/hs/simplewms/get_conf?code=5 (надо адрес ваш подставить) то должен возвращать конфу.

    Reply
  85. sersoft

    (83) У Вас пропущен корневое имя публикации конфигурации,

    Ваш пример

    http://192.168.0.100/hs/simplewms

    Пример Дмитрия

    http://192.168.1.4:2312/TestWS/hs/simplewms/

    TestWS/ Это есть имя публикации, у Вас его нет, перед /hs/…

    Reply
  86. vdscom

    (84) (85)

    Спасибо, помогло 🙂

    Reply
  87. Skripagan

    Скажите пожалуйста. данная разработка поддерживает RFID считыватели в ТСД ?

    Reply
  88. vdscom

    Добрый день. Может ли мобильный клиент использовать GPS координаты, чтобы по ним определять адрес помещения ? У нас ОС находятся в помещениях у наших контрагентов, а им штрихкода не наклеишь 🙁

    Спасибо

    Reply
  89. informa1555

    (87) Здравствуйте! К сожалению нет, но в планах есть. А какой у вас тип меток?

    Reply
  90. informa1555

    (88) Здравствуйте! Добавить можно, это не сложно. В следующем релизе добавлю.

    Reply
  91. Froloid

    Куда деньги отправлять? ;0)

    Reply
  92. Maxx2008

    (27)Подскажите, работу с алкоголем и табаком реально запустить через Ваше приложение? Приёмка, инвентаризация, отгрузка?

    Reply
  93. informa1555

    (149) Если с точки зрения организации процессов — то да конечно, это конструктор же на нем все можно организовать. Если речь о считывании датаматрикс, то zxing (компнента которая отвечает за считывание) эти штрихкоды считывает. Но я сам не пробовал, не было такого проекта. Ну а если вариант развертнывания через RDP то там считываение станартным драйвером т.е. тоже да.

    Reply
  94. CheBurator

    (21) в адроесном хранении одна из фишек в том — что совершенно по-барабану где хранится шампунь.

    28 ПОХОЖИХ (но разных) бутылочек с шампунями следует разложить на 28 РАЗНЫХ ячеек, чтобы в одной ячейке не лежали похожие товары. Храните в одной ячейке разнородные товары: яч1 = «шампунь1, твердое мыло1, щетка для вычесывания1, тапочки для тараканов1», яч2 = «шампунь2, твердое мыло2, щетка для вычесывания2, тапочки для тараканов2». Даже самое простое адресное хранение с грамотной работой «по бумаге» позволяет увеличить скорость сборки ~1.5-2 раза. У себя на ТСД тоже делал просмотр картинки товара — но никто этим не пользовался, за ненадобностью.

    Reply
  95. informa1555

    (155) Ниче ты запоздал с ответом)) За это время я уже прикрутил картинки и фотографирование и кучу всего. Так как клиент используется не только на складах, но и например в торговых залах в рознице, курьерской доставке, картинки безусловно нужны. А в этом конкретно случае — просто склад маленький и ниче не влезает. Это проблема, да. Ниче с этим не поделаешь.

    Reply
  96. tdkintel

    (71) Здравствуйте, Дмитрий!!!!

    У меня похожая ситуация. Через камеру сканирует отлично, а вот аппаратка не реагирует ни на какие символы. Использую типовой вариант приемки по Задаче. Можно пожалуйста мне тоже apk-шку для решения?

    Reply
  97. informa1555

    (159) Здравствуйте! Должно работать и так. У вас сканер передает суффиксы CR-LF в конце строки? На экране нет поля ввода?

    Reply
  98. tdkintel

    (160) В настройках сканера суффиксы и префиксы отключены по умолчанию.

    Есть возможность штатно передавать вместе со ШК (End charachter) такие символы как: Enter, Tab,
    , … Сейчас стоит Null здесь.

    Пробовал:

    — в «постфикс» ставить #13

    — в «End charachter» ставить Enter,

    Не проходит. Установил «Блокнот». Сканирую. Появляются только 13 символов без каких либо знаков еще. Что добавить спереди или сзади, чтобы система перехватывала?

    Reply
  99. informa1555

    (161) добавить сзади (в end character)
    или просто
    или

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *