Ошибки считывания штрих-кода

Рассмотрим проблему считывания штрих-кодов, распечатанных на принтере этикеток, из 1С, находящейся на сервере терминалов.

1.Описание проблемы

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


2.Причина

Причина проблемы кроется в работе системы перенаправления печати работающей на серверных ОС Windows. Дело в том, что для упрощения установки принтеров в терминальных сеансах работы пользователей Microsoft добавила в свои серверные ОС начиная с windows Server 2008 функцию TS EasyPrint. Это система эмуляции драйвера принтера в терминальной сессии. Но работа данной системы не всегда проходит гладко, и иногда принтер может не печатать или работать неверно, что и происходит в нашем случае. Сама по себе эта функция очень хорошая, так как сильно облегчает жизнь администраторам серверов, от них не требуется устанавливать драйвер для каждого принтера на сервер, а лишь решать проблемы, если они появяться. С принтером этикеток возникает ситуация, что система EasyPrint некоректно передает данные на само устройсвто, причем визуально распечатанный штрих код ни чем не отличается от выводимого на экран или распечатанного на компьютере не в терминальной сессии. 

 

3.Решение проблемы

Решается проблема отключением в групповой политике использования EasyPrint по умолчанию и установкой радного драйвера для принтера этикеток. Для этого нужно открыть групповую политику:

Далее в групповой политике:

Computer configurations->
Windows components->
Remote Desktop Services->
Remote Desktop Session Host->
Printer Redirection

и свойство use remote easy printet driver first меняем в положение Disable.

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

 

P.S. 

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

23 Comments

  1. popenko

    именно Ошибки считывания штрих-кода

    бывают из-за «плохо работающей» локальной сети или настроек портов на пк.

    почему то их 99%, но при этом компьютерщики отвечающие за работу локальной сети,

    у меня было одно чудо — заблокировало порты и орал — это все ваша 1с. Но за это вариант тоже спасибо т.к. иногда тяжело найти.

    Reply
  2. CheBurator

    Имхо лабуда в статье

    Если штрихкод, распечатанный с сервера терминалов и штрихкод локальный ВИЗУАЛЬНО СОВПАДАЮТ — то любой сканер прочитает оба шк нормально.

    Поэтому причины две

    Либо всетаки шк печатается криво и визуально не совпадакт с нормальным читаемым шк (ибо есть стандарт на штрихкод и по ширине полосок и промежутков)

    Либо проблема в чемто другом

    Reply
  3. @lexandr

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

    Reply
  4. viramen

    (2) Действительно, визуально они не совпадают — видно даже глазами. EasyPrint искажает картинку, способ описанный в статье решает проблему. Главное драйвер рабочий на сервер установить.

    Reply
  5. elizarovs

    (3) Более того, некоторые сканеры такой код считывают, а некоторые — не хотят. Как раз воюю с такой проблемой, но у меня не терминальная машина.

    Reply
  6. Dem1urg
    Дело в том, что последний символ штрих-кода служебный и он формируется по определенным правилам

    Не совсем верно.

    Это справедливо только для штриховых кодов с контрольным символов. Да, к ним относится популярный EAN-13. Но есть системы штрихового кодирования в которых нет контрольных символов. Тот же Code39.

    Reply
  7. Duketm

    Сам недавно решал эту проблему с изи-принт. Подтверждаю, что она есть и решил точно также. Универсальный виндовый драйвер немного «криво» печатает ШК — одна из полосок имеет меньшую ширину, чем должна, не на на много, но меньшую. Поэтому нужно отключить изи-принт и установить драйвер принтера на сам сервер.

    Reply
  8. pit201201

    А я пока не решил эту проблему, но прочитал и взял на вооружение 🙂

    Reply
  9. try2016

    (3)

    Да есть такая проблема особенно она обострилась в Windows 10. Как раз в терминале эта проблема и проявилась но там если разглядеть ШК под лупой, так не заметно, он идет лесенкой первые полоски. Поэтому и не читает. А вот ошибки сети как причина сканирования, это бред, ты уж извени) Особенно про порты. Вы какие имеете ввиду порты COM(RS232) или TCP/IP порты? COM -порты пробрасываются в самой терминальной ссесии и сетевые порты там вовсе не причем!

    Вот первые Image Area Сканеры ШК действительно работали отвратно, и очень плохо читали ШК. А обычные лазерные сканера 1D считывают ШК практически без ошибок. Если сканер плохо читает ШК, значит ШК имеет не те пропорции(нормальные размеры для приемлемого считывания , либо нарушение линий как в этом случае.

    Reply
  10. popenko

    (9) try2016, за кривость чужих рук отвечать не могу. какие ошибки сети — это пусть и остается тайной «системщика» выпытывать у него не собирался и по портам тоже самое. Это не тория проблема взята из практики — хочешь возьми на заметку -хочешь не бери. Именно на заметку (из-за кривости рук исполнителей)

    Reply
  11. @lexandr

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

    Reply
  12. avto-torg

    (11)

    Это не связано с плохой работой сети. Это давняя проблема пробросов портов по RDP, вернее ее реализация. Программируйте суффикс F7 в сканере и эти проблемы останутся позади. Еще раз повторюсь сеть в тут не причем.

    Reply
  13. Tatoshka_

    Добрый день, ни кто не сталкивался с проблемой считывания штрих кода с разноцветных этикеток? Суть проблемы в том, что один и тот же штрих код, распечатан в 1 случае на желтой этикетки и все нормально считывается, а второй на зеленой и вот он не считывается вообще.

    Reply
  14. @lexandr

    (13) Tatoshka_, Никогда не видил этикетки для термопринтеров не белого цвета. Сталкивался лишь с проблемами считывания штрих кодов, когда на упаковке темного цвета напечатан штрих код тоже кокогото темного цвета, скорей всего проблема в контрастности, сканер не может распознать разницы между цветами и не выделяет из них полоски. Как вариант пробывать сканер другого типа. У Вас скорее всего оптический сканер штрих кодов, попробуйте считать данный штрих код при помощи лазерного или фото сканера, если штрих код на глаз разлечим, то скорее всего какой то из этих сканеров сможет сканировать данные штрих коды.

    Reply
  15. spectre1978

    (14) если вы их не видели — это не значит что их нет. Очень многие торговые сети для своих весов, да и производители заказывают этикетки с предпечатью, где есть цветные элементы, и даже частичная или полная заливка цветом. Любая типография это сделает с преогромным удовольствием — потому что такая этикетка заметно дороже стоит, чем белая. Чем больше цветов, тем дороже.

    По существу — с такими этикетками проблем больше. Во-первых, покрытие часто оставляет следы на головке и резиновых валах принтера. Есть подозрение, что это не способствует увеличению срока службы оборудования. Во-вторых, печать поверх цветных элементов не всегда такая же качественная, как просто на белом основании — края линий кажутся более рваными, что ли. Хотя, возможно, просто кажется. И третье — если элементы достаточно темные и крупные, то контрастность напечатанного поверх них кода может оказаться недостаточной для чтения всеми или некоторыми сканерами. Это нужно обязательно иметь в виду перед заказом этикетки. Следует сделать тестовую партию и проверить образцы на вашем принтере и всех возможных сканерах.

    Reply
  16. @lexandr

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

    Reply
  17. Timur001

    Спасибо за статью, очень полезно, не зная этого мне приходилось VPN поднимать и подключать принтер по локалке.

    Reply
  18. CaSH_2004

    К сожалению русский вариант не указан, а он не очевиден — я за 5 мин. так и не нашел, и даже в инете с трудом нашел т.к. все выкладывают для англ. варианта поэтому вот поделюсь русским вариантом настройки:

    «Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление принтеров»

    Параметр «Использовать в первую очередь драйвер принтера Easy Print удаленного рабочего стола» перевести в состояние «Отключено»

    Но проблему это кстати не решило. Пришлось делать через VPN — очень медленно, зато печатает.

    Reply
  19. 2garin_95

    Есть принтер для термопечати GoDEX G500, который подключён к ПК, а этот ПК через RDP соединение подключается к терминальному серверу… проблема в том, что когда я ставлю драйвера на принтер со стороны сервера, мне просто создаётся драйвер принтера который типа как «физически подключён к серверу». А тот который перенаправляется с ПК, так и остаётся… и главный капец в том, что на том принтере что перенаправляется с ПК настройки драйвера по прежнему не меняются. а физического доступа к серверу нет, так как у нас он виртуальный. что посоветуете?

    Reply
  20. user710223_sytdykovrr

    Добрый день!

    Абсолютно верно по поводу TS EasyPrint, также и кто использует ScrewDriver.

    При печати из под терминала, драйвер некорректно работает.

    Способ решения описан выше, а можно просто сохранять сформированную область печати этикеток на рабочий стол в .xml

    копировать на свою машину и через меню открыть в 1С открывать и печатать этикетки — печать будет идеальной.

    Reply
  21. user1100016

    По теме или нет. Короче. Есть принтер этикеток (Меркурий lp 58 eva вроде.) у клиента. суть в том что, на компе через прогу печатает норм все. но база с товаром находится в облочномом сервесе и если я начинаю печатать этикетки через облако то штих код не читаем. и по всем правилам ШК начало начинается с одной полоски вместо двух, и конец тоже с одной. Когда должно быть с двух. Вот в чем проблема???? все грешат на некий EasyPrint в вин 10. так ли это? хелп ми гайс. крыша едет уже с этим принтером

    Reply
  22. Gazulo

    А если драйвер невозвожно поставить на сервер, при установке просит USB порт или COM или LPT, или сетевой, но у нас сервер в облаке, соответственно ничего этого нету…Как Быть

    Reply
  23. Timur001

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *