← На главную
При выводе печатной формы этикетки в 1С вместо корректного штрихкода может отображаться пустая красная сетка. Эта ситуация возникает как в типовых конфигурациях, так и при доработке пользовательских макетов. Проанализируем причины возникновения этой ошибки и разберем варианты её устранения.
Причины появления красной сетки вместо штрихкода
Выясним, почему компонента печати штрихкодов формирует красную сетку вместо изображения:
- Недостаточный размер рисунка в макете: Внешняя компонента (например,
1CBarCode) жестко контролирует пропорции штрихов и минимально допустимые размеры для обеспечения считывания сканером. Если выделенный в макете прямоугольник слишком мал для текущего типа штрихкода (например, Code128 или EAN-13), компонента принципиально не сжимает штрихи, а выводит красную сетку.
- Передача невалидных данных: Красная сетка появляется, если в объект передается строка данных с неверной длиной, недопустимыми символами (например, буквенные символы для числового типа
EAN-13) или с ошибкой в контрольном символе.
- Несоответствие типа штрихкода: В обработке может передаваться тип штрихкода, требующий больше места или иной структуры данных, чем заложено в макете.
- Изменение версии компоненты 1CBarCode: При обновлении внешней компоненты или драйверов на рабочем месте могут измениться требования к минимальным полям вокруг кода. Из-за этого макет, который ранее выводился нормально, начинает выдавать ошибку.
- Влияние системного масштабирования (DPI) и RDP: При использовании масштаба экрана Windows больше 100% или при работе через удаленный рабочий стол расчёт пикселей ActiveX-объекта может искажаться, что приводит к некорректной оценке доступной площади.
Способы решения проблемы
Рассмотрим по шагам основные способы исправления ошибки в зависимости от используемой конфигурации и механизмов печати.
Способ 1. Изменение размеров рисунка и границ этикетки
Если причиной является физическая нехватка места для вывода штрихкода, необходимо скорректировать макет печатной формы:
- Откроем макет
Этикетка в обработке ПечатьЭтикеток.
- Найдем графический объект штрихкода и увеличим его ширину и высоту.
- При необходимости расширим границы всей этикетки в макете, чтобы увеличенный рисунок помещался полностью без выходов за пределы печатной области.
- Сохраним изменения и проверим вывод печатной формы.
Способ 2. Проверка типа штрихкода и передаваемых данных
Проанализируем модуль обработки печати и проверим, какие данные передаются в объект штрихкода:
- Убедимся, что для формата
EAN-13 передается строго 12 или 13 цифр.
- Если используется формат
Code128 или Code39, проверим отсутствие недопустимых спецсимволов.
- Убедимся, что в свойствах объекта штрихкода передается правильный тип кодирования.
Способ 3. Переход на генерацию штрихкода в виде картинки (Native API)
В современных конфигурациях и Библиотеке подключаемого оборудования (БПО) рекомендуется отказаться от использования ActiveX-объекта в пользу формирования графического изображения штрихкода на сервере:
- В макете создается обычный рисунок типа Картинка.
- Штрихкод генерируется программой в формате PNG или BMP и помещается в область печатной формы.
- У обычного рисунка нет свойства выводить красную сетку — при изменении размеров он просто пропорционально масштабируется.
Способ 4. Использование штриховых шрифтов (TrueType Fonts)
Альтернативным решением является использование специальных штриховых шрифтов (например, EAN13 или Code128):
- В макете создается стандартная текстовая ячейка.
- Для ячейки устанавливается шрифт штрихкода, загруженный в операционную систему.
- В ячейку выводится подготовленная строка данных. Это полностью исключает зависимость от внешних ActiveX-компонент.