QR-коды давно стали неотъемлемой частью бизнес-процессов: от маркировки товаров до быстрой идентификации документов. В 1С:Предприятие 8.3 печать таких кодов можно настроить как с помощью стандартных механизмов, так и через внешние обработки или интеграцию со специализированным ПО. Однако многие пользователи сталкиваются с трудностями: то штрихкод получается размытым, то данные не кодируются корректно, то оборудование отказывается распознавать результат.
В этой статье мы разберём все способы генерации и печати QR-кодов в 1С — от простейших вариантов для новичков до продвинутых решений с использованием БСП и внешних библиотек. Вы узнаете, как:
- 🔹 Настроить печать QR напрямую из документов (накладные, счета, этикетки);
- 🔹 Интегрировать 1С с принтерами этикеток (Zebra, TSC, Godex);
- 🔹 Использовать бесплатные и платные обработки для генерации кодов;
- 🔹 Решать типичные ошибки (некорректное кодирование кириллицы, искажение при печати).
Особое внимание уделим печати QR-кодов для маркировки товаров по 54-ФЗ и Честный ЗНАК — здесь требуется строгое соблюдение форматов данных, иначе код просто не пройдёт валидацию в системе.
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С через
Файл → Открыть. - В модуле документа (например,
РеализацияТоваровУслуг) добавьте вызов обработки:QRCodeGenerator.СгенерироватьQRКод(ДанныеДляКодирования, 300, "C:\Temp\qr.png"); - Настройте макет печати, чтобы подгружать сгенерированный файл.
Преимущество внешних обработок — гибкость настройки: можно задавать уровень коррекции ошибок (от L до H), размер пикселей, цветовую схему. Например, для этикеток на складе часто используют высокий уровень коррекции (H), чтобы код читался даже при повреждении части этикетки.
Что такое уровень коррекции ошибок в QR-коде?
Уровень коррекции определяет, сколько данных можно восстановить, если часть QR-кода повреждена. Например, при уровне H (high) восстанавливается до 30% информации. Это критично для этикеток на складе, где коды могут мяться или пачкаться.
3. Интеграция с принтерами этикеток
Для массовой печати QR-кодов (например, на складе или в производстве) используют специализированные принтеры: Zebra ZD420, TSC TE200, Godex EZ-2300. Эти устройства поддерживают языки команд (ZPL, EPL), которые позволяют отправлять данные напрямую из 1С.
Алгоритм настройки:
- Установите драйвер принтера на компьютер с 1С.
- В 1С добавьте обработку для формирования команд. Например, для Zebra команда будет выглядеть так:
^XA^FO50,50^BQN,2,10^FDMA,https://example.com/item=123^FS
^XZ
где
^FDMA,...— данные для QR-кода в форматеMA(автоматическое определение кодировки). - Отправьте команду на печать через порт:
ТекстКоманды = "^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С;
- Экспортировать в Excel;
- Использовать надстройку 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 мм для надёжного сканирования;
- 🖨️ Избегайте глянцевой бумаги — она даёт блики при сканировании.
Для массовой печати (например, ценников) лучше использовать специализированные принтеры этикеток.