В современных условиях ведения бизнеса возможность быстрой оплаты счета через мобильное приложение банка становится стандартом де-факто. В конфигурации 1С:Управление нашей фирмой (УНФ) версии 3.0 предусмотрен механизм формирования QR-кода, однако пользователи часто сталкиваются с тем, что код не отображается в печатной форме «Счет на оплату». В рамках этой статьи мы разберем, как активировать этот функционал, выясним причины его отсутствия для определенных типов контрагентов и проанализируем технические способы решения задачи.
Прежде чем приступать к программным доработкам, рассмотрим стандартные требования системы. 1С:УНФ 3.0 ориентируется на стандарт ГОСТ Р 56042-2014, но иногда бизнесу нужен и обычный счёт на оплату со штрихкодом
, который регламентирует двумерные символики в платежных реквизитах. Чтобы QR-код появился в счете автоматически, должны быть соблюдены два ключевых условия:
БИК банка и соответствие номера счета маске (20 знаков). Если реквизиты заполнены некорректно или не полностью, алгоритм генерации изображения просто не сработает.Проанализируем ситуацию: если вы выставляете счет физическому лицу, а кода нет — проверьте настройки в разделе «Настройки» — «Организация». Убедитесь, что банковский счет отмечен как «Основной».
Выясним причину, по которой пользователи часто видят QR-код в «1С:Бухгалтерия 8», но не находят его в УНФ при работе с компаниями. В «Бухгалтерии предприятия» разработчики допустили вывод кода для всех типов контрагентов. В УНФ же применена более строгая сегментация. Система программно проверяет тип контрагента перед формированием области макета.
Рассмотрим логику работы кода в модуле менеджера документа СчетНаОплату или используйте готовый счет с QR-кодом для УНФ. При формировании печатной формы вызывается процедура, которая проверяет реквизит ВидКонтрагента. Если значение равно Перечисления.ВидыКонтрагентов.ЮридическоеЛицо, блок с кодом просто исключается из построения табличного документа. Это ограничение нельзя обойти простой «галочкой» в пользовательском интерфейсе.
Если бизнес-процессы вашей компании требуют наличия QR-кода в счетах для юридических лиц (например, для удобства оплаты через бизнес-карты или мобильные приложения для бизнеса), нам потребуется внести небольшие изменения в программный код или установить готовое расширение QR-код на оплату в печатной форме для УНФ 3.0 — для этого подойдёт готовое расширение QR-код на оплату для УНФ 3.0. Рассмотрим, как сделать это правильно, используя механизм расширений, чтобы не снимать конфигурацию с поддержки.
Разберем по шагам процесс доработки:
СчетНаОплату.ПечатьСчетаНаОплату или специализированная функция подготовки данных).Посмотрим на пример того, как может выглядеть измененный фрагмент кода в расширении (используем аннотацию &Вместо или &ИзменениеИКонтроль):
&Вместо("ПодготовитьДанныеДляПечатиСчета")
Процедура Расш1_ПодготовитьДанныеДляПечатиСчета(ПараметрыПечати, ДанныеДляПечати)
// Вызываем оригинальную логику
ПродолжитьВызов(ПараметрыПечати, ДанныеДляПечати);
// Переопределяем условие видимости QR-кода
Для Каждого СтрокаДанных Из ДанныеДляПечати Цикл
// Принудительно разрешаем вывод QR, если заполнены банковские реквизиты
Если ЗначениеЗаполнено(СтрокаДанных.БанковскийСчетОрганизации) Тогда
СтрокаДанных.ВыводитьQRКод = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Важный момент: использование расширения позволяет сохранить возможность обновления программы в будущем. Мы не меняем структуру данных, а лишь корректируем поведение печатной формы «на лету», используя внешнюю печатную форму счета на оплату на базе типовой.
Проанализируем ситуацию, когда программирование недоступно. В УНФ есть инструмент «Макеты печатных форм» (находится в разделе «Настройки — Печатные формы, отчеты и обработки») — для расширения его возможностей есть универсальный конструктор печатных форм и QR-кодов. Вы можете отредактировать макет «Счет на оплату».
Однако, стоит понимать ограничения этого метода:
ОбластьQRКода. Вы можете переместить её или изменить размер.ДвоичныхДанных изображения занимается программный модуль.Рассмотрим подробнее, почему даже при правильном типе контрагента код может не появиться. Система 1С выполняет жесткую проверку данных перед формированием QR. Проверьте следующие параметры в справочнике БанковскиеСчета:
Выясним причину ошибки: если в окне предварительного просмотра печатной формы вместо QR-кода вы видите пустое место, попробуйте временно сменить покупателя в документе на «Физическое лицо» (для теста). Если код появился — значит, проблема в типе контрагента. Если не появился даже для физлица — ищите ошибку в реквизитах вашего расчетного счета.
Хотя автор темы указал, что СБП использовать не планируется, проанализируем этот вариант как альтернативу — для этого подойдёт решение для оплаты по QR через СБП. Интеграция с СБП в УНФ 3.0 позволяет выводить QR-код, который работает не по ГОСТу, а через платежный агрегатор или напрямую через банк. В этом случае:
Для многих компаний это оказывается проще, чем привлекать программиста для написания расширения, так как настройка СБП является штатной и занимает 15–20 минут в пользовательском режиме.
Подведем итоги нашего анализа. Чтобы получить рабочий QR-код в счете на оплату в 1С:УНФ 3.0, мы рекомендуем следующий алгоритм действий:
СчетНаОплату, убирая проверку на тип контрагента.Таким образом, гибкость платформы 1С позволяет решить задачу вывода QR-кода любым из перечисленных способов, в зависимости от наличия ресурсов на разработку и требований бизнес-логики вашей компании.