Почему вместо штрихкода выводится красная сетка и как это исправить

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При выводе печатной формы этикетки в 1С вместо корректного штрихкода может отображаться пустая красная сетка. Эта ситуация возникает как в типовых конфигурациях, так и при доработке пользовательских макетов. Проанализируем причины возникновения этой ошибки и разберем варианты её устранения.

Причины появления красной сетки вместо штрихкода

Выясним, почему компонента печати штрихкодов формирует красную сетку вместо изображения:

  1. Недостаточный размер рисунка в макете: Внешняя компонента (например, 1CBarCode) жестко контролирует пропорции штрихов и минимально допустимые размеры для обеспечения считывания сканером. Если выделенный в макете прямоугольник слишком мал для текущего типа штрихкода (например, Code128 или EAN-13), компонента принципиально не сжимает штрихи, а выводит красную сетку.
  2. Передача невалидных данных: Красная сетка появляется, если в объект передается строка данных с неверной длиной, недопустимыми символами (например, буквенные символы для числового типа EAN-13) или с ошибкой в контрольном символе.
  3. Несоответствие типа штрихкода: В обработке может передаваться тип штрихкода, требующий больше места или иной структуры данных, чем заложено в макете.
  4. Изменение версии компоненты 1CBarCode: При обновлении внешней компоненты или драйверов на рабочем месте могут измениться требования к минимальным полям вокруг кода. Из-за этого макет, который ранее выводился нормально, начинает выдавать ошибку.
  5. Влияние системного масштабирования (DPI) и RDP: При использовании масштаба экрана Windows больше 100% или при работе через удаленный рабочий стол расчёт пикселей ActiveX-объекта может искажаться, что приводит к некорректной оценке доступной площади.

Способы решения проблемы

Рассмотрим по шагам основные способы исправления ошибки в зависимости от используемой конфигурации и механизмов печати.

Способ 1. Изменение размеров рисунка и границ этикетки

Если причиной является физическая нехватка места для вывода штрихкода, необходимо скорректировать макет печатной формы:

  1. Откроем макет Этикетка в обработке ПечатьЭтикеток.
  2. Найдем графический объект штрихкода и увеличим его ширину и высоту.
  3. При необходимости расширим границы всей этикетки в макете, чтобы увеличенный рисунок помещался полностью без выходов за пределы печатной области.
  4. Сохраним изменения и проверим вывод печатной формы.

Способ 2. Проверка типа штрихкода и передаваемых данных

Проанализируем модуль обработки печати и проверим, какие данные передаются в объект штрихкода:

  1. Убедимся, что для формата EAN-13 передается строго 12 или 13 цифр.
  2. Если используется формат Code128 или Code39, проверим отсутствие недопустимых спецсимволов.
  3. Убедимся, что в свойствах объекта штрихкода передается правильный тип кодирования.

Способ 3. Переход на генерацию штрихкода в виде картинки (Native API)

В современных конфигурациях и Библиотеке подключаемого оборудования (БПО) рекомендуется отказаться от использования ActiveX-объекта в пользу формирования графического изображения штрихкода на сервере:

  1. В макете создается обычный рисунок типа Картинка.
  2. Штрихкод генерируется программой в формате PNG или BMP и помещается в область печатной формы.
  3. У обычного рисунка нет свойства выводить красную сетку — при изменении размеров он просто пропорционально масштабируется.

Способ 4. Использование штриховых шрифтов (TrueType Fonts)

Альтернативным решением является использование специальных штриховых шрифтов (например, EAN13 или Code128):

  1. В макете создается стандартная текстовая ячейка.
  2. Для ячейки устанавливается шрифт штрихкода, загруженный в операционную систему.
  3. В ячейку выводится подготовленная строка данных. Это полностью исключает зависимость от внешних ActiveX-компонент.
← На главную