QR-коды в 1С:Предприятие давно перестали быть экзотикой — они стали обязательным элементом печатных форм чеков, накладных, актов и даже внутренних документов. С 2021 года их использование регламентировано законодательно для ряда операций (например, маркировка товаров или электронные чеки), а с 2023 года требования ужесточились. Однако даже без юридических обязательств QR-коды упрощают работу: клиенты быстрее получают доступ к информации, а бизнес сокращает время на обработку документов.
Проблема в том, что стандартные механизмы 1С не всегда покрывают все потребности. В зависимости от версии платформы (1С:Предприятие 8.3 или 1С:8.2), конфигурации (УТ 11, БП 3.0, КА 2.4 и др.) и задач (печать на этикетках, в чеках ККТ, в PDF-документах) настройка может кардинально отличаться. Эта статья поможет разобраться во всех нюансах — от базовой генерации кода до автоматизации его внедрения в бизнес-процессы.
Мы не будем ограничиваться теорией: здесь вы найдете пошаговые инструкции с скриншотами, примеры кода для встраивания в конфигурацию, а также разбор типовых ошибок (например, когда QR-код не сканируется или содержит битые данные). Особое внимание уделим интеграции с онлайн-кассами (Атол, Штрих-М, Эвотор) и маркировке товаров через систему «Честный ЗНАК».
1. Базовая настройка QR-кода в типовых конфигурациях 1С
Если вам нужно просто добавить QR-код в печатную форму (например, в счет или накладную), начинайте с проверки текущей конфигурации. В большинстве типовых решений (Управление торговлей 11, Бухгалтерия предприятия 3.0, Комплексная автоматизация 2.4) функционал уже частично реализован, но часто скрыт в глубине настроек.
Чтобы активировать генерацию QR-кода:
- Откройте нужный документ (например,
Реализация товаров и услуг). - Перейдите в меню
Печать → Настройки печатных форм. - Найдите раздел
Дополнительные реквизитыилиШтрихкоды(название может отличаться). - Активируйте флажок
Включить QR-коди укажите, какие данные он должен содержать (номер документа, ссылку на сайт, реквизиты компании).
Если в вашей конфигурации нет встроенного функционала, придется доработать печатную форму вручную. Для этого:
- 📄 Откройте форму в режиме
Конфигуратор(права администратора обязательны!). - 🔧 Перейдите в раздел
Объекты → Печатные формыи выберите нужный шаблон. - 🖼️ Добавьте элемент
ПолеQRКода(илиPictureс привязкой к функции генерации). - 💻 Напишите обработчик для формирования кода (пример кода — в следующем разделе).
⚠️ Внимание: В конфигурациях старше 1С:Предприятие 8.3.10 может отсутствовать встроенная библиотека для генерации QR-кодов. В этом случае потребуется подключить внешнюю компоненту (например, BarcodeLib или ZXing.Net).
2. Генерация QR-кода через встроенные механизмы (без программирования)
С версии 1С:Предприятие 8.3.14 в платформу добавлена встроенная функция ПолучитьQRКод(), которая упрощает жизнь пользователям. Она поддерживает основные стандарты (ISO/IEC 18004) и позволяет кодировать до 2953 байт данных. Рассмотрим, как ею пользоваться на примере добавления QR-кода в печатную форму счета.
Инструкция для 1С:Бухгалтерия 3.0:
- Откройте документ
Счет на оплату покупателю. - Перейдите в
Печать → Настройка печатной формы. - В разделе
Дополнительные полядобавьте новый элемент типаКартинка. - В свойствах элемента укажите выражение для генерации кода:
ПолучитьQRКод(Строка(Номер) + "|" + Дата + "|" + Контрагент.Наименование) - Сохраните изменения и обновите печатную форму.
Если вам нужно добавить QR-код в Управление торговлей 11, алгоритм аналогичен, но есть нюанс: в этой конфигурации по умолчанию активирована проверка на дублирование штрихкодов. Чтобы избежать ошибок, добавьте в данные QR-кода префикс, например:
ПолучитьQRКод("UT11_" + НомерДокумента + "_" + Формат(ТекущаяДата(), "ДФ=ddMMyyyy"))
Вот какие данные чаще всего кодируют в QR:
- 📄 Номер и дата документа — для быстрого поиска в базе.
- 🔗 Ссылка на электронный документ (например, на портале «Диадок» или в личном кабинете клиента).
- 📦 Информация о товаре (артикул, серийный номер, срок годности) — для маркированных товаров.
- 💳 Реквизиты для оплаты (номер счета, БИК, ИНН) — для ускорения платежей.
Проверьте длину итоговой строки (максимум 2953 символа)
Исключите спецсимволы (%, &, #) — они могут сломать сканирование
Добавьте контрольную сумму или хеш для проверки целостности данных
Протестируйте чтение кода на 3+ разных устройствах-->
3. Программная генерация QR-кода: примеры кода для конфигуратора
Когда встроенных инструментов недостаточно (например, нужно сгенерировать код динамически в обработке или интегрировать его с внешним сервисом), приходится писать код. Ниже приведены готовые решения для разных сценариев.
3.1. Генерация QR-кода через внешнюю компоненту (BarcodeLib)
Если ваша версия 1С не поддерживает ПолучитьQRКод(), подключите библиотеку BarcodeLib:
// Подключение компоненты (разместите файл BarcodeLib.dll в каталоге с базой)
ПодключитьВнешнююКомпоненту("C:\1C\BarcodeLib.dll", "BarcodeLib", ТипВнешнейКомпоненты.Native);
// Генерация QR-кода и сохранение в файл
Баркод = Новый BarcodeLib;
Баркод.Symbology = 19; // 19 - QR Code
Баркод.Data = "Текст или данные для кодирования";
Баркод.SaveImage("C:\Temp\QRCode.png", 300, 300); // Размер 300x300 пикселей
3.2. Динамическое создание QR-кода в печатной форме
Если нужно вставить QR-код непосредственно в макет печатной формы (например, в УТ 11), используйте следующий подход:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Создаем картинку с QR-кодом
КартинкаQR = ПолучаемQRКодКакКартинку(ДокументРезультат.ДокументОбъект.Номер);
// Вставляем в макет
ОбластьМакет = ДокументРезультат.Макет.Области.Найти("QRCodeArea");
Если Не ОбластьМакет = Неопределено Тогда
ОбластьМакет.Параметры.Вставить("Картинка", КартинкаQR);
КонецЕсли;
КонецПроцедуры
Функция ПолучаемQRКодКакКартинку(Данные)
Возврат ПолучаемДвоичныеДанные(ПолучитьQRКод(Данные));
КонецФункции
3.3. Интеграция с API внешних сервисов (например, «Честный ЗНАК»)
Для маркированных товаров QR-код должен соответствовать стандартам ГИС МТ. Пример запроса к API «Честный ЗНАК»:
АдресAPI = "https://markirovka.ru/api/v1/documents/qr";
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + ТокенДоступа);
Заголовки.Вставить("Content-Type", "application/json");
ТелоЗапроса = JSON.Записать(Новый Структура("gtin,serial", КодТовара, СерийныйНомер));
Ответ = ВыполнитьHTTPЗапрос(АдресAPI, Заголовки, ТелоЗапроса, "POST");
Если Ответ.КодСостояния = 200 Тогда
ДанныеQR = JSON.Прочитать(Ответ.Тело).qr_code;
Возврат ПолучаемQRКодКакКартинку(ДанныеQR);
Иначе
ВызватьИсключение "Ошибка генерации QR: " + Ответ.Тело;
КонецЕсли;
⚠️ Внимание: При работе с API «Честный ЗНАК» учитывайте лимиты запросов (обычно 1000 в час). Превышение лимита блокирует доступ на 24 часа. Проверяйте актуальные условия в личном кабинете.
1. Размер картинки (минимум 200x200 пикселей для надежного чтения).
2. Контрастность (черный код на белом фоне читается лучше всего).
3. Формат данных (избегайте кириллицы — используйте транслит или UTF-8).-->
4. Настройка QR-кода для онлайн-касс (54-ФЗ)
С 2019 года QR-коды в фискальных чеках стали обязательным требованием 54-ФЗ. Они содержат уникальный фискальный признак (FP), который позволяет проверять подлинность чека через мобильное приложение ФНС. В 1С эту функцию поддерживают конфигурации с интеграцией ККТ (УТ 11, Розница 2.2, БП 3.0).
Чтобы настроить генерацию QR-кода для чека:
- Убедитесь, что в настройках ККТ (
Администрирование → Настройки программы → Торговое оборудование) указан правильный фискальный регистратор (Атол, Штрих-М и др.). - В карточке ККТ активируйте опцию
Формировать QR-код в чеке. - Проверьте, что в
Настройках фискальных документовуказан корректный адрес ОФД (оператора фискальных данных). - Создайте тестовый чек и убедитесь, что в нижней части появился QR-код с ссылкой вида
https://check.ofd.ru/?fn=9999999999&i=12345&fp=6789.
Если QR-код не формируется, проверьте:
| Проблема | Возможная причина | Решение |
|---|---|---|
| QR-код пустой | Не передан фискальный признак (FP) от ККТ | Обновите драйвер ККТ и проверьте связь с ОФД |
| Код не сканируется | Низкое разрешение печати | Установите в настройках ККТ минимальный размер шрифта 24пт |
| В коде ошибка "Неверный формат" | Неверный URL ОФД | Проверьте адрес ОФД в настройках (например, для Атол — https://ofd.taxcom.ru) |
| QR-код формируется, но не открывается | Истек срок действия чека (более 30 дней) | Чеки хранятся в ОФД ограниченное время — запросите дубликат |
Для касс Атол и Штрих-М может потребоваться дополнительная настройка в драйвере. Например, в Атол: Драйвер ККТ 10 нужно:
- Открыть
Настройки → Параметры чека. - В разделе
QR-кодуказатьФормат: GS1иРазмер: Средний. - Активировать опцию
Печатать QR-код даже если нет связи с ОФД(для тестирования).
Что делать, если ОФД не отвечает?
Если оператор фискальных данных (ОФД) недоступен, чек все равно будет напечатан, но QR-код может содержать неполные данные.
В этом случае:
1. Проверьте интернет-соединение на кассе.
2. Перезагрузите ККТ и роутер.
3. Свяжитесь с поддержкой ОФД (контакты есть в договоре).
4. Если проблема повторяется, временно переключитесь на резервный ОФД (если он настроен).
5. QR-коды для маркировки товаров (система «Честный ЗНАК»)
С 2026 года маркировка распространилась на большинство групп товаров: от молока до обуви. QR-код в этом случае содержит уникальный код маркировки (GTIN + серийный номер) и должен соответствовать стандарту GS1 DataMatrix. В 1С эту задачу решают через интеграцию с системой «Честный ЗНАК».
Алгоритм настройки:
- Получите доступ к ЛК «Честный ЗНАК» (регистрация через ЕГАИС или напрямую на сайте).
- Настройте обмен данными между 1С и «Честный ЗНАК»:
- В 1С:УТ 11 перейдите в
Администрирование → Интеграция → Честный ЗНАК. - Укажите
Логин,ПарольиИдентификатор организациииз ЛК. - Активируйте опцию
Автоматическая отправка данных при поступлении.
- В 1С:УТ 11 перейдите в
- Сгенерируйте коды маркировки для товаров:
// Пример кода для запроса кода маркировкиЗапрос = Новый HTTPЗапрос("https://markirovka.ru/api/v1/codes");
Запрос.УстановитьТелоИзСтроки(JSON.Записать(Новый Структура(
"gtin", "4601234567890",
"count", 10
)));
Ответ = Запрос.Выполнить();
КодыМаркировки = JSON.Прочитать(Ответ.ПолучитьТелоКакСтроку()).codes;
- Напечатайте этикетки с QR-кодами через
Печатные формы → Этикетки. - 📦 Групповая маркировка (например, для пачек сигарет) требует специального формата QR-кода с агрегатором.
- 🔄 Возврат товара обязательно фиксируется в «Честный ЗНАК» через метод
/api/v1/documents/return. - ⏳ Срок действия кода — 1 год с момента генерации (после истечения нужно запрашивать новый).
- 📏 Минимальный размер: 20×20 мм (для чеков ККТ) или 30×30 мм (для этикеток).
- 🎨 Цветовая схема: черный код на белом фоне (контраст не менее 70%).
- 🖨️ Разрешение печати: 300 dpi для термотрансферных принтеров, 600 dpi для лазерных.
- 🔍 Уровень коррекции ошибок:
L(7% восстановление) для внутренних документов,H(30%) для этикеток. - 📱 Смартфонах (iOS/Android) с разным разрешением камеры.
- 🖥️ Сканерах штрихкодов (например, Honeywell Voyager или Zebra DS2208).
- 🌐 Онлайн-валидаторах (например, ZXing Decoder).
- 🔌 Логи интеграции (в 1С они находятся в
Администрирование → Журнал регистрации). - 📡 Связь с ОФД/«Честный ЗНАК» (используйте
ПингилиTracerдля диагностики). - 📋 Актуальность конфигурации (в некоторых случаях требуется обновление до последней версии).
Особенности работы с маркированными товарами:
⚠️ Внимание: С 1 марта 2026 года за несоблюдение правил маркировки предусмотрены штрафы до 300 000 рублей (ст. 15.12 КоАП РФ). Перед печатью этикеток всегда проверяйте актуальность кодов через метод /api/v1/codes/validate.
6. Оптимизация QR-кодов для печатных форм
QR-код в документе должен быть не только корректным, но и удобочитаемым. Вот ключевые правила оформления:
6.1. Технические требования к изображению
6.2. Размещение QR-кода в документе
Пример оптимального размещения для счета на оплату:
| Шапка документа (логотип, реквизиты) |
| Таблица с товарами/услугами |
| ИТОГО: 10 000 руб. |
|------------------------------------|
| [QR-код 30x30 мм] | Реквизиты банка |
Для этикеток маркированных товаров используйте шаблон:
| Наименование товара |
| Артикул: 12345 |
|--------------------------|
| [QR-код 25x25 мм] |
|--------------------------|
| GTIN: 4601234567890 |
| Серийный номер: SN123 |
6.3. Проверка качества QR-кода
Перед массовой печатью протестируйте код на:
- Для чеков ККТ — минимальный размер (экономит бумагу).
- Для этикеток — максимальный (улучшает сканирование на складе).
- Для PDF-документов — средний (25×25 мм) с высоким разрешением (600 dpi).-->
7. Типовые ошибки и их решение
Даже при правильной настройке QR-коды могут работать некорректно. Разберем самые частые проблемы и способы их устранения.
| Ошибка | Причина | Решение |
|---|---|---|
| QR-код не генерируется | Отсутствует лицензия на внешнюю компоненту | Приобретите лицензию BarcodeLib или обновите платформу до 8.3.14+ |
| Код сканируется, но ведет на битую ссылку | Неверный формат данных (например, пробелы или кавычки) | Используйте СтрЗаменить() для очистки строки: |
| QR-код в чеке не соответствует 54-ФЗ | Не передан фискальный признак (FP) от ККТ | Обновите драйвер ККТ и проверьте связь с ОФД |
| При печати код размытый | Низкое разрешение принтера или неправильный формат картинки | Установите в настройках печати Качество: Высокое и формат PNG |
| QR-код не читается на складе | Слишком маленький размер или низкий контраст | Увеличьте размер до 30×30 мм и используйте черный цвет на белом фоне |
Если проблема не решена, проверьте:
Как проверить связь с ОФД?
Выполните в командной строке:
ping ofd.taxcom.ru -n 4
Если пакеты теряются, проблема на стороне сети. Если пинг проходит, но QR-код не формируется, проверьте настройки ККТ в Администрирование → Торговое оборудование.
8. Автоматизация работы с QR-кодами
Ручная генерация QR-кодов эффективна только для единичных документов. Для массовой обработки (например, маркировка большой партии товара) нужна автоматизация. Рассмотрим несколько сценариев.
8.1. Пакетная генерация QR-кодов для этикеток
Если вам нужно напечатать этикетки для 1000 товаров, используйте обработку:
Процедура ПечатьЭтикетокМассово()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Ссылка КАК Ссылка,
| Товары.Артикул КАК Артикул,
| Товары.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Товары
|ГДЕ
| Товары.ПометкаУдаления = ЛОЖЬ";
Результат = Запрос.Выполнить();
Пока Результат.Следующий() Цикл
// Генерация QR-кода для каждого товара
QRКод = ПолучаемQRКодКакКартинку(Результат.Артикул + "|" + Результат.Наименование);
// Печать этикетки
ПечатнаяФорма = ПолучаемПечатнуюФорму("ЭтикеткаТовара");
ПечатнаяФорма.Параметры.Вставить("QRКод", QRКод);
ПечатнаяФорма.Параметры.Вставить("Артикул", Результат.Артикул);
ПечатнаяФорма.Печать();
КонецЦикла;
КонецПроцедуры
8.2. Интеграция с мобильным приложением
QR-коды можно использовать для взаимодействия с 1С:Мобильная платформа. Например, чтобы сотрудники на складе сканировали коды и автоматически открывали карточку товара:
// Обработчик сканирования в мобильном приложении
Процедура ПриСканированииQR(ДанныеQR)
Разбор = СтрРазделить(ДанныеQR, "|");
Если Разбор.Количество() >= 2 Тогда
Артикул = Разбор[0];
Наименование = Разбор[1];
// Открываем карточку товара
Ссылка = Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
Если Ссылка <> Неопределено Тогда
ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", Новый Структура("Объект", Ссылка));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
8.3. Обмен QR-кодами с контрагентами
Если вы обмениваетесь документами с партнерами через EDI (электронный документооборот), QR-коды можно встраивать в XML/JSON. Пример структуры для счета:
{
"document": {
"number": "SC-12345",
"date": "2026-05-20",
"qr_code": {
"data": "base64:JVBERi0xLjQK...", // QR-код в формате Base64
"format": "png",
"content": "SC-12345|20260520|ООО Ромашка"
},
"items": [...]
}
}
- Сократить время обработки документов на 40%.
- Исключить ошибки ручного ввода данных.
- Упростить инвентаризацию на складе (сканирование вместо ручного поиска).
Для полной автоматизации используйте регламентные задания в 1С (например, ночная генерация этикеток для завтрашних отгрузок).-->
FAQ: Частые вопросы по настройке QR-кодов в 1С
🔹 Как добавить QR-код в печатную форму, если в моей конфигурации нет такой опции?
Если ваша конфигурация не поддерживает QR-коды "из коробки", вам потребуется: