Завершен

Code128

Александр 13 лет назад 31
Здравствуйте!Терминал Casio it-800r-15.Загрузил стандартную конфигурацию.Считываю штрихкод через Собрать штрихкоды (быстрая).С EAN13 проблем нет, code128 вообще не читает, code39 читает без последнего символа(крайний справа) или вообще не читает.Штрихи печатаю из Типовой конфигурации 1С УТ 8.1 Печать Этикеток.
Здравствуйте!Терминал Casio it-800r-15.Загрузил стандартную конфигурацию.Считываю штрихкод через Собрать штрихкоды (быстрая).С EAN13 проблем нет, code128 вообще не читает, code39 читает без последнего символа(крайний справа) или вообще не читает.Штрихи печатаю из Типовой конфигурации 1С УТ 8.1 Печать Этикеток.

1. проверьте, что code128 напечатан верно, без обрезания краев. второе, что может помочь - это выйти из Mobile SMARTS, запустить Laser Scan Read и поправить в нём настройки считывания code128 и EAN128.

2. последняя цифра - это вероятнее всего чексумма, которая может быть в штрихкоде (может не быть) и иногда печатается снизу (иногда не печатается). хотя чексумма и является частью штрихкода, она специально нами обрезается, потому что в практическом плане это линий символ - если вы хотите напечатать какие-нибудь коды или артикулы товаров, допустим "RM0009-01", то в штрихкод автоматом добавится еще и чексумма, какое-нибудь "W", на которую вы не закладывались, и штрихкод получится "RM0009-01W". а если вы измение артикул в системе на "RM0009-01W", то штрихкод будет уже "RM0009-01WG" и т.д.
Края не обрезаны, все красиво ровно, но вот что именно нужно поправить в настройках code128?Я уже что ни пробовал ничего не помогает.Или в code39, также что ни менял в настройках, последний символ не хочет читаться.Лучше бы я сам обрезал эту чексумму:)
мы в компании считаем, что EAN13 и CODE39 наиболее распространены, и все оптимзации/заточки программы идут только для этих двух кодов. т.е. если в нашей программе и есть какое-то колдовство над кодами, то оно касается только этих двух - разные там лишние/нелишние нули в начале, чексуммы и пр. поэтому:

Края не обрезаны, все красиво ровно, но вот что именно нужно поправить в настройках code128?Я уже что ни пробовал ничего не помогает.

Mobile SMARTS вообще никак не трогает настройки code 128 - вот как они были настроены - с завода по умолчанию или в какой программе другой - так оно и будет работать. прежде всего следует посмотреть, а сканируется ли вообще code 128 хоть где-нибудь. стоит ли в настройках сканера галочка, разрешающая его считывать. если code 128 сканируется в Laser Scan Demo, но не сканируется в нашей программе - напишите, мы подумаем, что тут можно сделать.

Или в code39, также что ни менял в настройках, последний символ не хочет читаться.Лучше бы я сам обрезал эту чексумму:)

а вот у code39 Mobile SMARTS всегда отрезает чексумму на всех поддерживаемых сканерах, что бы там ни было настроено. потому что было решено, что для большинства применений так оно правильней. если вам кровь из носу нужно уметь управлять этой настройкой для CASIO, то мы можем вынести её куда-нибудь.
Мне вообщем то все равно какой штрих использовать, code39 или code128…мне просто нужно закодировать буквенно-цифровую информацию.Значит я пробовал считывать через Barcode Demo code128 считывается без проблем, не считывается только мой собственный.Возможно ли это потому что напечатан был на лазерном принтере на обычную бумагу?С другой стороны также напечатанные EAN13 считываются без проблем.Code39 считывается странно, если я кодирую 8 символов(со звездочками 10), то считывается без проблем(в barcode demo полностью , в mobile smarts без одного символа).Если кодирую 9 символов, то не считывается нигде!Так что ним проблема не только в том что вы последний символ отрезаете.
Значит я пробовал считывать через Barcode Demo code128 считывается без проблем, не считывается только мой собственный.

либо неправильно формируете code128, либо он всё-таки обрезается у вас. например, используете популярную для 1С компоненту формирования штрихкодов, в которой в старой версии code128 формировался неправильно. или используете штрифт для code128, но забываете, что в нём, как и в code39, тоже есть свои обязательные старт-стоп символы.

Code39 считывается странно, если я кодирую 8 символов(со звездочками 10), то считывается без проблем(в barcode demo полностью , в mobile smarts без одного символа).Если кодирую 9 символов, то не считывается нигде!

еще раз обратите внимание: Mobile SMARTS обрезает не последний символ. Mobile SMARTS обрезает чек-сумму, если таковая есть в штрихкоде. получается, что в вашем 8ми-значном штрихкоде последним знаком идет правильная чексумма. а в вашем 9ти значном - неправильная чексумма.
Ну да я использую стандартную компоненту 1С из УТ 10.3.13.2 на платформе 1С 8.1.Это вроде последний релиз на этой платформе.И если code128 печатается не правильно, тогда хотелось бы победить code39 хотя бы.Или получается тогда что и code39 тоже неправильно печатается из 1С?Я так понял что он печатает вообще без чексуммы штрих, а mobile smarts нужна чексумма.Потому иногда последний символ совпадает и тогда штрих читается иногда нет.Правда я в настройках ТСД ставил читать без чексуммы, результат тот же.
Или получается тогда что и code39 тоже неправильно печатается из 1С?

нет, code39 она печатает правильно.

Я так понял что он печатает вообще без чексуммы штрих, а mobile smarts нужна чексумма.

Mobile SMARTS не нужна чексумма. печатает оно чексумму или нет можно понять, разобравшись с параметрами компоненты. еще, возможно, Laser Scan Demo пишет что за код прочитала и есть ли там чексумма (нет сейчас CASIO под рукой посмотреть).

Потому иногда последний символ совпадает и тогда штрих читается иногда нет.

Mobile SMARTS не нужна чексумма. но если печатать без чексуммы, и при этом последний символ кода случайно совпадет с чексуммой остатка штрихкода, то этот последний код будет обрезан.

Правда я в настройках ТСД ставил читать без чексуммы, результат тот же.

Mobile SMARTS не сама обрезает чексумму. она вот как раз просто при запуске проставляет в настройке сканера "не передавать чексумму" - и всё.
Laser scanner demo пишет какой код считал, то есть то что я закодировал, окруженный звездочками, Тип штриха то есть Code39, а также длину что считал, то есть 10(8 код и 2 символа "*").Еще End inf =0.Еще само считывание штриха каккое то напряженое что ли, может с первого прочитывания не считать, держать лазер надо долго.EAN13 считывает мгновенно, едва навожу луч.Еще вопрос, влияет ли размер штриха?Я печатал этикетку размером по умолчанию в 1с, 38х20мм.
Laser scanner demo пишет какой код считал, то есть то что я закодировал, окруженный звездочками, Тип штриха то есть Code39, а также длину что считал, то есть 10(8 код и 2 символа "*").Еще End inf =0.

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

Еще само считывание штриха каккое то напряженое что ли, может с первого прочитывания не считать, держать лазер надо долго.EAN13 считывает мгновенно, едва навожу луч.Еще вопрос, влияет ли размер штриха?Я печатал этикетку размером по умолчанию в 1с, 38х20мм.

в code39 на считывание влияет ширина самого узкого штриха (хотя бы 0,2 мм) и правильное (1:2,5 - 1:3) соотношение ширины самого тонкого к самому толстому штриху. а сколько это в ширину не важно.
[img]http://img5.tempfile.ru/10018/15cf0701b6/0f3d1b8a50ce39e20e623b0a.jpg[/img]
[img]http://img7.tempfile.ru/10018/1521463846/7527f3b46ce5af5eaad295cf.jpg[/img]

В принципе щас Laser Scan Demo читает оба штриха правильно, но как то капризно, луч надо на определенном расстоянии держать:)..И в обоих случаях mobile smarts режет последний символ, то есть выходит либо *C1-1-3-*, либо *C22-2-2-*.
очень мелкие картинки получились - ничего не видно - у нас можно скриншоты до 2 Мб постить.
это нормальные code39 коды, всё идеально, чексумм нет. правда, фотосканером они читаться почти не будут - только лазерным или ccd. почему Mobile SMARTS на вашем CASIO такое обрезает - совершенно загадочно. если у вас фотосканер, то там вообще интеграции со сканером нет - просто запускается Image Read Demo.

во вложении - вариант библиотеки для лазерного сканера без обрезаний и проверок. нужно положить на терминал в папку программы поверх старой.
Вроде сделал все правильно, скачал, вытащил из архива, кинул на Терминал в папку \Mobile smarts поверх старой, потом запустил Mobile smarts и все осталось как было, режет последний символ…
как это выглядит - "режет последний символ"? оно никогда ничего не резало, просто выставляло сканеру "не передавать чексумму" - теперь не выставляет. расскажите конкретно, как это выглядит. потому что скорее всего дело вообще не в штрихкоде и не в обрезании.
Вот исходя из тех штрихов которые я присылал, mobile smarts выдает *C22-2-2-* или *C1-1-3-*.Не хватает одного символа справа.Laser scan demo выдает все полностью.
да, но куда именно выдает? если это код ячейки - может это просто форматирование текста для вывода так настроено? в каком окне и как именно он это выдает?
Я пробовал в стандартной конфигурации любой пункт.Да это код ячейки, в стандартной конфигурации везде только штрих товара вводится, пробьовал вместо товара.Может быть действительно а этом проблема?
наврядли в этом проблема. во вложении - новая DLL, которая будет писать в errors.log, что приходит со сканера. нужно посканировать и посмотреть.
Попробовал, вот то что в логе после считывания штриха в Собрать ш-коды(быстрая).


20.01.2011 19:48:55 Error: MainApp.CheckUpdate WebException: Нельзя показать сообщение об ошибке, так как не удается найти содержащую его дополнительную сборку ресурсовв System.Net:HttpWebRequest:finishGetResponse()
в System.Net:HttpWebRequest:GetResponse()
в System.Web.Services.Protocols:WebClientProtocol:GetWebResponse()
в System.Web.Services.Protocols:HttpWebClientProtocol:GetWebResponse()
в System.Web.Services.Protocols:SoapHttpClientProtocol:doInvoke()
в System.Web.Services.Protocols:SoapHttpClientProtocol:doAsyncInvoke()
at WorkItem.doWork()
в System.Threading:Timer:ring()

20.01.2011 19:48:56 Error: DataExchanging.LoadEnvironment function: Нельзя показать сообщение об ошибке, так как не удается найти содержащую его дополнительную сборку ресурсовв System.Net:HttpWebRequest:finishGetResponse()
в System.Net:HttpWebRequest:GetResponse()
в System.Web.Services.Protocols:WebClientProtocol:GetWebResponse()
в System.Web.Services.Protocols:HttpWebClientProtocol:GetWebResponse()
в System.Web.Services.Protocols:SoapHttpClientProtocol:doInvoke()
в Cleverence.Warehouse.Compact:DataStorage:GetEnvironment()
в Cleverence.Warehouse.Compact:DataExchanging:LoadEnvironment()
в Cleverence.Warehouse.Compact:MainApp:Initialize()
в Cleverence.Warehouse.Compact:BaseForm:.ctor()
в Cleverence.Warehouse.Compact:Start:Main()

20.01.2011 19:49:07 OnScan(*C1-1-3-*)
ну вот значит уже от сканера приходит обрезанным. посмотрите в Laser Scan Read настройки "максимальная длина штрихкода" и "передавать start/stop символы" для code39
А чем отличается Laser Scan Demo от Laser Scan Read???Просто в последнее приложение я вообще зайти не могу, повисает на нем.А потом и Laser Scan Demo при запуске выдает ошибку "Failed to connect to the scanner".И спасает только перезагрузка тсд.И повторяю в Laser Scan Demo у меня все считывает правильно.А в scanner settings в code39 стоит максимальная длина по умолчанию 52.
любую из трех программ: Laser Scan Demo, Laser Scan Read или Mobile SMARTS, - нельзя запускать одновременно. они все пользуются сканером, а пользоваться сканером может только какая-то одна программа. Mobile SMARTS тоже бы зависал, но он находит эти штуки в памяти и выбивает их, чтобы занять сканер.

вообще это какая-то серьезная ошибка уже. со сканера код приходит обрезанным. почему это так - загадочно. единственный способ решить проблему - это мы будем выкладывать сюда разные сборки DLL, которые по-разному настраивали бы сканер и смотреть, что получается.
Да я одновременно их и не запускаю.Laser Scan Demo все же правильно считывает штрих.Потому наверно на тсд грешить тоже не правильно.Причем второй тсд также подвисает на Laser Scan Read.Вобщем жду ваших сборок dll, сам уже в отчаяньи…
Mobile SMARTS можно запускать в любой момент - он не повиснет.
Laser Scan Demo нельзя запускать одновременно с Laser Scan Read

терминал, конечно, не при чем.

первая DLL - в предыдущем сообщении
Попробовал эту dll.Тоже самое.
Опять все тоже….А у этих библиотек размер должен быть один и тот же?
В принципе я выкрутился из ситуации, добавляю в конец штриха лишний символ (0), и после обрезания его, штрих приходит в полном виде.В принципе думаю этого достаточно, спасибо за помощь!
размер должен библиотек один и тот же.

ничего, если мы повысылаем еще сюда вариантов для теста? с этим надо бы до конца разобраться и решить проблему.
Да конечно, рад буду помочь если что!

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