Важно: текущая ветка развития проекта теперь — 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/
apk в архиве есть? На андроид 8.1 работает? С гугл пишет не поддерживается мой телефон.
(1) Добавил отдельно apk. На Oreo не тестил, но оно написано с target API level 26 поэтому работать должно. Не может же там не быть обратной совместимости! Может не скачивается по причине региона? Сейчас проверю в маркете
(2) телефоны Honor 8X и Honor 6X не на один из гуглплея не ставиться
(3) Попробуйте вот сейчас еще раз скачать из Gogle Play? Я проверил на нескольких устройствах
(4) доступно, на оба телефона, качаю
Требуемая версия Андроид: 7.0 и выше — это из за распознавания голоса? Есть парк ТСД, но там не семерка точно…
(6) Для распознавания нужно чтобы было google play services — если этого нет (т.е. нет на устройстве google play) то оно при нажатии на кнопку просто не запустится, но все остальное будет работать. А какой там андроид? я могу apk-шку попробовать сделать если версия не слишком старая
(7) 4.2.2 — не новые конечно, но работают исправно…
(8) На 4.2.2 не будет модных кнопок внизу BottomNavigationView… так как они появились начиная с Lolipop… В принципе можно выпустить версию для старых устройств заменив те кнопки обычными Button… Если у меня получиться я напишу.
(9) Спасибо 🙂 Есть 10 магазинов, там работают эти «старые» ТСД, но работают через «прокладку» — стороннее приложение. Давно есть мысль 1С на них запустить…
ОФИГЕТЬ!
Автор молодец.
Вопрос :
«В справочнике Экраны задаются визуальные элементы»
А как Вы сделали эти элементы ? Не могу пока посмотреть в демо-базе, т.к. требует 8.3.12
(11) Спасибо! Как сделал на Андроиде или в 1С? В связке это работает так: допустим вам надо на экране ввода количества товара разместить надпись «введите количество», еще написать по какому товару (который был отсканирован) и поле ввода типа Число. Для этого вы заводите новый элемент справочника Экраны, добавляете в таб. часть 3 строчки: «Надпись» с переменной в которой хранится название товара, тест «Введите количество» и «Ввод числа». На андроиде когда этот экран будет показываться он на экране покажет эти 3 элемента, заполнит надпись с товаром значением переменной, и будет ждать когда Вы введете число, после этого сработает обработчик вввода и переключится экран(либо не переключится если ему запретить). Как то так.
Очень достойная работа. Есть вопросы:
1. На экране можно выводить информацию, например, сколько уже было введено количества? Типа «Было: 200 шт., будет: 201 шт.» ?
2. Приложение связано со сканером ТСД? Или сканирование через камеру?
3. Если оборвется связь с веб-сервисом, данные сохранятся или нет на ТСД? Актуально для инвентаризаций.
Скорее всего на экран можно посылать все что угодно
(13) Спасибо. 1. Да конечно, на экран можно вывести любую переменную, которую Вы сами и определяете. В скриншоте по ОС «Отсканировано 1 из 2 строк» — это примерно аналогичный случай, по количеству также можно сделать. Плюс таблица «План-факт» 2.И так и так — там 2 режима. 3. На ТСД вообще нет данных — это тонкий клиент, все данные хранятся на стороне сервера. Примерно то же самое что ТСД через RDP.
(15) спасибо, надо попробовать
при запуске требует «Код клиента» и «WebService URL». Со вторым понятно. Что за первый параметр?
(17) Это код справочника «Мобильные клиенты». Заводите в базе клиента(устройство), назначаете ему конфигурацию, при сохранении ему присваивается код — число, прописываете его в приложении, перезапускаете, он скачивает конфигурацию клиента. В инструкции более подробно написано.
На ТСД передать картинку можно?
Суть проблемы: кладовщик собирает заказ для клиента, ему нужно взять с полки «шампунь для жирных котов с провитамином и хренитином». Перед ним на полке 28 пузырьков с разными шампунями. Я хочу, чтобы кладовщик, нажав у себя на экране на кнопку «картинка», получил от сервера картинку с шампунем. Такой функционал можно будет реализовать?
(19) Теоретически да, можно. Сейчас этого нет. С этой задачей обычно справляются с помощью адресного хранения. Я не думаю что картинка сильно поможет, но сделать можно.
(20) Адресное хранение поможет, когда лежит 28 упаковок шампуней, при этом каждая упаковка на своей полке. А когда каждого вида по одному-два пузырька и все 28 видов на одной полке… Специфика интернет-магазина: «как разместить 5 тысяч наименований на 300м2»
Насколько сложно прикрутить картинки?
(21) Я думаю несложно. Я все равно хотел прикручивать передачу картинок с камеры (для приемки). Попробую сделать для отображения.
(10) Я выложил еще один apk под 4.2. Сразу скажу что тестил на эмуляторе и не уверен в том что глюков нет. Судя по тем проблемам которые вылезали в процессе переделки, вылезти может в неожиданных местах. На эмуляторе работает.
А код android реально выложить, ну или на продажу.
Видел подобное решение у франча Ситэк, но оно платное.
Автор МОЛОДЕЦ!
Попробую на досуге.
(24) Код — нет. А что хотите изменить в приложении? Я вообще планирую развивать функционал.
(25) Спасибо. Да похоже, но там же вроде не конструктор? Всмысле там нельзя добавлять свои процессы как я понимаю.
Есть конструктор форм, рисуются в 1С.
Дмитрий, как можно получить демо-базу без стартмани? можете выложить еще одну строчку демо базы за рубли?
(29) Я попробовал, но там все не так просто как раньше… Не подходит ни один тип платного контента… Стартмани же продаются.
(12)
Это понятно. Непонятно, откуда взялись сами картинки экрана. Их же как то надо было сделать и передать на андроид. Или это все уже есть в Simple WMS Client ? Но в инструкции это все нарисовано в 1с. Как рисовали ? Как передавали ?
(31) Сами картинки рисует приложение на андроид. Ему из 1С приходит XML и там допустим написано «элемент экрана надпись» и оно показывает надпись. 1С нужна только для того чтобы этот XML сформировать, ну и обработчики конечно же. Или вопрос в том как я это в java реализовал?
(30) Продаются только в комплекте абонементов ( Нам как раз нужен легкий тонкий клиент, вообще без логики, способный тупо принимать и отдавать введенные данные, сейчас реализуем через веб-сервер, сайт на битриксе и браузер, зашитый в .апк, получается так себе -_-.
(33) а на бирже, разве нельзя купить?
(10) Готово. Картинки добавлены.
(32)
Теперь понятно. А я думал, что картинки тоже из 1с передаются.
(36) Там трафик микроскопический — маленькие json-ны. Даже на очень слабом соединении очень быстро передается.
Возможно добавить поддержку Android 4.1.2?
(38) Думаю да. Я посмотрю.
(21) минимальное «адресное хранение», которое делается примерно также быстро как и данный сабж. и прикрутка правила «не располагать товраы одной учетной группы рядом» 😉
а так да — если на нормальную систему нет денег, то картинка — выход. у меня на складе на ТСД была картинка, но по статистике ею никто не пользовался. просто потому что потребности такой не возникало.
Хорошая разработка!
Одна тотальная бяка — надо было названия товаров — еще меньшим шрфитом написать. Потом порадоватьяс за кладовщиков у которых к концу дня глаза на лбу от вглядывания. Что-то технически мешает масштабировать надписи на экране под размер отводимого им поля для вывода надписи?
(41) Ну оно в принципе безразмерное с переносом, если не влезет то сдвинется на вторую строку и т.д. Но спасибо за ценный совет, увеличу шрифт на 2-3 пункта.
(42) на 2-3 пункта — не выход, конечно, можно ориентироватьяс на типа «стандартную» часто используемцю среднюю длину наименования. но увеличение на 2-3 пунтка — в каких-то позициях приведет к невозможности прочитать ЗНАЧИМУЮ информаци по названию товара, которая окажется в «хвосте» надписи, которая не вместилась.
т.е. по большому счету речь идет о автомасштабировании текста на форме. если таковое не возможно, то — имхо — лучше увеличить шрифт до максимально возможного для _средней_ стандартной длины надписи и на всякий слуячай предусмотретькнопку» типа «показать название товара подробно» (типа карточка товара)
Аналогичный подход я пробовал на РДП-варианте. когда экраны — только визуализация. но, получается не очень. часть «логики» приходится впихивать в сами «экраны». в первую очередб это связано с производительностью на быстрйо однтипной работе — тупо раздражает перерисовка экранов, то есть временные лаги перехода от формы к форме.
(44) А у меня нет перехода от формы к форме — на одной активити элементы включаются/выключаются. На 1С я кстати тоже делал также на упр формах — одна форма и включение/выключение элементов экрана . Поэтому быстро. Другие решения я смотрел, используют разные формы, но по моему опыту структура форм однообразна, и рисовать для каждого экрана отдельную форму — смысла нет. Тут можно для проверки сделать цикл из 2х экранов — он мгновенно работает.
(43) Не, такого что не влезет — не может быть. Оно перенесется ниже же
(38) В apk-файле добавлена совместимость. В Google Play пока нет — будет выложена в след. релизе.
(45) при развесистиой структуре диалогов рулить большим количеством визуальных элементов м.б затруднительно 9а элементов реально может быть много) — разные текстовые надписи разных размеров в разных местах экрана, кнопки, тоже например могут быть (хотя это извращение). таблички/списки разных размеров в разных местах экрана и т.д.
я тоже пробовал (РДП+1С) делать все в одной форме на разных слоях — логика управления слоями в заивисмости от разных условий — выходила замуторная. Здесь, конечно, когда вся логика вынесена на сервер и супертонкий клиент только отрисовывает нужные элеменгты — такое возможно ок.
а взаимное расположение элементов как рулится?
(46) сделайте шрифт на экране нормально физического размера для быстрого считывания и прмерно 4-5 часов работы — меньша 14 пунктов на экране 240 на 320 — тяжело воспринимается. и надпись названия товара символов в 50. а некоторые не брезгуют и 100 — не влезет. поэтому и хотелось бы (хотелка конечно) если название короткое — показывается стандартной крупной надписью. а вот если не влазит — тогда уменьшаем (это я думаю весьма проблематично) — тогда проще по отдельной «кнопке» — расшифровку на отдельном «экране»…
(48) Оно предопределенное: сверху надпись 1, ниже надпись 2, и т.д. , поля ввода 1-2-3, надпись комментария, надпись действия и т.д. Короче все на своих местах
(50) это хорошо. но для достаточно простой логики отображения и соответсвенно чтобы набором простой логики отображения сделать сложную логику взаимодествия с пользователем — как у вас сделано — постоянным обменом с сервером. и тут вопрос — будет ли это успешно протягиваться когда на сервер будут одновременно долбиться 50-100 пользователей (ну это если серьезный склад).
но это лично все мои частные соображения, исключительно на собственном опыте аналогичных работ и +по проектам автоматизации на других складах. Все идет на уровне РДП. проблем с лицензиями как-то не было. Видимо потому что в общей структуре стоимости проекта это не так уж и много 😉 или может по другому клиенты обходили 😉
(49) на самом деле подгонка размеров надписей в андроиде есть, но она не совместима с разными версиями — где то будет работать, где то нет, а я так не могу — мне надо чтобы у всех все работало. Я думаю добавить html-строки, их как раз в 1С нет, а штука удобная. Шрифт я уже увеличил в apk-ке котрая в публикации, в маркет выложу со следующим релизом. По поводу крупной и мелкой надписей: у меня как раз есть элемент «Надпись описание» — оно занимает нижнюю половину экрана (если нет картинки) и туда можно толкать все что угодно. Надпись 1, Надпись 2 и Надпись 3 (которые с заголовками вверху) — туда можно выводить краткое описание.
Какие еще элементы управления поддерживаются?
таблица со списокм чего-либо? +оасшифровка внизу таблицы в текстовом поле подробного «описания» текущей строки таблицы?
как быстро работает типа такого (и есть ли вообще) — в поле ввода набираем артикул. если набрано более Nзнаков — с каждым набранным знаком в таблице показывается текущий набор товаров, подходящих под набранные знаки?
..вот то же самое «введите количество» — редко когда приходится вводить количество из 15-20 знаков. Почему не сделать «количество» нормальными буквами чтобы кладовщик не убивал глазки — высотой примерно с сантиметр?
однообразность и универсальность — это хорошо, но почти всегда это в ущерб эффективности и удобства. И получается что для частных «экранов» — нужен свой дизайн.
Но инструментарий — хороший, мне нравится, закладочку сделал, вынес в группу:https://infostart.ru/community/groups/22/publications/
(51) Да, RDP — самый быстрый способ. Возможно я на этом же конструкторе сделаю вариант 1С+RDP т.е. пользователь сможет выбирать как ему работать или вообще гибридно и так и так. Ну чтобы не конфигурировать 2 раза.
(53) Элементы ввода: ввод числа, строки, штрихкод, голосовой ввод и диалог да/нет. В скором времени еще ввод фоток появится. Вариант автозаполнения не реализован, я думаю он будет тормозить и дело тут не в плиложении, а в 1С. Это ж надо запросы генерить причем с ПОДОБНО… Я конечно могу это сделать на уровне андроида и передать обработчик автозаполнения 1С чтобы на стороне 1С управлять этим и показ там вариантов… вот это вот все… Но боюсь тормоза будут. Не буду пока делать.
(54) увеличу. По поводу экранов..Я вот смотрю подобные базы внедренные н-лет назад (всякие топлоги, логитоны и т.д.) и что там было по поводу индивидуальных экранов. Там просто тупо откопированы формы экранов и прописаны свои надписи без изменения шрифта, как то не заморачивались. Честно говоря до Ваших комментов я и не придавал этому такого значения. Я думаю если увеличить то что сейчас мелко, то нормально будет. Но авторесайз я держу в памяти. Дело в том что гугл только несколько месяцев назад выпустила такую штуку и пока она не совместима на все версии, я думаю потом ситуация поменяется.
(55) Спасибо!
(47) Спасибо!
Дмитрий добрый день. Очень понравился Ваш проект, даже абонемент купил специально чтобы скачать и попробовать функционал. Пока разбираюсь во всём, но пока столкнулся с одной проблемой, почему то с аппаратным сканером не хочет работать с элементом ШтрихКод
Если на это экране сделать полле вода числа, и передать в ту же переменную (barcode_room) например, то всё отрабатывает ок. Вот сижу думаю на каком уровне проблема. Если есть мысли можете подсказать куда копать.
(61) Спасибо! Аппаратный сканер должен отправлять в разрыв клавиатуры штрих коды с #13 на конце, ну т.е. штрихкод и enter как бы. Поле ввода на таком экране не надо иначе оно будет перехватывать штрих код.
Я пробовал без суффикса аппаратную кнопку Enter нажимать, фокус кудато сдивгается, и при повторном нажатии уходит в начальное меню.
Установил в настройках суффикс
, теперь добавляется Enter автоматом, и на полях ввода (сроки или числа), происходит переход к следующему экрану, но на элементе ШтрихКод, то же поведение.
(63) Я правильно понимаю, что если вы на экране размещаете поля ввода, сканируете аппаратным сканером, то в поле ввода этот штрих код попадает? И если добавлен /n то происходит переход на новый экран (если в конфигурации стоит галка Переключаться по окончанию ввода). Все верно?
Но если на экране не размещать поле ввода, а разместить только ШтрихКод и отсканировать, то ничего не происходит?
(64)
https://www.alcaidc.com/Public/newsinfo.aspx?emailID=494
Да совершенно верно.
Попробовал по другому, мануал от производителя
суффикс в шестнадцатеричном виде x0Dx0A
И тоже самое, с поллем ввода всё гуд , а вот со штрих кодом увы.
(64)Да именно так
(64) Заметил что , если просто дважды нажать Enter то происходить то же самое, первый раз ничего, но фокус смещается на кнопку «Назад», и второй раз вызывается первичный экран с фокусом на кнопке «Настройки»
(66) На экране где ШтрихКод — нет ни одного поля ввода?
Ещё заметил что хардварными кнопками (вверх, вниз, влево, вправо) не перемещается фокус между кнопками.
(68) Нету. Только надпись.
(70) Понятно, у вас enter что то перехватывает и дальше не отдает. Я сейчас сделаю по другому для этого случая и передам вам apk . Напишу в личку
(71)Спасибо большое!
(58) да, тут я согласен. у меня например есть ТСДшные формы ВМС работающие в размер экрана десктопа (РМ упаковщиков) и они сдизайнерены с размером шрифтов и кнопок и прочего — под экран десктопа — здесь про нормальное автомасштабирование элементов формы (из типа стандартного маленького прототипа) — речи нет (вдобавок функционал этого АРМ туппо на экране ТСД не прокатит — придется вместо одного экрана вязать несколкьо). и такой ТСДшный фейс в размере на экране ТСД — не будет ок. поэтому универсальностью здесь ну никак не получится. но по крайней мере хоелось бы если фейс нарисован на 240-320 — то на 480-640 — чтобы он именно масштабировался, а не растягивался.
все это, конечно, чисто интерфейсные хотелки, которыми должен заморачиваться тот, кто разрабатывает и отвечает только за интерфейсную часть. А таких выделенных спецов — я не встречал. Так что это не первостатейная такая уж задача. Но по поводу масштабирования есть 1-2 публикации на Ис приличные — посмотри у меня в группе «Адресный учет — пошерсти там если интерес будет
Как с Вами связаться через соц сети или мессенджеры?
Меня интересует проверка сборки заявок.
Пример кладовщик собрал заявку и надо перепроверить с помощью штрих кодов .
Можно ли чтобы он отсканировал штрих код товара и приложение показало, что именно этого товара в эту заявку надо 10 штук , затем сканирование следующий позиции и должно показать к примеру что надо 7 штук и тд. ? Желательно чтобы с фото товаром это показывалось .
(74) Сначала отвечу на вопрос: конечно можно! Конструктор для этого и создан. В операцию добавляете экран сканирования заказа (запоминаете заказ в переменной) и цикл «Сканирование товара -> показ количества и картинки». Можно еще в табличку «план-факт» отметку об уже проверенных выводить. Аналогичные примеры есть в демо базе. Ну и в инструкции это расписано. По поводу мессенджера — Вы меня добавили в друзья, теперь можете отправлять сообщения, я там напишу свой скайп и т.д.
Не отправляется Сообщения в личку. Пишет — «сообщение не отправлено. отложенная группа.»
Добавьте меня пожалуйста в телеграм — @turister
Ещё подскажите сможет ли Ваше приложение обмениваться информацией с сайтом moysklad.ru?
dev.moysklad.ru для разработчиков.
(77)
если они напишут обмен и логику обработчиков на своей стороне то да. Там REST API обычный. Но возможности конструктора реализованы на 1С.
(78)
Я не программист, а просто пользователь.
Вы могли бы дописать приложение чтобы Ваш конструктор работал с обменом данными информации через moysklad.ru?
(79) Приложение управляется с бекенда а не наоборот. Если программисты бекенда(мой склад) напишут серверное взаимодействие через rest API, то оно будет работать. Если не напишут то не будет. Я не могу повлиять на этот процесс так так отвечаю за фронт. Это приложение — это фронт и инструмент для разработчика который с него снимает необходимость заниматься мобильной разработкой, но логику обработчиков на сервере все равно прописывать надо. Надеюсь понятно написал.
Интересный проект. Думаю, многим пригодится.
Чем-то похож на коробочное решение от Axelot (конфа WMS: Управление складом). Там тоже все на веб-сервисах. И установлен нативный клиент под WinMobile и WinCE. Для Андроида вроде тоже делали.
Главный минус: если вай-фай на складе имеет несколько точек доступа, а бесшовный роуминг не настроен (задача не тривиальная сама по себе), то периодически при переключении теряются пакеты с данными. Это невозможно отследить и исправить. Как результат: на сервере событие уже произошло, на клиенте — нет. И наоборот. Итог: постоянные глюки и требование бесшовного роуминга.
Вышли из ситуации при помощи RDP и написанию своего АРМ для работы с теми бизнес-процессами, которые нам нужны. Минусы: нужны доп.лицензии 1с (они есть), плюсы — при потере связи (даже кратковременной) не теряются пакеты, клиенты продолжают работать после возобновления.
Не берусь судить, как работает тут. Но как минимум, тут клиент только под андроид. Если на предприятии много устаревших ТСД — покупать новое обрудование довольно затратно.
Но нет худа без добра: как только перешли на RDP, границы возможностей резко стали шире, поскольку после этого появились АРМы под другие базы данных. Плюс возможность работать в одной БД через COM-соединение.
Вообщем, буду следить за проектом. Тема очень интересная и я с ней тесно связан.
(81) Спасибо! Вариант клиента под RDP сейчас активно тестируется и готовится к релизу. Думаю к середине февраля будет. В итоге на одной «конфигурации клиента» будет работать экосистема клиентов: ТСД с 1С через RDP/или веб клиент + ТСД на андроид + обычные телефоны на андроид для других задач.
Добрый день, Дмитрий.
http://192.168.0.100/hs/simplewms . Используется Windows 10 Pro + IIS + 1с 8.3.14.1595
Скачал демо-конфигурацию, развернул веб-сервис, через браузер база работает, мобильный клиент сообщает: «Не удалось получить конфигурацию. Установите адрес веб-сервиса и код клиента». Но эти параметры установлены… Код клиента 5, адрес
В какую сторону копать ?.. Заранее спасибо за ответ
(83) Добрый день!Вы пропустили похоже имя сервиса. И логин/пароль пользователя 1С заданы? Если на устройстве открыть браузер и написать что то типаhttp://192.168.1.4:2312/TestWS/hs/simplewms/get_conf?code=5 (надо адрес ваш подставить) то должен возвращать конфу.
(83) У Вас пропущен корневое имя публикации конфигурации,
http://192.168.0.100/hs/simplewms
Ваш пример
Пример Дмитрия
http://192.168.1.4:2312/TestWS/hs/simplewms/
TestWS/ Это есть имя публикации, у Вас его нет, перед /hs/…
(84) (85)
Спасибо, помогло 🙂
Скажите пожалуйста. данная разработка поддерживает RFID считыватели в ТСД ?
Добрый день. Может ли мобильный клиент использовать GPS координаты, чтобы по ним определять адрес помещения ? У нас ОС находятся в помещениях у наших контрагентов, а им штрихкода не наклеишь 🙁
Спасибо
(87) Здравствуйте! К сожалению нет, но в планах есть. А какой у вас тип меток?
(88) Здравствуйте! Добавить можно, это не сложно. В следующем релизе добавлю.
Куда деньги отправлять? ;0)
(27)Подскажите, работу с алкоголем и табаком реально запустить через Ваше приложение? Приёмка, инвентаризация, отгрузка?
(149) Если с точки зрения организации процессов — то да конечно, это конструктор же на нем все можно организовать. Если речь о считывании датаматрикс, то zxing (компнента которая отвечает за считывание) эти штрихкоды считывает. Но я сам не пробовал, не было такого проекта. Ну а если вариант развертнывания через RDP то там считываение станартным драйвером т.е. тоже да.
(21) в адроесном хранении одна из фишек в том — что совершенно по-барабану где хранится шампунь.
28 ПОХОЖИХ (но разных) бутылочек с шампунями следует разложить на 28 РАЗНЫХ ячеек, чтобы в одной ячейке не лежали похожие товары. Храните в одной ячейке разнородные товары: яч1 = «шампунь1, твердое мыло1, щетка для вычесывания1, тапочки для тараканов1», яч2 = «шампунь2, твердое мыло2, щетка для вычесывания2, тапочки для тараканов2». Даже самое простое адресное хранение с грамотной работой «по бумаге» позволяет увеличить скорость сборки ~1.5-2 раза. У себя на ТСД тоже делал просмотр картинки товара — но никто этим не пользовался, за ненадобностью.
(155) Ниче ты запоздал с ответом)) За это время я уже прикрутил картинки и фотографирование и кучу всего. Так как клиент используется не только на складах, но и например в торговых залах в рознице, курьерской доставке, картинки безусловно нужны. А в этом конкретно случае — просто склад маленький и ниче не влезает. Это проблема, да. Ниче с этим не поделаешь.
(71) Здравствуйте, Дмитрий!!!!
У меня похожая ситуация. Через камеру сканирует отлично, а вот аппаратка не реагирует ни на какие символы. Использую типовой вариант приемки по Задаче. Можно пожалуйста мне тоже apk-шку для решения?
(159) Здравствуйте! Должно работать и так. У вас сканер передает суффиксы CR-LF в конце строки? На экране нет поля ввода?
(160) В настройках сканера суффиксы и префиксы отключены по умолчанию.
Есть возможность штатно передавать вместе со ШК (End charachter) такие символы как: Enter, Tab,
, … Сейчас стоит Null здесь.
Пробовал:
— в «постфикс» ставить #13
— в «End charachter» ставить Enter,
Не проходит. Установил «Блокнот». Сканирую. Появляются только 13 символов без каких либо знаков еще. Что добавить спереди или сзади, чтобы система перехватывала?
(161) добавить сзади (в end character)
или просто
или