Файлы-процессы, динамическая работа с формами и многое другое в Simple UI. Ноябрь 2021

0. informa1555 2455 28.10.21 20:32 Сейчас в теме
Новый виток развития платформы дает новые возможности - теперь самостоятельными могут быть не только конфигурации, но и отдельные процессы в виде файлов, как "excel" или подобные форматы, только заточенные под оборудование, с питоном, VR и прочими плюшками. А предыдущий перевод конфигурации на JSON дает возможность динамически менять формы экранов и вообще все в конфигурации, включая обработчики. Статья - приложение к основной статье по Simple UI https://infostart.ru/public/1153616/

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. untru 13 06.11.21 22:51 Сейчас в теме
Динамические формы - это просто ШИК! Спасибо большое!
informa1555; +1 Ответить
2. kote 534 08.11.21 14:06 Сейчас в теме
(0) Добрый день!

Дмитрий, спасибо за Вашу разработку - очень интересно..

Сейчас пробуем её приспособить для своих нужд..
но никак не получается сделать звуковое уведомление
(конструкция Переменные.Вставить("beep", "500"); )

Не работает ни на ТСД (Honeywell EDA60K),
ни на телефоне (c Andnroid 10)..

Перерыли весь сайт с документацией - не нашли решения (https://uitxt.readthedocs.io/)..

Пожалуйста, подскажите как это можно исправить
или по другому заставить с сервера "beep"ать ТСД?

И, если можно, как использовать звуковые сигналы, встроенные в Android?

Читали, что вроде бы такая возможность есть - но как, непонятно..

Помогите, пожалуйста.
3. kote 534 08.11.21 15:31 Сейчас в теме
(2) Разобрался сам..

(конструкция Переменные.Вставить("beep", "500");

500 - это не длительность и не громкость, как я думал изначально,
это ИНДЕКС звуковой настройки генератора..

Если смотреть тут:
https://developer.android.com/reference/android/media/ToneGenerator
то этот номер соответствует вот этому звуку:

Constant Value: 93 (0x0000005d)

TONE_CDMA_ALERT_INCALL_LITE
Added in API level 4

public static final int TONE_CDMA_ALERT_INCALL_LITE
CDMA ALERT INCALL LITE tone: 587Hz 62ms, 784 62ms, 831Hz 62ms, 784Hz 62ms, 1109 62ms, 784Hz 62ms, 831Hz 62ms, 784Hz 62ms
6. informa1555 2455 08.11.21 16:54 Сейчас в теме
5. informa1555 2455 08.11.21 16:53 Сейчас в теме
(2) Добрый день! А там выбор типа бипа от "1" до "99" и в документации приведен список кодов в виде ссылки. Например Переменные.Вставить("beep", "42");. Либо просто напишите Переменные.Вставить("beep", ""); это будет бип по дефолту.
9. kote 534 08.11.21 17:13 Сейчас в теме
(5) Да, но хотелось страшный и ГРОМКИЙ звук выводить при ошибке..

Вот чего не хватает - управления громкостью, продолжительностью, количеством повторений..
Насколько я увидел - генератор тонов в Андроиде это может.
10. kote 534 08.11.21 17:15 Сейчас в теме
(9) да, для форумчан - вот список самых страшных и громких beep на моём устройстве:

// Переменные.Вставить("beep", "91"); //TONE_CDMA_ALERT_INCALL_LITE
		// Переменные.Вставить("beep", "42"); //TONE_CDMA_CALLDROP_LITE
		// Переменные.Вставить("beep", "87"); //TONE_CDMA_ALERT_AUTOREDIAL_LITE
		// Переменные.Вставить("beep", "93"); //TONE_CDMA_CALLDROP_LITE
		// Переменные.Вставить("beep", "91"); //TONE_CDMA_ALERT_INCALL_LITE
		// Переменные.Вставить("beep", "95"); //TONE_CDMA_CALLDROP_LITE
		// Переменные.Вставить("beep", "46"); //TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP
		// Переменные.Вставить("beep", "92"); //TONE_CDMA_EMERGENCY_RINGBACK
		// Переменные.Вставить("beep", "55"); //TONE_CDMA_HIGH_PBX_SLS
		// Переменные.Вставить("beep", "88"); //TONE_CDMA_ONE_MIN_BEEP
		// Переменные.Вставить("beep", "94"); //TONE_CDMA_SOFT_ERROR_LITE
		// Переменные.Вставить("beep", "15"); //TONE_DTMF_D
		// Переменные.Вставить("beep", "21"); //TONE_SUP_ERROR
		// Переменные.Вставить("beep", "86"); //TONE_CDMA_ALERT_NETWORK_LITE
		// Переменные.Вставить("beep", "85"); //TONE_CDMA_LOW_PBX_S_X4
		// Переменные.Вставить("beep", "14"); //TONE_DTMF_C
		Переменные.Вставить("beep", "68"); //TONE_DTMF_C
Показать
12. Val55 09.11.21 14:51 Сейчас в теме
(10) на практике удобно использовать элемент "Голос" и выдавать стандартные слова в случае успеха или ошибки. Например, при удачной операции "Плюс" или "Ок", при неудачной - "ошибка".
11. informa1555 2455 08.11.21 17:57 Сейчас в теме
(9) вибрацией усильте (vibrate) или синтез речи (speak)
4. kote 534 08.11.21 16:23 Сейчас в теме
(0) Еще один вопрос..

Конструкция:
		Переменные.Вставить("ShowDialog", ОписаниеОшибки); 
		
		Переменные.Вставить(
			"ShowDialogStyle",
			"{  ""title"": ""Ошибка!"", ""???content"": """ + ОписаниеОшибки + """,   ""yes"": ""OK"",   ""no"": ""Отмена"" }"
		);


Тоже на сайте найти не получается - заголовок title менять получается,
но сообщение в самом окне - нет..

пробовал подставлять content | message | msg | child -- но ничего не получилось..

Подскажите, пожалуйста, как вывести это окно с сообщение внутри?
7. informa1555 2455 08.11.21 16:58 Сейчас в теме
(4) Тут надо диалог с контейнером внутри. Пример есть в демке в примерах 4, "Вызов диалога по-новому". Там смысл в том что внутрь диалога можно запихнуть почти все что в экран можно разместить - надписи, поля ввода, картинки, диаграммы и т.д. Делается отдельный экранчи с процессом и указывается ссылка на него - она оттуда берет контейнер и размещает в диалоге. Если по простому то дилоги такие простые - надпись и кнопки можно переопределять. Елси надо контент менять то через контейнер.
8. kote 534 08.11.21 17:10 Сейчас в теме
(7)
Там смысл в том что внутрь диалога можно запихнуть почти все что в экран можно разместить - надписи, поля ввода, картинки, диаграммы и т.д. Делается отдельный экранчи с процессом и указывается ссылка на него - она оттуда берет контейнер и размещает в диалоге. Если по простому то дилоги такие простые - надпись и кнопки можно переопределять


Да, уже так и сделал. Спасибо!
13. kote 534 10.11.21 15:35 Сейчас в теме
Дмитрий, подскажите, а можно простым способом сделать так,
что пока запрос обрабатывается в онлайне
сканер ТСД НЕ срабатывал,
т.е. -- не реагировал на нажатия?
14. informa1555 2455 10.11.21 15:55 Сейчас в теме
(13) Добрый день! Вообще не думаю что это возможно. Для этого нужно чтобы было некое API со стороны железа с подобным функционалом. Я такое не встречал. Делайте ваш WMS быстрее, а лучше offline-first приложение с параллельной синхронизацией если 1Ска тормозит уж так.
15. kote 534 10.11.21 16:02 Сейчас в теме
(14) это понятно, спасибо

Хочется на случай проблем со связью
такую возможность иметь..

Мне кажется, что на стороне Андроид клиента
можно сделать так, что пока ответ не пришёл,
он выкидывал сообщение с сигналом -
предупредил пользователя, что нажатие не обработано
т.к. на предыдущее действие еще не получен ответ
16. informa1555 2455 10.11.21 16:12 Сейчас в теме
(15) так вы не переключайте экран пока ответ не пришел да и все))
17. kote 534 10.11.21 16:17 Сейчас в теме
(14) Дмитрий, еще спрошу -
вот у многих программ для ТСД есть вшитый набор звуков -
громких и выразительных - это явно не звуки андроида..

Мне кажется, это удобно - т.к. wav звучат
более похоже на самых устройствах,
чем те же звуки генератора..

Можете что-то подобное "вшить" в свою платформу,
на размере не должно сказаться..

.. и если будете делать - то сделайте возможность
для управления:
1) громкостью,
2) колич_повторов
3) Синхронностью/Асинхронностью воспроизведения
(т.е. либо код ждёт, когда музыка проиграется,
либо в отдельном потоке
18. informa1555 2455 10.11.21 16:49 Сейчас в теме
34. informa1555 2455 22.11.21 16:26 Сейчас в теме
(17) Пока не забыл, а то потом забуду. В новом релизе совместно с beep будет beep_duration и beep_volume. Хотя последняя излишня - она и так 100%
19. kote 534 16.11.21 14:56 Сейчас в теме
Дмитрий, добрый день.

Может подскажите (мне кажется Вы можете это знать в силу специфики работы),
нет ли какого общего ресурса,
где можно подсмотреть -- как какие сканеры настраивать
для работы через intent (для передачи ШК) - какие события слушать

У меня есть сканер
Атол Smart.Pro (Смарт.Про)

Никак не могу никак Вашу разработку на нём завести,
не получает система ШК и всё тут..
20. informa1555 2455 16.11.21 16:17 Сейчас в теме
(19) Добрый день! Общего нет - каждый производитель пудликует документацию, примеры кода и т.д. Тут про атолл точно писали, насчет модели не подскажу - в форумах "Вопросы/оветы по simpe ui" или в форуме к статье. Где то писали.
21. kote 534 16.11.21 20:10 Сейчас в теме
(20) Спасибо. Всё что нашёл - перепробовал - и отсюда и с формов, в т.ч. самого Атола.
23. informa1555 2455 16.11.21 21:27 Сейчас в теме
(21) а можно уточнить - как вы настройки забиваете - имя интента и имя переменной?
25. kote 534 17.11.21 18:18 Сейчас в теме
(23)
Имя интента (у Вас в меню - сообщение сканера):
com.hht.emdk.datawedge.data_string

(пробовал com.hht.datawedge.data_string)

Переменная сканера:
DATA_SCAN

(но пробовал разное тут - barcode тоже)

Длина значения - оставлял пустым
26. informa1555 2455 18.11.21 19:18 Сейчас в теме
(25) добрый день! Можете мне в личку написать? У меня возможно есть решение.
22. kote 534 16.11.21 20:13 Сейчас в теме
(20)

А нет ли софтины, чтоб ловила ВСЕ интенты и фильтровала те из них, где будет какое-то определенное значение?

Я бы тогда взял определенный ШК, который известен,
и ловил бы интенты, в составе которых есть значение из ШК?
24. informa1555 2455 16.11.21 21:28 Сейчас в теме
(22) там по принципу фильтра - то есть подписки на нужный интент. Так что наверное нет
27. san4o 20.11.21 13:30 Сейчас в теме
Дмитрий! Добрый день!

Только начал изучать Вашу замечательную разработку.
Возможности впечатляют!

Прошу подсказать, где посмотреть пример работы с картинками в режиме off-line?

Задача: на ТСД загружается база товаров (Наименование, Штрихкод).
Далее терминал работает автономно.
При сканировании показывается наименование.
Оператор делает несколько фотографий камерой терминала.
Фотография сохраняется на устройстве. Имя файла содержит штрихкод и номер фото.

Когда появляется возможность, 1С забирает фотографии с ТСД, обращаясь к устройству по http.

Сложность на этапе сохранения картинки на устройство и показа ранее сделанных фото.
28. informa1555 2455 20.11.21 13:55 Сейчас в теме
(27) Добрый день! Спасибо. Посмотреть можно например Примеры элементов 5 - Тест галереи в режиме файлов (этот режим я рекомендую как более быстрый), там же другие варианты. Либо Новая система хранения (NoSQL) - не обращайте внимания на NoSql - если у вас хранение в SQL то принцип тот же. Также можно использовать режим mm_local без галерии, но с галереей проще - она все делает и показ и предпросмотр и удаление.

И наконец вариант как отправить файлы через http если они записаны в режиме mm_local (если base64 то там и без примера все понятно) - это в "Новая система хранения (NoSQL)" там есть питоновский код отправки в Couch DB так вот там есть пару строчек где по path берется абсолютный путь к файлу и питон собственно получает в распоряжение файл, который может отправить как бинарник ну или в base64 закодить и передать. Чуть позже еще один примерчик подъедет в след. релизе.
29. san4o 20.11.21 20:28 Сейчас в теме
(28) Огромное спасибо!

Благодарю за оперативный развернутый ответ.
Есть из чего выбрать :)
30. RustIG 1693 22.11.21 09:13 Сейчас в теме
(0) красиво выглядит! виртуально из метавселенной!
31. informa1555 2455 22.11.21 09:44 Сейчас в теме
32. user806776 22.11.21 13:48 Сейчас в теме
Дмитрий, подскажите, как "подружить" обычное приложение и Simple UI в OnLine режиме? То,что будут вызываться серверные методы - это понятно, но как будет происходить загрузка конфигураций, ведь настройка вся написана на управляемых формах.
33. informa1555 2455 22.11.21 14:20 Сейчас в теме
(32) Добрый день! Ответил Вам в другой теме. Там проблем никаких нет, так как вся логика в модуле веб сервера и модулях и реквизитах справочников. Формы это просто формы и ничего более. Много кто тут на УПП прикркчивал, на УТ10 и т.д.
user806776; +1 Ответить
Оставьте свое сообщение
Вакансии
Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Бизнес-аналитик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Аналитик-архитектор 1С ЕРП (управленческого учета)
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день