QR-коды давно стали неотъемлемой частью бизнес-процессов: от маркировки товаров до быстрой идентификации документов. В 1С:Предприятие 8.3 печать таких кодов можно настроить как с помощью стандартных механизмов, так и через внешние обработки или интеграцию со специализированным ПО. Однако многие пользователи сталкиваются с трудностями: то штрихкод получается размытым, то данные не кодируются корректно, то оборудование отказывается распознавать результат.

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

  • 🔹 Настроить печать QR напрямую из документов (накладные, счета, этикетки);
  • 🔹 Интегрировать 1С с принтерами этикеток (Zebra, TSC, Godex);
  • 🔹 Использовать бесплатные и платные обработки для генерации кодов;
  • 🔹 Решать типичные ошибки (некорректное кодирование кириллицы, искажение при печати).

Особое внимание уделим печати QR-кодов для маркировки товаров по 54-ФЗ и Честный ЗНАК — здесь требуется строгое соблюдение форматов данных, иначе код просто не пройдёт валидацию в системе.

📊 Для каких целей вы печатаете QR-коды в 1С?
Маркировка товаров
Этикетки на складе
Документы (счета, накладные)
Инвентаризация
Другое

1. Встроенные возможности 1С для печати QR-кодов

Начиная с версии 8.3.14, платформа 1С поддерживает генерацию QR-кодов без дополнительных обработок. Функционал реализован через объект ШтрихКод и методы библиотеки стандартных подсистем (БСП). Это самый простой способ, но с ограничениями:

  • 📌 Поддерживаются только базовые форматы данных (цифры, латиница, ограниченная кириллица);
  • 📌 Нет гибкой настройки размера и коррекции ошибок;
  • 📌 Печать возможна только через стандартные отчёты или макеты.

Чтобы сгенерировать QR-код встроенными средствами, используйте следующий код на встроенном языке:

ШтрихКод = Новый ШтрихКод;

ШтрихКод.ТипШтрихКода = ТипШтрихКодаQR;

ШтрихКод.УстановитьДанные("https://example.com/товары?id=12345");

КартинкаQR = ШтрихКод.ПолучитьКартинку(200, 200); // Размер 200x200 пикселей

Готовую картинку можно вставить в макет печати (например, в документ РеализацияТоваровУслуг) или сохранить в файл:

КартинкаQR.Сохранить("C:\Temp\qr_code.png", ТипФайлаКартинки.png);
⚠️ Внимание: Встроенный генератор 1С не поддерживает кодирование полной кириллицы в QR-коды. Если вам нужно закодировать русскоязычный текст (например, наименование товара), используйте внешние библиотеки или обработки.
💡

Для тестирования QR-кодов используйте бесплатные онлайн-сканеры, например ZXing Decoder. Это поможет проверить корректность данных до печати на этикетках.

2. Печать QR-кодов через внешние обработки

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

Обработка Поддержка кириллицы Интеграция с оборудованием Стоимость
QRCodeGenerator (Инфостарт) Да (UTF-8) Да (ZPL, EPL) Бесплатно
Barcode1D2D (1С-Битрикс) Да (с настройкой) Частично Платно (~3 000 руб.)
Атлант QR Да Да (TSC, Godex) Платно (~5 000 руб.)

Рассмотрим подключение бесплатной обработки QRCodeGenerator:

  1. Скачайте обработку с Инфостарта и добавьте её в 1С через Файл → Открыть.
  2. В модуле документа (например, РеализацияТоваровУслуг) добавьте вызов обработки:
    QRCodeGenerator.СгенерироватьQRКод(ДанныеДляКодирования, 300, "C:\Temp\qr.png");
  3. Настройте макет печати, чтобы подгружать сгенерированный файл.

Преимущество внешних обработок — гибкость настройки: можно задавать уровень коррекции ошибок (от L до H), размер пикселей, цветовую схему. Например, для этикеток на складе часто используют высокий уровень коррекции (H), чтобы код читался даже при повреждении части этикетки.

Что такое уровень коррекции ошибок в QR-коде?

Уровень коррекции определяет, сколько данных можно восстановить, если часть QR-кода повреждена. Например, при уровне H (high) восстанавливается до 30% информации. Это критично для этикеток на складе, где коды могут мяться или пачкаться.

3. Интеграция с принтерами этикеток

Для массовой печати QR-кодов (например, на складе или в производстве) используют специализированные принтеры: Zebra ZD420, TSC TE200, Godex EZ-2300. Эти устройства поддерживают языки команд (ZPL, EPL), которые позволяют отправлять данные напрямую из 1С.

Алгоритм настройки:

  1. Установите драйвер принтера на компьютер с 1С.
  2. В 1С добавьте обработку для формирования команд. Например, для Zebra команда будет выглядеть так:
    ^XA
    

    ^FO50,50^BQN,2,10^FDMA,https://example.com/item=123^FS

    ^XZ

    где ^FDMA,... — данные для QR-кода в формате MA (автоматическое определение кодировки).

  3. Отправьте команду на печать через порт:
    ТекстКоманды = "^XA...^XZ";
    

    ЗаписьТекста = Новый ЗаписьТекста;

    ЗаписьТекста.Открыть("COM3:"); // или сетевой путь \\PRINTER_IP

    ЗаписьТекста.ЗаписатьСтроку(ТекстКоманды);

    ЗаписьТекста.Закрыть();

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

  • 🖨️ Автоматическое определение модели принтера;
  • 🖨️ Печать серий этикеток из табличных документов;
  • 🖨️ Настройку шаблонов с QR, штрихкодами, текстом и графикой.
⚠️ Внимание: При печати на термоэтикетках проверьте настройку плотности печати (DPI) в драйвере принтера. Слишком высокое разрешение (например, 600 DPI вместо 200 DPI) может сделать QR-код слишком мелким и нечитаемым.

4. Печать QR-кодов для маркировки (Честный ЗНАК)

С 2026 года обязательная маркировка распространилась на новые группы товаров (обувь, одежда, духи), а QR-коды должны соответствовать строгим требованиям ГИС МТ. В 1С для этого используют:

  • 🏷️ Типовой обмен с Честным ЗНАКом (для 1С:УТ, 1С:ERP);
  • 🏷️ Обработки от партнёров (например, Атлант Маркировка);
  • 🏷️ Внешние сервисы (например, Клеверенс Маркировка).

Основные требования к QR-кодам для маркировки:

  • 📋 Данные должны быть в формате GS1 DataMatrix или QR с префиксом (01) для GTIN;
  • 📋 Размер кода — не менее 20×20 мм;
  • 📋 Коррекция ошибок — не ниже M;
  • 📋 Цвет — чёрный на белом фоне (контраст не менее 70%).

Пример кода для генерации маркировочного QR в 1С:

// Формируем данные в формате GS1

ДанныеДляQR = "(01)46012345678904(21)1234567890ABCD";

// Используем обработку Атлант Маркировка

АтлантМаркировка.СгенерироватьКодМаркировки(ДанныеДляQR, "C:\Temp\mark_qr.png", 300, 300, "M");

Для проверки корректности сгенерированного кода используйте валидатор Честного ЗНАКа. Ошибки в формате данных — самая частая причина отказов при регистрации товаров в ГИС МТ.

🔘 Данные соответствуют формату GS1 (префиксы (01), (21) и т.д.);

🔘 Размер кода не менее 20×20 мм;

🔘 Коррекция ошибок — M или H;

🔘 Контраст чёрного/белого не менее 70%;

🔘 Код читается сканером с первого раза.

-->

5. Типичные ошибки и их решения

Даже при правильной настройке пользователи сталкиваются с проблемами при печати QR-кодов. Рассмотрим самые распространённые:

Проблема Причина Решение
QR-код не сканируется Низкое разрешение печати или неправильная коррекция ошибок Увеличьте размер кода до 300×300 пикселей и установите коррекцию H
Кириллица отображается как "???" Неправильная кодировка (CP1251 вместо UTF-8) Используйте обработки с поддержкой UTF-8 или конвертируйте текст в Base64
Код печатается размыто Несоответствие DPI принтера и разрешения картинки Настройте DPI принтера на 200-300 и генерируйте QR с разрешением не менее 300 dpi
При печать на этикетке код обрезается Неправильные поля в макете этикетки Установите отступы не менее 3 мм от краёв этикетки

Если QR-код генерируется корректно, но не сканируется с первого раза, проверьте:

  • 🔦 Освещение — при слабом свете некоторые сканеры не читают код;
  • 🔦 Угол наклона — держите сканер перпендикулярно этикетке;
  • 🔦 Материал этикетки — глянцевые поверхности могут давать блики.

Для диагностики проблем используйте логи сканера (если есть) или тестовые приложения на смартфоне (например, QR & Barcode Scanner для Android). Они показывают, какая часть кода не распознаётся.

6. Автоматизация печати QR-кодов в бизнес-процессах

Ручная печать QR-кодов эффективна только для небольших объёмов. В массовом производстве или торговле требуется автоматизация. Рассмотрим варианты:

1. Печать при проведении документа

Настройте обработку, которая будет автоматически генерировать и печатать QR-коды при проведении, например, ПоступленияТоваров:

Процедура ПриПроведении(Отказ)

Для Каждого ТекСтрока Из Товары Цикл

ДанныеQR = СформироватьДанныеДляQR(ТекСтрока.Номенклатура, ТекСтрока.Количество);

ПечатьЭтикеткиQR(ДанныеQR, "PRN_Этикетки"); // PRN_Этикетки — сетевой принтер

КонецЦикла;

КонецПроцедуры

2. Фоновая печать через 1С:Документооборот

Если у вас настроен 1С:Документооборот, можно создать бизнес-процесс:

  • 📄 Автоматическое формирование QR при создании документа;
  • 📄 Отправка на печать в фоновом режиме;
  • 📄 Уведомление ответственного о результатах печати.

3. Интеграция с WMS-системами

Для крупных складов актуальна интеграция 1С с WMS (например, 1С:WMS Логистика). В этом случае QR-коды печатаются:

  • 🏭 При приёмке товара;
  • 🏭 При перемещении между зонами;
  • 🏭 При отгрузке (с данными заказа).

Для таких задач часто используют 1С:Интеграцию с оборудованием, которая поддерживает:

  • 🖥️ Работу с терминалами сбора данных (CipherLab, Honeywell);
  • 🖥️ Печать на промышленные принтеры;
  • 🖥️ Обмен данными в реальном времени.
💡

Автоматизация печати QR-кодов сокращает время обработки заказов на 30-40% и уменьшает количество ошибок при инвентаризации.

7. Альтернативные способы генерации QR-кодов

Если встроенные средства 1С не подходят, можно использовать внешние сервисы и API:

1. Онлайн-генераторы с API

Сервисы вроде QR Code Monkey или GoQR.me предоставляют API для генерации кодов. Пример интеграции:

URL = "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=" + СтрЗначениеJSON(ДанныеДляQR);

КартинкаQR = ПолучитьИзИнтернета(URL); // Используйте HTTPСоединение для загрузки

2. Библиотеки для 1С

На Инфостарте есть готовые библиотеки, например:

  • 📚 QRCodeLib — генерация кодов с поддержкой UTF-8;
  • 📚 Barcode1D2D — поддержка 50+ форматов штрихкодов;
  • 📚 ZXing для 1С — порт популярной Java-библиотеки.

3. Печать через Excel

Если нужно распечатать QR-коды в табличном виде (например, прайс-лист с кодами), можно:

  1. Сформировать данные в 1С;
  2. Экспортировать в Excel;
  3. Использовать надстройку Barcode Font или макрос VBA для генерации кодов.

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

FAQ: Частые вопросы по печати QR-кодов в 1С

Можно ли печатать цветные QR-коды в 1С?

Да, но с оговорками. Встроенный генератор 1С создаёт чёрно-белые коды, однако внешние обработки (например, QRCodeGenerator) позволяют задавать цвета. Главное правило: контраст между фоном и кодом должен быть не менее 70%. Например, синий код на белом фоне будет читаться, а красный на зелёном — нет.

Как печатать QR-коды на термоэтикетках без размытия?

Проблема размытия на термоэтикетках связана с нагревом печатающей головки. Решения:

  • Уменьшите скорость печати в настройках принтера;
  • Используйте этикетки с защитным покрытием;
  • Установите в драйвере принтера режим "Температурная компенсация".

Также проверьте, что разрешение картинки QR соответствует DPI принтера (например, для 200 DPI картинка должна быть не менее 200×200 пикселей).

Какие данные можно закодировать в QR-код в 1С?

В QR-код можно закодировать любые данные, но есть ограничения:

  • 📌 Текст — до 4296 символов (в режиме байт — до 2953 байт);
  • 📌 Ссылки — до 2000 символов (URL);
  • 📌 Бинарные данные — до 2362 байт;
  • 📌 Кириллица — только в кодировке UTF-8 (встроенный генератор 1С не поддерживает).

Для сложных данных (например, JSON с характеристиками товара) используйте сжатие или разбивайте информацию на несколько кодов.

Как проверить, что QR-код соответствует требованиям Честного ЗНАКа?

Используйте официальный валидатор ГИС МТ. Также проверьте:

  • 🔍 Формат данных — должен начинаться с (01) (GTIN);
  • 🔍 Размер — не менее 20×20 мм;
  • 🔍 Коррекция ошибок — M или H;
  • 🔍 Цвет — только чёрный на белом.

Если код не проходит валидацию, проверьте обработку генерации — возможно, данные формируются в неправильном формате.

Можно ли печатать QR-коды на обычном лазерном принтере?

Да, но с учётом нюансов:

  • 🖨️ Используйте бумагу плотностью не менее 80 г/м², чтобы код не просвечивал;
  • 🖨️ Настройте качество печати на "Высокое" (1200 dpi);
  • 🖨️ Печатайте коды размером не менее 25×25 мм для надёжного сканирования;
  • 🖨️ Избегайте глянцевой бумаги — она даёт блики при сканировании.

Для массовой печати (например, ценников) лучше использовать специализированные принтеры этикеток.