(279) Здравствуйте! Ну это ошибка во время выполнения запроса, которая приводит к прерыванию запроса. Ошибка на стороне 1С. Скорее всего в той процедуре которую Вы вызываете из общего модуля. Там может быть я не знаю "в режиме клиента" а вы серверный вызов делаете. Все что угодно.
Ну надо отладкой пройти, отключить попытку/исключение. У меня в демке процедуры из общего модуля вызываются, в документации есть в разделе про отладку... Не знаю чё ей не нравится...
(282) Вот после этого шага управление в отладчик не возвращается, а на экране смартфона "Ошибка соединения с сервером". Попытку-Исключение закомментировал - ничего не изменилось.
(282) Кажется нашёл проблему: http сервису не понравилась одна из функций общего модуля (не относящаяся вообще к данному http сервису). Причём функция рабочая, используется в другом месте. Вынесу функции для simple wms в отдельный модуль тогда. Но всё-равно непонятно..
(285) Так она скорее всего с клиентским вызовом. Когда вы вызываете в веб сервисе -это сервер, он открывает модуль а там бац неизвестная клиентаская функция. Понятно что ему это не нравится. Так лучше не делать. Лучше разделять серверные и клиентские модули.
Ещё одна непонятка: при произвольном запуске экранов не работает центральная кнопка, ТаблицаСтрок заполнена, но при нажатии на кнопку таблица не открывается, при отключении произвольного запуска экранов кнопка работает.
(290) я проверил, да действительно при произвольном запуске не работает, потому что логика такая что при произвольном запуске самому надо определять что должно происходить: если используется стандартная нижняя панель то она просто генерит события CENTRAL_BUTTON, BACK_BUTTON либо пустое (для Далее) а разработчик для экрана уже сам прописывает какой экран показать, либо вообще отключить нижнюю панель и сделать свои кнопки. В этом и заключается "произвольность" . В демке есть Переключение экранов (стандартные кнопки) через Переменные.ShowScreen - это через он-лайн+ в этой же конфе есть примеры как в офлайне это делать - это мне кажется удобнее. Т.е. для данного случая надо сделать экран, сделать на нем вывод таблицы и прописать чтобы он запускался. Как то так...
Возможно ли реализовать следующий сценарий?
Сборщик товара на складе берет в работу одновременно 4 документа "Расходный ордер на товары" (РОТ).
Одна тележка поделеная на области, один круг по складу, в результате 4-е собранные заявки.
Видится это так:
-Стартовый экран с 4-мя кнопками.
-При нажатии на кнопку открывается список РОТ, документ берется в работу.
-Открывается экран в работе с таблицей заполненной товарами к отбору.
-Здесь работает либо сканер штрихкода, либо нажатие на строку таблицы для выбора количества и серии товара.
-Между экранами нужно переключаться для параллельной обработки соседних РОТ.
Я так понял, что обработка событий на строке таблицы доступна только в версии Про. Переключение между экранами тоже.
Каковы условия приобретения?
Может быть полностью сможете взяться за решение этой задачи? Конфигурация УТ11.
(292) Приветствую!
Если решать задачу "в лоб" то есть такие возможности обычной версии:
1) Есть кнопки на которых легко разместить 4 ордера. 4 кнопки влезут на любой экран. Удобно выбирать.
2) Есть выпадающий список. ИМХО выбор из таблицы не особо нужен да и не дает преимуществ. Тут ордера то будут только ненпринятые - их не должно быть много.
3) Можно пойти через сканирование документов
Если решать не только учетную задачу, а попытаться автоматизировать работу склада и помочь кладовщику то:
1) Нужно хотя бы общий список к отбору и чтобы система сама распихивала это по ордерам. Кладовщику в общем то это знать не надо
2) В WMS это делается выдачей заданий, задания оптимизируют работу. Возможно в УТ надо добавить какой то документ, благо расширения это позволяют и в этом документе будут строки с "товар"-"ордер" которые будут обрабатываться на ТСД.
Так что я не думаю что нужна про-версия)) Но если вдруг для других задач когда нибудь понадобится то условия приобретения- как у любой покупки в Google Play.
Хм... Разбираю демку. Странно, но не работает ни один из обработчиков ввода.
Любой тест связанный с обработкой валится на клиенте с ошибкой "Ошибка соединения с сервером".
Выше видел такую ошибку. Но это типовой тест, в модуль с веб-сервисами ничего не добавлял.
(294) Там были у людей ошибки изза того, что они в модуле который в веб сервисе вызывается клиентские методы использовали. Но я то этим не грешу вроде. А какая конфа в демке и какой процесс конкретно? Я проверю. И какая версия клиента?
Интересный поворот.
Версия 1.11.00 на Xiaomi Redmi7 нормально работает, а на древненьком планшете Samsung SM-T331 Андроид вер 5.1.1 не работает.
Валится с ошибкой "Ошибка соединения с сервером".
Одинаковая версия клиента, одинаковая 1С-ная часть.
Дмитрий, уточняю свой предыдущий вопрос.
Есть таблица на экране с колонками: Номер документа, Номенклатура, Серия, Количество.
Выбираем определенную строку, вводим фактически отобранное количество товара.
Такой вариант поддерживается только в "Про" версии? Правильно?
В обычной версии это реализовать нельзя?
(299) Выбор строки таблицы да только в Про. А зачем выбирать строку? Любую таблицу в WMS системах раскладывают на последовательность операций = последовательность экранов.На 1 экране 1 действие (выбор документа, ввод товара, ввод количество). Так устроены все нормальные WMS. Работать с таблицами на экране просто неудобно. Если вы отбираете товар в зону отбора на несколько заказов, вы ему так пишите на ТСД:иди за товаром А (экран сканирования товара),введи количество (еще экра), положи в секцию тележки 1 (сканирует штрихкод секции 1), бери товар А, положи в секцию 2, потом следующий цикл - достать из секций тележки - положить в ячейки зоны отбора. И это все чисто на сканировании. Вот это автоматизация.
Не работает режим принудительного запуска процессов через Переменные.Вставить("StartProcess","Новый процесс"); точнее заголовок экрана меняется, а сам экран остаётся прежним. При этом Переменные.Вставить("StartProcessHashMap","Новый процесс"); отрабатывает правильно, но неудобно тем, что управление потом возвращается в точку входа.
Дмитрий, добрый день! Есть возможность сделать авторизацию по штрих коду ? На одном ТСДшнике несколько человек и им неудобно постоянно перелогиниваться. Как быть в такой ситуации?
(326) Добрый день! Конечно. Можно сдеать экран с галкой "Логин" он будет запускаться при старте , там будет штрихкод и пишете ее в переменную user_barcode условно. И от этого экрана уже процессы простаиваете.
(328) добрый день! Ну да там автополе у меня должно быть. В контейнерах точно в остальных местах вроде тоже. и соответсвенно надо передавать html строку примерно так +49 / 30 123456789 Только надо сказать что распознавание у андроида телефонов несколько специфическое... почту, веб нормлаьно, а вот с телефонами не всегда.
Добрый день, пока работал с приложением на "своих" телефонах(Xiaomi Max2, Max3) все было хорошо. Пытаюсь запускать на "старых" телефонах, где-то вообще приложение не запускается, где-то вываливается при сканировании. Попробовал на samsung 51a, телефон вообще перегружается. Не пойму куда копать.
Ещё есть вопрос по поводу VPN. У меня подключение к серверу 1С происходит через VPN(L2TP). На некоторых телефонах всё хорошо, на некоторых Simple UI подвисает и теряет связь с базой. Может кто подскажет куда копать?
(340) самый лучший способ поставить в процессе Произвольный запуск экранов, тогда он сам не переключит пока вы сами не запустите нужный экран в обработчике. Это можно делать по условию.
(342) Добрый день! К сожалению в конструкторе экранов только Фотографирование - т.е. фото с камеры, не из галереи. А прицеплять из галереи есть в "документах" - а это Pro.
(343) Планируется такой функционал в обычной версии?
(345)Монтажник в полях производит установку, выбирает номенклатуру. Должен прикрепить фото отчёт. Не всегда фото получается с первого раза. Сейчас обычно делают несколько фото(в полях где возможно нет интернета) и выбирают лучшее.
(349) Да, ситуация понятна. Добавлю в след. релизе в обычную версию. Также раз это "в полях" и без интернета то есть такая штука как "документы", но это для Pro-версии. Также есть возможности для офф-лайн работы и фоновой отправки.
(350) Все делается без финансирования организации, пока без Pro версии. Про офлайн то же подумал. Создать таблицу с полем картинка, оффлайн процессом нафоткать туда отчётов(потом их чистить не забывать). Потом привязывать фото к документам в другом процессе. Но больно сложно, когда можно всё из галереи подгрузить.
(351) Я сделаю как и обещал по аналогии с камерой в переменную base64 в следующем релизе. Лучше вариант все таки писать в SQL а потом фоном отправлять в 1С или промежуточный бекенд. Например CouchDB ну или в Postgre.
(373) Да нет, проверил и так и так - все нормально. Принимаются, сохраняются. Попробуйте отладчиков перехватить что в переменной на сервис приходит. Должно быть base64
(353)Неожиданно все фото(что из галереи что с камеры), передаются нулевой длины.
(374)Извиняюсь, косякнул. Переменные в обработке ввода объявил, а не в "При запуске".
Добрый день!
Возникла новая проблема, вместо описания - видео во вложении.
Процесс "Новый заказ" состоит из двух "экранов":
В первом создается документ и выводится его номер.
Во втором в "цикле" производится сканирование товаров с последующей обработкой и т.п.
Как избавится от такого странного поведения как на видео?
(346) Здравствуйте! Я так понял проблема при перевороте? Да это известная проблема - просто запретите переворот экрана в настройках. И при "произвольном запуске экранов" скорее всего такого не произойдет.
Добрый день. Есть ли возможность выдать бип сигнал при каком либо триггере? По документации не нашел подобного. Пользователям не хватает возможности работать не глядя на экран, вроде как один тип бип сигнала все ок, продолжай дальше, другой предупреждает что считан некорректный штрихкод и тогда уже пользователь смотрит в экран терминала.
(354) здравствуйте! Это тестируется, будет в следующем релизе. Сейчас пока синтез речи есть- тоже полезная штука. Но мне люди тут написали что народ пугается, поэтому будут бипы.
Добрый день. Сделал базу в облаке, запустил PostgREST, передал в базу документ и товарный состав (через внешний источник данных). Есть печатная форма со штрихкодом, в нем 10-ричное представление GUID документа, это же представление выгружается в ключ таблицы. При попытке сделать GET к REST есть обращение, видно переданный параметр, ответ - документ не найден. Пробовал указывать %22 (кавычки), без %22 - результат одинаковый, только с %22 видно, что в запросе эти символы есть. Я в тупике, не подскажете, как правильно параметр передавать?
(357) Добрый день. API через инет доступно? В ответе что написано? "документ не найден" - такое не может PostgREST писать... Там в ответе что то должно быть - пустой массив или например ошибка по доступу или ошибка запроса. Постманом или в браузере проверьте
(358)Я пока в локалке тренируюсь, да, доступно, я в консоли, где запущен PostgREST вижу его реакцию. Про "не найден" тут да, это я в конфигурации так написал. Ок, дома проверю.
(359) Там кстати в Postgre права пользователю под которым REST запущен нужно давать не только на таблицы, а если есть в таблице последовательность - еще и на последовательность (Sequence) - там нумератор какой нибудь - это отдельный объект
(361) а что в теле ответа то? 200 то понятно, а что в самом ответе? В браузере в строке наберите он покажет. Там должно быть orders?order_id=in.('274647492906231711198300258196811101612')
(363) Ну норм. А в переменную что должно записываться? "Бюджет"? Тогда в ТЧ переменные добавьте var client. Надо всетаки как у меня в примерах по штрихкоду ищется потому что eq. в случае со строками не работает
(367) параметры -это переменные? в режиме запуска процесса из процесса? Или в какой ситуации? Если просто в одном процессе то стек переменных не меняется в принципе.
Например, на первом экране мы сканируем ШК документа и в переменные (id, client) записываем поля выборки, а на втором экране передаем одну переменную (id) в параметры запроса на состав документа, а другую (client) выводим надписью.
Дополнительно выложу сюда полный скрипт для SimpleUI и MicroWMS, они зависят друг от друга и даже сами по себе содержат запросы в неверном порядке.
(369) А можно поподробнее по поводу того в чем проблема ?
Например, на первом экране мы сканируем ШК документа и в переменные (id, client) записываем поля выборки, а на втором экране передаем одну переменную (id) в параметры запроса на состав документа, а другую (client) выводим надписью.
- ну да так и должно быть. А что не так?
Спасибо за скрипт! Не подскажете запросы какие в неверном порядке, чтобы я поправил... Там просто не всем надо MicroWMS а надо например толкьо магазин и документы, поэтому я так разделил.
(370)Все так=) Не очевидно было, как передается. Файлы сравнить смогу только в понедельник, пришлю. А вообще я вынес в начало все нумераторы, комментарии, к чему относится блок скриптов (wms/ui) остались на месте, сначала идут нумераторы, потом wms, потом ui.
Добрый день.
Возможен ли следующий алгоритм работы. Получаем таблицу из 1с(JSON) сохраняем данные в таблицу SQLLite
Дальше работаем в ОFF-line. Формируем данные в таблице SQLLite и передаем это в 1с.
Как сделать переменную таблицы для экрана понятно, но как это поместить в SQLLite ?
Можно ли это сделать через INSERT
(376) Добрый день! Думаю можно. 1. Взять строкаJSON из переменной и записать в SQL - это есть (в SQL тип - text). Можно и в константе хранить кстати 2. прочитать JSON стркоу из SQL есть 3. Загрузить JSON из строки чтобы с ним можно было работать - есть 4. функции для работы с JSON объектами - есть 5. отправить JSON в фоновом режие или чере переменные - можно. В общем вроде все есть.
(380) Не могли бы вы подсказать как это воплотить? Код для формирования штрихкода вставила в обработку ввода на экране. Но метод, который непосредственно отправляет на печать в 1с может запуститься только с клиента. Получается сформировать могу, но отправить на печать нет.
(381) А че 1С до сих пор только с клиента умет печатать? Вот дают. Но решения есть вот например https://infostart.ru/public/798396/ Ну либо в PDF и у меня есть пример в демке печати через PDF через сервис. Так получается с устройства печатется на принтер напрямую. Я правда ярлыки так не пробовал печатать но можно попробовать.
(382) А можно ли организовать печать через PDF напрямую, но без выбора принтера, а на тот, который по умолчанию? А пример в демке я видела, но, если честно, не смогла разобраться как запустилась процедура печати)
(383) это от менеджера печати на устройстве зависит. Приложение просто передает pdf ему. Там есть режим print вот это сразу менеджер печати, а режим view - это ридер pdf. Разобраться просто - в демке пример публикуете и печать просто работает. Там в примере сканируется штрихкод заказа покупателя (в заказе покупателя любом поставьте штрих код который есть под рукой), заказ находится печатается его печ форма и передается на устройстве устройство
(384)Подскажите, а как правильно настроить печать? Как обратиться и где к процедуре, которая сформирует печатную форму на стороне 1с, и самое главное где нужно поместить эту процедуру по формированию макета печати?
(386) Спасибо. С печатью разобралась. Все работает)
Не могли бы еще подсказать как настроить автоматический переход фокуса по окончании ввода значения в поле?
(387) У вас несколько полей ввода на экране и надо чтобы по окончанию ввода переходило на другое поле? Лучше так не делать а разнести по разным окнам. По окончанию ввода событие ввода происходит.
Добрый день,
Не подскажете, у меня ТСД Urovo при сканировании ничего не происходит, то есть программа не понимает что я сканирую, попробовал разные галочки в настройке приложения, но не помогло. возможно сталкивались с таким?
(389) Добрый день! Не установлен суффикс Ентер (/r или /n) в настройках скорее всего. Проверить можно так - в блокнот сосканировать пару кодов - должно переносить строку.
(390) Перевел сканер в режим номенклатуры, помогло! спасибо! Столкнулся сор следующей проблемой) выбрал операцию
"Приемка по заказу со сканом" Там состав из 2 этапов
1. Сканирование заказа (приемка), план-факт
2. Цикл товар-показ-количество приемка
Сканирую заказ, по кнопке план факт могу данные посмотреть, а вот с экрана Сканируйте заказ на этап 2 он не переходит не кнопкой вперед ни сам
(390) Подскажите, был ли у вас опыт тестов приложения через эмулятор? В моем случае использую NOX. На экране элемент штрихкод, хотелось бы для сканирования использовать обычный сканер, он у меня подключен, работает в разрыв с Enter в конце, проверено в блокноте, есть ли возможность запустить такую конструкцию? Или может вы подскажете, как по другому на компьютере тестировать приложение? Не переделывая все поля из типа шитрихкод в тип Надписи
И еще хотел уточнить, таблица план факта формируется https://prnt.sc/vh10q3 но при этом факта 13 не вижу https://prnt.sc/vh11t2
Не планируете открыть группу в телеграмм по разработке этой?
(393) Из эмуляторов я пользуюсь стандартными из Android SDK (AVD), но это неудобно - много ограничений и тормозят. Гораздо удобнее использовать старый ненужный телефон. Сканер по идее если как клавиатура должен работать в эмуляторе. Даже если на клавиатуре набрать цифры и нажать Энтер - работает.
Здравствуйте, подскажите пожалуйста в следующей задаче. Если в обработчике ввода прописан код поиска по ШК и по артиклу, то если считать неизвестный ШК, находит одну и ту же позицию, если убрать код поиска по артиклу, проблема уходит. Что стоит проверить в таком случае?
(395) Здравствуйте! "Находит одну и ту же позицию" - это судя по всему он ищет по пустому артикулу - т.е. у вас есть Переменная "артикул" ="" а в справочнике есть соотвественно какие то номенклатуры с пустым артикулом. Я не знаю как у вас размещено поле ввода артикула (просто в зависимости от подключения сканера, оно может и перехватывать ввод со сканера - т.е. туда будет попадать ШК а это нежелательно) но можно отделить события ввода по виду обработчика. Например в этом экране ниже артикул вводится в "окне диалога" (событие "onResult") , у штрихкода обработчик "listener"
Если Переменные.event = "onResult" Тогда
Если Переменные.Свойство("nom_list") Тогда
Переменные.Удалить("nom_list"); //Подчищаем переменную чтобы в следующий раз она знала что экран запущен 1й раз
КонецЕсли;
Если Переменные.Свойство("barcode") Тогда
Переменные.Удалить("barcode");
КонецЕсли;
Если Переменные.Свойство("nomRef") Тогда
Переменные.Удалить("barcode");
Переменные.Удалить("article");
Переменные.Вставить("unit","");
Переменные.Вставить("unirRef","");
Переменные.Вставить("char","");
Переменные.Вставить("charRef","");
Переменные.Вставить("ShowScreen","Показ товара, дополнительные поля");
КонецЕсли;
Если Переменные.listener="vision" Тогда
Переменные.Вставить("article",Переменные.art);
КонецЕсли;
КонецЕсли;
Переменные.Вставить("series","");
Переменные.Вставить("seriesRef","");
Если Переменные.Свойство("barcode") Тогда
З = Новый Запрос;
З.Текст = "ВЫБРАТЬ
| ШтрихКоды.Номенклатура КАК Владелец,
| ШтрихКоды.Характеристика КАК Характеристика,
| ШтрихКоды.Упаковка КАК Упаковка
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихКоды
|ГДЕ
| ШтрихКоды.Штрихкод = &Штрихкод";
З.УстановитьПараметр("Штрихкод",Переменные.barcode);
Выб = З.Выполнить().Выбрать();
Товар=Неопределено;
Если Выб.Следующий() Тогда
Товар = Выб.Владелец;
Переменные.Вставить("nom",Товар.Наименование);
Переменные.Вставить("nomRef",СокрЛП(Товар.УникальныйИдентификатор()));
Если ЗначениеЗаполнено(Выб.Характеристика) Тогда
Переменные.Вставить("char",СокрЛП(Выб.Характеристика));
Переменные.Вставить("charRef",СокрЛП(Выб.Характеристика.УникальныйИдентификатор()));
Переменные.Вставить("nom",Товар.Наименование+"/"+""+СокрЛП(Выб.Характеристика)+"");
Иначе
Переменные.Вставить("char","");
Переменные.Вставить("charRef","");
КонецЕсли;
Если ЗначениеЗаполнено(Выб.Упаковка) Тогда
Переменные.Вставить("unit",СокрЛП(Выб.Упаковка));
Переменные.Вставить("unirRef",СокрЛП(Выб.Упаковка.УникальныйИдентификатор()));
Иначе
Переменные.Вставить("unit","");
Переменные.Вставить("unirRef","");
КонецЕсли;
Переменные.Вставить("ShowScreen","Показ товара, дополнительные поля");
Иначе
Ошибка=Истина;
СообщениеОбОшибке = "Неизвестный штрихкод";
КонецЕсли;
КонецЕсли;
Если Переменные.Свойство("article") Тогда
Товар=Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",СокрЛП(Переменные.article));
Если Не Товар.Пустая() Тогда
Переменные.Вставить("nom",Товар.Наименование);
Переменные.Вставить("nomRef",СокрЛП(Товар.УникальныйИдентификатор()));
Переменные.Вставить("char","");
Переменные.Вставить("charRef","");
Переменные.Вставить("unit","");
Переменные.Вставить("unirRef","");
Переменные.Вставить("ShowScreen","Показ товара, дополнительные поля");
Иначе
Ошибка=Истина;
СообщениеОбОшибке = "Неизвестный артикул: "+СокрЛП(Переменные.article);
КонецЕсли;
КонецЕсли;