Штрихкод GS1-128 и ошибка Текст XML содержит недопустимый символ в позиции 16
Добрый день.
Столкнулся с проблемой:
не сканируется GS1-128 на сканере Datalogic на любой типовой конфигурации, любой версии выдает ошибку:
Текст XML содержит недопустимый символ в позиции 16
Выяснил что это происходит если в штрихкоде присутствует символ FNC1.
Сканер, как и положено по стандарту передает FNC1 как GS (Символ(29)) - который является непечатаемым и 1С сразу валится с ошибкой.
Другие сканеры его возможно подменяют на другие печатаемые символы или вообще его вырезают.
Насколько я понял например Honeywell на подменяет его F8.
Но что делать с Datalogic?
Кто нибудь сталкивался?
Столкнулся с проблемой:
не сканируется GS1-128 на сканере Datalogic на любой типовой конфигурации, любой версии выдает ошибку:
Текст XML содержит недопустимый символ в позиции 16
Выяснил что это происходит если в штрихкоде присутствует символ FNC1.
Сканер, как и положено по стандарту передает FNC1 как GS (Символ(29)) - который является непечатаемым и 1С сразу валится с ошибкой.
Другие сканеры его возможно подменяют на другие печатаемые символы или вообще его вырезают.
Насколько я понял например Honeywell на подменяет его F8.
Но что делать с Datalogic?
Кто нибудь сталкивался?
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Как вариант, но не нашел такой раздел в документации. Возможно плохо искал. Внимательнее ещё раз пройдусь. 1с тоже никак эту тему не освещает в документации.
Вопрос: подход с перенастройкой впринципе правильный?
На практике, как сканируют эти штрих-коды, с доп. настройками сканера или без?
Вопрос: подход с перенастройкой впринципе правильный?
На практике, как сканируют эти штрих-коды, с доп. настройками сканера или без?
(8)Это наверное единственный вариант. Спасибо. Вообще 1с имеет очень скудные возможности по работе со штрих-кодами данных типов, особенно импортного товара. Не работает с управляющими символами, и даже дату считывает не по международным стандартам, а по своим каким то.
(11) Весь прикол в том, что мой Алладин "лампу" DataLogic QuickScan I QBT2400 не находит ни в эмуляции по COM ни как "клавиатуру"... Хотя сканер работает.
По теме: посмотрел как разработчики в разных конфигурациях исправляют ошибку, в основном:
СимволGS = Символ(29);
Для Каждого ТекущаяСтрока Из ТабличнаяЧасть Цикл
ТекущаяСтрока.КодМаркировки = СтрЗаменить(ТекущаяСтрока.КодМаркировки, СимволGS, "");
КонецЦикла;
По теме: посмотрел как разработчики в разных конфигурациях исправляют ошибку, в основном:
СимволGS = Символ(29);
Для Каждого ТекущаяСтрока Из ТабличнаяЧасть Цикл
ТекущаяСтрока.КодМаркировки = СтрЗаменить(ТекущаяСтрока.КодМаркировки, СимволGS, "");
КонецЦикла;
Вообще с недопустимыми символами можно бороться групповым изменением реквизита используя
алгоритм:
алгоритм:
ТекНаименование = Объект.Наименование;
НедопустимыйСимвол = НайтиНедопустимыеСимволыXML(ТекНаименование);
Пока НедопустимыйСимвол > 0 Цикл
ЛеваяЧасть = ?(НедопустимыйСимвол = 1, "", Лев(ТекНаименование, НедопустимыйСимвол-1));
ПраваяЧасть = ?(НедопустимыйСимвол = СтрДлина(ТекНаименование), "", Сред(ТекНаименование, НедопустимыйСимвол+1));
ТекНаименование = ЛеваяЧасть+"_"+ПраваяЧасть;
НедопустимыйСимвол = НайтиНедопустимыеСимволыXML(ТекНаименование);
КонецЦикла;
Если Объект.Наименование <> ТекНаименование Тогда
Объект.Наименование = ТекНаименование;
Объект.Записать();
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот