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

03.11.21

Разработка - Мобильная разработка

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

Динамическое изменение/генерация экранной формы.


Вся конфигурация, и экран не исключение, представляет из себя JSON-объект, поэтому можно динамически (т.е. не постоянно, а только на момент вызова) менять содержимое экрана – добавлять кнопки поля ввода и т.д., просто изменяя JSON-структуру экрана. Нет необходимости в каких-то специальных методах – только JSON. Также экран может быть полностью пустой и генерироваться полностью в «При открытии». Это не так удобно, как в конструкторе, но в некоторых случаях (например добавить кнопку в зависимости от условия) это сделать проще чем рисовать отдельную форму. Также, может быть, неких элемент наследования – взяли форму, что то убрали, что то добавили не меняя исходную форму.
JSON можно формировать любым способом – заготовить заранее варианты, менять существующий. Для применения конечного варианта используется команда setJSONScreen В качестве параметра передается JSON-структура

 


Командой getJSONScreen в переменную JSONScreen можно запросить исходную структуру текущего экрана. Это удобно когда нужно чтото поменять – например убрать какие то элементы
В демо базе, в конфигурации «Примеры элементов 5» есть пример динамического добавления кнопок. Тут сначала читается JSON-структура экрана,  а потом копируется одна кнопка и делается 5 кнопок и применяется:


Динамическое изменение конфигурации на лету


Можно менять конфигурацию динамически, то есть на время вызова до следующего считывания – добавлять или убирать процессы, заменять обработчики, формы – полностью все что есть (включая например пример из предыдущего абзаца). То есть конфигурация будет работать с вашими изменениями до тех пор, пока не загрузится из источника. Но дело в том, что изменения можно устанавливать и «При запуске», таким образом изменения будут столько сколько нужно.  Это может быть полезным для того чтобы к примеру отключить из меню какие то процессы, не доступные пользователю.

Команды:

getJSONConfiguration  - считывает в переменную _configuration текущую конфигурацию
setJSONConfiguration - применяет измененную конфигурацию немедленно.

 

Файлы-процессы .suip

 

Платформа Simple UI поддерживает разные варианты хранения и транспортировки данных – в SQL устройства, в NoSQL устройства, в документах и непосредственно на сервере при он-лайн варианте работы (хранение) и различные виды запросов, он-лайн команды, обмен файлами, документами (транспорт). Сейчас добавляется новый вид хранения/транспортировки – «файлы-процессы».  Это текстовый файл, состоящий из JSON-строки который включает в себя все необходимое для работы:
•    Структуру процесса, со всеми обработчиками и т.д.
•    Данные процесса, которыми он может пользоваться и менять, записываю туда же – в файл
•    Необходимую информацию для отображения внутри системы – дата последнего изменения, обложка и т.д.
То есть данные и механизмы ввода и обработки данных инкапсулированы в одном объекте.

Таким образом – это как бы самостоятельная мини-конфигурация сразу с данными и всем необходимым в виде suip-файла которую можно послать получателю, который не имеет доступа к вашему веб-сервису и каки либо других настроек, а просто может открыть, поработать и закрыть файл сохраним в свою очередь свои данные и отправить пользуясь инфраструктурой своего устройства. Это можно сравнить с Excel с макросами или PDF-формами и чем то подобным, но с возможностями Simple UI – работа с оборудованием, питоном, дополненной реальностью, AI-штуками и т.д. 
Использование существующей инфраструктуры хранения и доставки – это главное удобство такой архитектуры. Например можно использовать мессенджеры или почту где помимо самого suip-файла может быть в произвольном виде описаны пояснения по работе процесса, получена обратная связь
Файлы можно передавать различными способами – как через Интернет, так и например через Bluetooth, при этом не надо пробрасывать вебсервис основной системы наружу.

Работа с suip-файлами

В файлы процессы можно паковать как обычный процесс (с экранами) так и ActiveCV процесс
Регламентируется наличие двух обязательных объектов в корне JSON:
"SimpleUIProcess" – структура процесса
«data» - все данные

Пример файла-процесса:

 

Также в файл сами добавляются поля last_update и last_update_millis – даты последнего изменения файла, а также можно задать html обложку caption для отображения в программе на закладке «документы». Если ее не задать в файле она будет сгенерирована автоматически по корневым полям объекта data. Эти поля касаются отображения в списке последних открытых файлов и необязательны.

Файл можно создать предварительно из бек-системы или «открепить» обычный процесс, сохраним данные в data.

Создание файла в 1С на примерах двух процессов


 

Пример 1. Создаем файл-процесс со специальными ценами для контрагента в ActiveCV, посылаем ему по WhatsApp , он открывает и смотрит в дополненной реальности «свои» цены. Никаких настроек и доступов со стороны приложения или 1С не нужно.


Для этого в конструкторе в Процессе и Операции ActiveCV предусмотрены кнопки «Выгрузить основу процесса». Она копируют в буфер обмена JSON- содержимое которое должно быть в SimpleUIProcess и остается его только вставить в макет обработки. 


По сути вся обработка записывает поля секции data и затем компонуется файл из SimpleUIProcess и data.
Важно! При открытии файл-процесса содержимое data копируется сразу в Переменные (или hashMap) при этом сам объект data доступен в pyton- обработчиках сразу как словарь _data т.е. его не нужно доставать из строки в json и писаnь обратно. Поэтому для данного примера достаточно сразу определить объекты green_list и object_info_list – они просто сразу запишутся в переменные и будут прочитаны ActiveCV. Получается для данного примера программирования со стороны обработчиков не нужно – только подготовка файла. В комплекте разработчика есть примеры обработок выгрузки процессов.

 

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

Тогда у процесса появятся кнопки Сохранить и Отправить


Тут уже используется запись в файл. Товары передаются в виде отображаемой на экране таблицы, а дополнительные данные которые не отображаются (штрихкод) просто добавлены в массив rows. Как вариант можно добавить отдельную структуру для хранения плана и факта, но нет необходимости в данном контексте. Никаких дополнительных действий с _data делать не нужно – она сама записывается в файл.

 

Создание файла на устройстве из процесса.

 


Пример 3. Из шаблона «Осмотр ОС» пользователь производит осмотр основного средства, делает фотографии а результат сохраняется в файл или сразу отправляется получателю.

У процесса добавляются галочка «Самостоятельный режим» что дает возможность сохранения самого себя в файл и сохранения data. 

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

Организуем в «При открытии» пустые поля ввода  и настраиваем качество фотографий

Остальные поля записываются в обработчике

Результат файл – с упакованными данными и фотографиями, который можно открыть позже или отослать в основную базу.

SimpleUI python Android

См. также

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38188    108    161    

201

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

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

3000 руб.

03.12.2018    59284    192    103    

172

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

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97206    586    189    

321

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

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

3450 руб.

28.04.2023    9465    15    0    

9

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

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4641    1    0    

6

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1212    6    informa1555    1    

13

Мобильная разработка Мобильная платформа Абонемент ($m)

В этом релизе собрано много нового из области интерфейса, связи, хранения и важные новые способы управления. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

25.06.2024    2596    28    informa1555    0    

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

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

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

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

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

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

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

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

Помогите, пожалуйста.
3. kote 537 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 2715 08.11.21 16:54 Сейчас в теме
5. informa1555 2715 08.11.21 16:53 Сейчас в теме
(2) Добрый день! А там выбор типа бипа от "1" до "99" и в документации приведен список кодов в виде ссылки. Например Переменные.Вставить("beep", "42");. Либо просто напишите Переменные.Вставить("beep", ""); это будет бип по дефолту.
9. kote 537 08.11.21 17:13 Сейчас в теме
(5) Да, но хотелось страшный и ГРОМКИЙ звук выводить при ошибке..

Вот чего не хватает - управления громкостью, продолжительностью, количеством повторений..
Насколько я увидел - генератор тонов в Андроиде это может.
10. kote 537 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 2715 08.11.21 17:57 Сейчас в теме
(9) вибрацией усильте (vibrate) или синтез речи (speak)
4. kote 537 08.11.21 16:23 Сейчас в теме
(0) Еще один вопрос..

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сложность на этапе сохранения картинки на устройство и показа ранее сделанных фото.
28. informa1555 2715 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 1747 22.11.21 09:13 Сейчас в теме
(0) красиво выглядит! виртуально из метавселенной!
31. informa1555 2715 22.11.21 09:44 Сейчас в теме
32. user806776 22.11.21 13:48 Сейчас в теме
Дмитрий, подскажите, как "подружить" обычное приложение и Simple UI в OnLine режиме? То,что будут вызываться серверные методы - это понятно, но как будет происходить загрузка конфигураций, ведь настройка вся написана на управляемых формах.
33. informa1555 2715 22.11.21 14:20 Сейчас в теме
(32) Добрый день! Ответил Вам в другой теме. Там проблем никаких нет, так как вся логика в модуле веб сервера и модулях и реквизитах справочников. Формы это просто формы и ничего более. Много кто тут на УПП прикркчивал, на УТ10 и т.д.
user806776; +1 Ответить
Оставьте свое сообщение