0
Отвечен

Urovo DT30 как получить ШК как внешнее событие

БухСервис 11 месяцев назад в UROVO обновлен Вадим (Специалист службы поддержки по оборудованию) 1 месяц назад 44

ТСД Urovo DT30 требуется получить ШК как внешнее событие на мобильной 1С. Пробовал устанавливать компоненту RSDriver, копировал ее из макета конфигурации разработчика в макет своей программы, при выполнении ПодключитьВнешнююКомпоненту("ОбщийМакет.RSDriver", "RSDriver", ТипВнешнейКомпоненты.Native) пишет "Компонента RSDriver не загружена". Каким образом можно решить вопрос?

ХОРОШО, МНЕ ПОНРАВИЛОСЬ
Оценка удовлетворенности от БухСервис 11 месяцев назад
На рассмотрении

Добрый день.

Для этого ТСД нужен другой драйвер, пример можно посмотреть в конфигурации RSDriverAPI 0.0.9:

cf файл

apk файл.

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

Я заметил, возможно вам это как-то поможет, что если после "пикания" выводить какое-то сообщение (я в качестве теста выводил на экран сообщение с номером штрихкода) то нет описанного задвоения. Но это получается надо тогда каждый раз  после "пика" нажимать на ОК чтобы скрыть сообщение, то есть не так удобно работать конечному пользоваелю и конечно хорошо было бы это "победить". Возможно где-то какую-то задержку по времени поставить, раз с выводом собщения задвоение пропадает.

И еще один момент вылез неожиданный, это не к вам вопрос конечно, но вдруг вы что-то подскажите. Я при "пикании" вывожу опознанную номенклатуру в первой строке табличной части документа. То есть вместо НоваяСтрока = Объект.Товары.Добавить(); я делаю НоваяСтрока = Объект.Товары.Вставить(0); Делается это с той целью чтобы кладовщик видел последнюю сканированную номенклатуру (ведь на экране ТСД видно только две первых строки табличной части документа). Это им удобно и делалось по их просьбе. На старом ТСД я сделал как писал выше они сказали что все отлично, более мне не писали, на этом устройстве почему -то первая строка держится в окне пока в документе не более 49 строк,  после 49-ой строки на 50 строке вместо первой и второй строки табличной части отображется вторая и третья и далее они начинают каждый раз сдвигаться как пикаешь следующий штрихкод. Пробовал ЭтаФорма.Элементы.Товары.ТекущаяСтрока = ИндексПервойСтроки; (он всегда равен нолю если они не будут удалять строки руками) удивительно но не работает.

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

Попробуйте заменить драйвер OmnilDD.zip, удвоение при сканировании должно исчезнуть.

Вы не могли бы выложить обновленный RSDriverAPICore 0.1.0.cf, я оттуда скопировал себе макет "OIDD" в свою конфигурацию, или напишите пожалуйста каким образом использовать это файл zip

Стало лучше, но тем не менее бывают задвоения. Но я нашел способ справиться, поэтому этот вопрос более не актуален. Я сделал на форме документа реквизит "ВремяОповещени", там хранится дата и время последнего сканирования. Если разница дат менее 250 (подобрал это число в результате тестов) тогда игнорирую внешнее событие, считая его задвоением. В раком режиме ТСД работает прекрасно. На всякий случай, может кому пригодится выложу код

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
РазницаМеждуСобытиямиОповещения = ОКР((ТекущаяДата()-ЭтаФорма.ВремяОповещения)*1000, 0);
Если Источник = "ПодключаемоеОборудование"
И ИмяСобытия = "Barcode"
И ВводДоступен()
И РазницаМеждуСобытиямиОповещения>250 Тогда

ДобавитьШтрихКод(Параметр);

КонецЕсли;

При тестировании я записывал в табличную часть документа разницу между событиями оповещения, тестирование проводил несколько тысяч раз, в результатеи выяснил что разница в ошибочных событиях в диапазоне от 68 ло 226 (в моем случае). А "правильные" нажатия идут от 400 и то это очень быстро, поэтому ограничение в 250 было наиболее приемлемым.

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

Да, и одну строчку не докопировал

ЭтаФорма.ВремяОповещения = ТекущаяДата();

в самом конце процедуры чтобы перезаписать реквизит формы, но навкерное ее лучше поставить сразу после

РазницаМеждуСобытиямиОповещения = ОКР((ТекущаяДата()-ЭтаФорма.ВремяОповещения)*1000, 0);

Провел еще одно тестирование и поднял ограничение до 300, все таки иногда вылетают задвоения на 263, 266.

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

Добрый день! Для какой линейки устройство подойдет драйвер из RSDriverAPICore 0.1.0.cf?

То есть всем ТСД Urovo DT? Есть ли какие-то обновления драйвера?

Рассматриваем также Urovo i6310, есть ли на него подобный драйвер или демонстрационная конфигурация?

На 6310 так же будет работать. 

Спасибо! последний вопрос. при получении ШК через внешнее событие в начале штрих-кода отображается тип ШК, как я понимаю, (A, D ...). Есть ли фиксированный список префиксов идентификации типа штрих-кода?

Добрый день, тип штрихкода не передается, только сам штрихкод в виде строки

Это очень странно. Я использовал конфигурацию  RSDriverAPICore 0.1.0.cf,Форма тестирования сканера, а также выводил в сообщение Сообщить(Данные) в обработке внешнего события. При сканировании штрих-кода EAN-13 в начале штрих-кода фигурировала "A", потом тестировали другой штрих-код, ITF14 по виду, буда буква D в качестве префикса. При сканировании DataMatrix с этикетки в сообщении вывелось примерно следующее: "P910http://..."

Можете прислать примеры ШК. Как они выглядят в приложении сканер на рабочем столе ТСД и в приложении RSDriverAPI?

Я подозреваю, что установку префикса можно отключить где-то в настройках, однако не удалось найти где, и не хотелось бы отключать. Как раз нужны данные о типе штрих-кода.

Отсканировать ваши ШК не могу, но буквы A и D содержаться в ШК, это не тип штрихкода

Это очень похоже на EAN-13, что в принципе исключает наличие других символов кроме цифр.

Если посмотреть на расшифровку штрих-кода, то там как раз начинается с 4032..., а сканируется как A4032

Похоже на EAN13 но качество фото не позволяет мне отсканировать

К сожалению, у меня нет возможности сделать более качественные снимки. Однако это бы ничего не изменило, в этом штрих-коде точно нет A, как и в другом на котором пробовал. А в штрих-коде с упаковки ТСД (серийный номер наверное) точно нет префикса D. =)

скорее всего в настройках сканера стоят префиксы ШК, попробуйте зайти в настройки в приложении сканер и сделать сброс к заводским настройкам

Мне очень нужны эти префиксы. точнее нужно определять тип штрих-кода, так как в зависимости от этого работа с ШК идет по разным веткам. Раз есть возможность идентифицировать тип ШК еще на уровне сканирования, необходимо этим воспользоваться. Программно невозможно отличить QR, DataMatrix, GS1 DataBa. У них одинаковая структура. 

В любом случае наш драйвер возвращает строку, ту же которая отображается в приложении сканер

Да, так и есть. У меня нет претензий к драйверу, он прекрасно работает, спасибо. Вопрос только как найти список этих префиксов. Вопрос непосредственно к сканирующему модулю Zebra SE4710. как по префиксу идентифицировать тип штрих-кода?

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

Где можно просмотреть список этих префиксов? Как по префиксу определить тип ШК??

Вы префикс выставляете сами и он для всех ШК одинаковый. 

Этот префикс всегда разный в зависимости от типа штрих-кода!!!

Пришлите нормально фотографии штрихкодов. 

Это скрин программы сканирования

Это увеличенная фотография

scanner_property.xml

Этот файл поместите в корневую папку с папками.

Зайдите в приложение сканер и нажмите Import Profile

Сервис поддержки клиентов работает на платформе UserEcho