QR-коды в 1С:Предприятие давно перестали быть экзотикой — они стали обязательным элементом печатных форм чеков, накладных, актов и даже внутренних документов. С 2021 года их использование регламентировано законодательно для ряда операций (например, маркировка товаров или электронные чеки), а с 2023 года требования ужесточились. Однако даже без юридических обязательств QR-коды упрощают работу: клиенты быстрее получают доступ к информации, а бизнес сокращает время на обработку документов.

Проблема в том, что стандартные механизмы не всегда покрывают все потребности. В зависимости от версии платформы (1С:Предприятие 8.3 или 1С:8.2), конфигурации (УТ 11, БП 3.0, КА 2.4 и др.) и задач (печать на этикетках, в чеках ККТ, в PDF-документах) настройка может кардинально отличаться. Эта статья поможет разобраться во всех нюансах — от базовой генерации кода до автоматизации его внедрения в бизнес-процессы.

Мы не будем ограничиваться теорией: здесь вы найдете пошаговые инструкции с скриншотами, примеры кода для встраивания в конфигурацию, а также разбор типовых ошибок (например, когда QR-код не сканируется или содержит битые данные). Особое внимание уделим интеграции с онлайн-кассами (Атол, Штрих-М, Эвотор) и маркировке товаров через систему «Честный ЗНАК».

1. Базовая настройка QR-кода в типовых конфигурациях 1С

Если вам нужно просто добавить QR-код в печатную форму (например, в счет или накладную), начинайте с проверки текущей конфигурации. В большинстве типовых решений (Управление торговлей 11, Бухгалтерия предприятия 3.0, Комплексная автоматизация 2.4) функционал уже частично реализован, но часто скрыт в глубине настроек.

Чтобы активировать генерацию QR-кода:

  1. Откройте нужный документ (например, Реализация товаров и услуг).
  2. Перейдите в меню Печать → Настройки печатных форм.
  3. Найдите раздел Дополнительные реквизиты или Штрихкоды (название может отличаться).
  4. Активируйте флажок Включить QR-код и укажите, какие данные он должен содержать (номер документа, ссылку на сайт, реквизиты компании).

Если в вашей конфигурации нет встроенного функционала, придется доработать печатную форму вручную. Для этого:

  • 📄 Откройте форму в режиме Конфигуратор (права администратора обязательны!).
  • 🔧 Перейдите в раздел Объекты → Печатные формы и выберите нужный шаблон.
  • 🖼️ Добавьте элемент ПолеQRКода (или Picture с привязкой к функции генерации).
  • 💻 Напишите обработчик для формирования кода (пример кода — в следующем разделе).
⚠️ Внимание: В конфигурациях старше 1С:Предприятие 8.3.10 может отсутствовать встроенная библиотека для генерации QR-кодов. В этом случае потребуется подключить внешнюю компоненту (например, BarcodeLib или ZXing.Net).
📊 Какую конфигурацию 1С вы используете?
Управление торговлей 11
Бухгалтерия предприятия 3.0
Комплексная автоматизация 2.4
Зарплата и управление персоналом
Другую

2. Генерация QR-кода через встроенные механизмы (без программирования)

С версии 1С:Предприятие 8.3.14 в платформу добавлена встроенная функция ПолучитьQRКод(), которая упрощает жизнь пользователям. Она поддерживает основные стандарты (ISO/IEC 18004) и позволяет кодировать до 2953 байт данных. Рассмотрим, как ею пользоваться на примере добавления QR-кода в печатную форму счета.

Инструкция для 1С:Бухгалтерия 3.0:

  1. Откройте документ Счет на оплату покупателю.
  2. Перейдите в Печать → Настройка печатной формы.
  3. В разделе Дополнительные поля добавьте новый элемент типа Картинка.
  4. В свойствах элемента укажите выражение для генерации кода:
    ПолучитьQRКод(Строка(Номер) + "|" + Дата + "|" + Контрагент.Наименование)
  5. Сохраните изменения и обновите печатную форму.

Если вам нужно добавить QR-код в Управление торговлей 11, алгоритм аналогичен, но есть нюанс: в этой конфигурации по умолчанию активирована проверка на дублирование штрихкодов. Чтобы избежать ошибок, добавьте в данные QR-кода префикс, например:

ПолучитьQRКод("UT11_" + НомерДокумента + "_" + Формат(ТекущаяДата(), "ДФ=ddMMyyyy"))

Вот какие данные чаще всего кодируют в QR:

  • 📄 Номер и дата документа — для быстрого поиска в базе.
  • 🔗 Ссылка на электронный документ (например, на портале «Диадок» или в личном кабинете клиента).
  • 📦 Информация о товаре (артикул, серийный номер, срок годности) — для маркированных товаров.
  • 💳 Реквизиты для оплаты (номер счета, БИК, ИНН) — для ускорения платежей.

Проверьте длину итоговой строки (максимум 2953 символа)

Исключите спецсимволы (%, &, #) — они могут сломать сканирование

Добавьте контрольную сумму или хеш для проверки целостности данных

Протестируйте чтение кода на 3+ разных устройствах-->

3. Программная генерация QR-кода: примеры кода для конфигуратора

Когда встроенных инструментов недостаточно (например, нужно сгенерировать код динамически в обработке или интегрировать его с внешним сервисом), приходится писать код. Ниже приведены готовые решения для разных сценариев.

3.1. Генерация QR-кода через внешнюю компоненту (BarcodeLib)

Если ваша версия не поддерживает Получить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), который позволяет проверять подлинность чека через мобильное приложение ФНС. В эту функцию поддерживают конфигурации с интеграцией ККТ (УТ 11, Розница 2.2, БП 3.0).

Чтобы настроить генерацию QR-кода для чека:

  1. Убедитесь, что в настройках ККТ (Администрирование → Настройки программы → Торговое оборудование) указан правильный фискальный регистратор (Атол, Штрих-М и др.).
  2. В карточке ККТ активируйте опцию Формировать QR-код в чеке.
  3. Проверьте, что в Настройках фискальных документов указан корректный адрес ОФД (оператора фискальных данных).
  4. Создайте тестовый чек и убедитесь, что в нижней части появился QR-код с ссылкой вида https://check.ofd.ru/?fn=9999999999&i=12345&fp=6789.

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

Проблема Возможная причина Решение
QR-код пустой Не передан фискальный признак (FP) от ККТ Обновите драйвер ККТ и проверьте связь с ОФД
Код не сканируется Низкое разрешение печати Установите в настройках ККТ минимальный размер шрифта 24пт
В коде ошибка "Неверный формат" Неверный URL ОФД Проверьте адрес ОФД в настройках (например, для Атол — https://ofd.taxcom.ru)
QR-код формируется, но не открывается Истек срок действия чека (более 30 дней) Чеки хранятся в ОФД ограниченное время — запросите дубликат

Для касс Атол и Штрих-М может потребоваться дополнительная настройка в драйвере. Например, в Атол: Драйвер ККТ 10 нужно:

  1. Открыть Настройки → Параметры чека.
  2. В разделе QR-код указать Формат: GS1 и Размер: Средний.
  3. Активировать опцию Печатать QR-код даже если нет связи с ОФД (для тестирования).
Что делать, если ОФД не отвечает?

Если оператор фискальных данных (ОФД) недоступен, чек все равно будет напечатан, но QR-код может содержать неполные данные.

В этом случае:

1. Проверьте интернет-соединение на кассе.

2. Перезагрузите ККТ и роутер.

3. Свяжитесь с поддержкой ОФД (контакты есть в договоре).

4. Если проблема повторяется, временно переключитесь на резервный ОФД (если он настроен).

5. QR-коды для маркировки товаров (система «Честный ЗНАК»)

С 2026 года маркировка распространилась на большинство групп товаров: от молока до обуви. QR-код в этом случае содержит уникальный код маркировки (GTIN + серийный номер) и должен соответствовать стандарту GS1 DataMatrix. В эту задачу решают через интеграцию с системой «Честный ЗНАК».

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

  1. Получите доступ к ЛК «Честный ЗНАК» (регистрация через ЕГАИС или напрямую на сайте).
  2. Настройте обмен данными между и «Честный ЗНАК»:
    • В 1С:УТ 11 перейдите в Администрирование → Интеграция → Честный ЗНАК.
    • Укажите Логин, Пароль и Идентификатор организации из ЛК.
    • Активируйте опцию Автоматическая отправка данных при поступлении.
  3. Сгенерируйте коды маркировки для товаров:
    // Пример кода для запроса кода маркировки
    

    Запрос = Новый HTTPЗапрос("https://markirovka.ru/api/v1/codes");

    Запрос.УстановитьТелоИзСтроки(JSON.Записать(Новый Структура(

    "gtin", "4601234567890",

    "count", 10

    )));

    Ответ = Запрос.Выполнить();

    КодыМаркировки = JSON.Прочитать(Ответ.ПолучитьТелоКакСтроку()).codes;

  4. Напечатайте этикетки с QR-кодами через Печатные формы → Этикетки.
  5. Особенности работы с маркированными товарами:

    • 📦 Групповая маркировка (например, для пачек сигарет) требует специального формата QR-кода с агрегатором.
    • 🔄 Возврат товара обязательно фиксируется в «Честный ЗНАК» через метод /api/v1/documents/return.
    • Срок действия кода — 1 год с момента генерации (после истечения нужно запрашивать новый).
    ⚠️ Внимание: С 1 марта 2026 года за несоблюдение правил маркировки предусмотрены штрафы до 300 000 рублей (ст. 15.12 КоАП РФ). Перед печатью этикеток всегда проверяйте актуальность кодов через метод /api/v1/codes/validate.

    6. Оптимизация QR-кодов для печатных форм

    QR-код в документе должен быть не только корректным, но и удобочитаемым. Вот ключевые правила оформления:

    6.1. Технические требования к изображению

    • 📏 Минимальный размер: 20×20 мм (для чеков ККТ) или 30×30 мм (для этикеток).
    • 🎨 Цветовая схема: черный код на белом фоне (контраст не менее 70%).
    • 🖨️ Разрешение печати: 300 dpi для термотрансферных принтеров, 600 dpi для лазерных.
    • 🔍 Уровень коррекции ошибок: L (7% восстановление) для внутренних документов, H (30%) для этикеток.

    6.2. Размещение QR-кода в документе

    Пример оптимального размещения для счета на оплату:

    | Шапка документа (логотип, реквизиты) |

    | Таблица с товарами/услугами |

    | ИТОГО: 10 000 руб. |

    |------------------------------------|

    | [QR-код 30x30 мм] | Реквизиты банка |

    Для этикеток маркированных товаров используйте шаблон:

    | Наименование товара |

    | Артикул: 12345 |

    |--------------------------|

    | [QR-код 25x25 мм] |

    |--------------------------|

    | GTIN: 4601234567890 |

    | Серийный номер: SN123 |

    6.3. Проверка качества QR-кода

    Перед массовой печатью протестируйте код на:

    • 📱 Смартфонах (iOS/Android) с разным разрешением камеры.
    • 🖥️ Сканерах штрихкодов (например, Honeywell Voyager или Zebra DS2208).
    • 🌐 Онлайн-валидаторах (например, ZXing Decoder).

    - Для чеков ККТ — минимальный размер (экономит бумагу).

    - Для этикеток — максимальный (улучшает сканирование на складе).

    - Для PDF-документов — средний (25×25 мм) с высоким разрешением (600 dpi).-->

    7. Типовые ошибки и их решение

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

    Ошибка Причина Решение
    QR-код не генерируется Отсутствует лицензия на внешнюю компоненту Приобретите лицензию BarcodeLib или обновите платформу до 8.3.14+
    Код сканируется, но ведет на битую ссылку Неверный формат данных (например, пробелы или кавычки) Используйте СтрЗаменить() для очистки строки:
    Данные = СтрЗаменить(Данные, """", "");
    QR-код в чеке не соответствует 54-ФЗ Не передан фискальный признак (FP) от ККТ Обновите драйвер ККТ и проверьте связь с ОФД
    При печати код размытый Низкое разрешение принтера или неправильный формат картинки Установите в настройках печати Качество: Высокое и формат PNG
    QR-код не читается на складе Слишком маленький размер или низкий контраст Увеличьте размер до 30×30 мм и используйте черный цвет на белом фоне

    Если проблема не решена, проверьте:

    • 🔌 Логи интеграции они находятся в Администрирование → Журнал регистрации).
    • 📡 Связь с ОФД/«Честный ЗНАК» (используйте Пинг или Tracer для диагностики).
    • 📋 Актуальность конфигурации (в некоторых случаях требуется обновление до последней версии).
Как проверить связь с ОФД?

Выполните в командной строке:

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-коды "из коробки", вам потребуется:

  1. Обновить платформу до версии 1С:Предприятие 8.3.14+ (там есть встроенная функция ПолучитьQRКод()).
  2. Или подключить внешнюю компоненту (например, BarcodeLib или ZXing).
  3. Или написать обработку на встроенном языке, которая будет генерировать код через HTTP-запрос к онлайн-сервису (например,