При работе в 1С:Управление торговлей 11 пользователи часто сталкиваются с необходимостью размещения на одном ценнике нескольких идентификационных кодов — например, стандартного штрихкода товара и QR-кода для перехода на сайт компании. Давайте разберем, почему штатный функционал имеет ограничения и как можно реализовать такую задачу профессионально.
Механизм печати этикеток и ценников в конфигурациях на базе Библиотеки стандартных подсистем (БСП), к которым относится УТ 11, спроектирован как объектно-ориентированная система. Она жестко привязана к регистру сведений Штрихкоды номенклатуры.
Когда вы настраиваете макет, система ожидает получения одной записи из базы данных. Алгоритмы формирования макета настроены на получение одного набора данных, и штатный инструмент печати попросту «не знает», откуда брать информацию для второго кода. Попытка просто добавить второе поле с типом Штрихкод в макет не принесет результата, так как логика подсистемы печати ограничена вызовом функции формирования только для одного идентификатора.
Наиболее правильным и безопасным способом решения данной задачи является создание расширения конфигурации. Это позволит не снимать конфигурацию с поддержки и сохранить возможность обновления УТ 11 в будущем. Рассмотрим основные шаги реализации:
URL-адрес для QR-кода.Картинка. Значение для этой картинки мы будем формировать программно с помощью Генератора штрихкодов, встроенного в БСП.Для печати QR-кода, содержащего ссылку на сайт, нам не обязательно задействовать регистр Штрихкоды номенклатуры. Мы можем динамически сформировать строку URL в коде. Рассмотрим примерную логику формирования:
// Примерный алгоритм формирования картинки QR-кода
// Получаем объект генератора из БСП
Генератор = Новый ГенераторШтрихкодов;
Генератор.ТипКода = ТипШтрихкода.QR;
Генератор.Данные = "https://your-site.ru/product/" + СсылкаНаТовар.Код;
// Генерируем картинку
ДвоичныеДанныеКартинки = Генератор.ПолучитьКартинку();
// Передаем полученные данные в область макета
ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
Таким образом, первый штрихкод (товарный) печатается через стандартный механизм 1С, а второй код (QR) — программно «подкладывается» в именованную область макета как графический объект. Это обеспечивает стабильную работу и гибкость: вы можете выводить любые данные, доступные из контекста номенклатуры.
Чтобы решение работало стабильно и не вызывало ошибок при обновлении системы, следуйте этим правилам:
1С может обновлять в новых релизах.QR-код, но это лишит ценник уникальности для клиента. Программная генерация предпочтительнее, так как она позволяет кодировать индивидуальные параметры товара (артикул, ссылку на конкретную страницу карточки товара).QR-код для каждого товара должен вести на уникальную страницу, храните соответствующие URL в Дополнительных реквизитах номенклатуры. Это позволит легко управлять данными без изменений в структуре конфигурации.Подводя итог, можно сказать, что хотя типовой функционал УТ 11 не предусматривает «коробочного» решения для двух кодов, использование расширения позволяет достаточно легко внедрить эту возможность. При этом вы сохраняете чистоту конфигурации и получаете полностью автоматизированный процесс печати ценников с необходимой вам маркетинговой информацией.