В современных условиях ведения розничной торговли вопрос экономии кассовой ленты и перехода на электронные чеки становится все более актуальным. Согласно федеральному закону 54-ФЗ, продавец обязан выдать покупателю чек, однако он может быть предоставлен в электронной форме на абонентский номер или адрес электронной почты, если покупатель выразил такое желание до момента расчета. В этой статье мы подробно рассмотрим, как реализовать автоматическое отключение печати бумажного чека в 1С:Розница 2.3 при условии, что чек отправляется клиенту в электронном виде.
Начнем с самого простого и стандартного способа, который предусмотрен в последних релизах конфигурации 1С:Розница 2.3. Разберем последовательность действий для активации этой функции:
Проанализируем ситуацию: часто пользователи сталкиваются с тем, что даже при включенной опции чеки продолжают печататься. Это может быть связано с тем, что настройки в самой программе вступают в конфликт с настройками драйвера кассового аппарата или используемым шаблоном чека. Если стандартная галочка не помогает, перейдем к более глубоким настройкам.
Иногда программная команда из 1С игнорируется оборудованием, потому что в самом драйвере жестко прописано обязательное выполнение печати. Рассмотрим, как изменить эти параметры для популярных моделей касс.
Для оборудования АТОЛ (драйвер 10.х):
Запустим утилиту «Тест драйвера ККТ». Перейдем в раздел «Свойства», далее в «Параметры ККТ». В дереве настроек необходимо найти пункт, отвечающий за электронные чеки. В некоторых версиях прошивок ККТ АТОЛ существует параметр «Печать чека», который можно перевести в состояние «Выключена» при условии передачи контактных данных клиента. Также проверьте настройку «Способ отправки чека» — если выбрано «Только электронно», ККТ будет ожидать данные e-mail или телефона и блокировать принтер.
Для оборудования Штрих-М:
Воспользуемся утилитой «Тест драйвера ККТ» от производителя. Нам необходимо зайти в «Таблицы». Как правило, это Таблица 1 (Тип и режим кассы). В ней следует найти поле, отвечающее за запрет печати бумажного чека (например, ряд 1, поле 19, хотя индекс может меняться в зависимости от модели прошивки). Изменение значения этого поля на 1 или 2 (согласно документации к конкретной модели) позволит подавить физическую печать при наличии контактов покупателя.
Разберем возможности обновленного интерфейса рабочего места кассира (1С:РМК), который интегрируется с 1С:Розница 2.3. В новом РМК разработчики реализовали более гибкий механизм управления чеками. В настройках профиля РМК присутствует флаг «Не печатать бумажный чек». Если его активировать, то в самом интерфейсе продажи при вводе контактных данных покупателя (телефон или почта) система автоматически подает команду драйверу на отмену печати. Это решение является наиболее современным и рекомендуемым для конфигураций на управляемых формах.
Если вышеуказанные способы не привели к желаемому результату, проанализируем возможность внесения изменений в код программы с помощью расширения конфигурации. Это позволит сохранить поддержку программы, не внося изменений в основную конфигурацию. Для решения этой задачи можно использовать расширение для отправки электронных чеков по умолчанию в РМК Розницы 2.3.
Основная задача программиста — вмешаться в процесс формирования структуры данных, которая отправляется на ККТ. Разберем пример кода, который можно внедрить в процедуру подготовки данных чека. Нам нужно найти метод, отвечающий за заполнение параметров перед вызовом фискализации (обычно это модули менеджера оборудования).
В расширении мы можем перехватить процедуру ПодготовитьДанныеЧека и добавить логику проверки наличия контактов. Посмотрим на пример реализации:
&После("ПодготовитьДанныеЧека")
Процедура ИН_ПодготовитьДанныеЧека(ДанныеЧека, ПараметрыРегистрации)
// Проверяем, указан ли e-mail или телефон покупателя
Если ЗначениеЗаполнено(ДанныеЧека.КонтактныеДанныеПокупателя) Тогда
// Устанавливаем признак подавления печати для драйвера
ДанныеЧека.Вставить("ПечатьЧек", Ложь);
// Для некоторых моделей ККТ может потребоваться дополнительный флаг
Если ДанныеЧека.Свойство("Параметры") Тогда
ДанныеЧека.Параметры.Вставить("PrintText", False);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Выясним причину, почему это важно: структура ДанныеЧека является универсальным контейнером, который драйвер 1С использует для формирования XML-пакета. Параметр ПечатьЧек со значением Ложь дает понять компоненте печати, что бумажный носитель не требуется. Однако стоит учитывать, что не все старые драйверы поддерживают этот параметр корректно.
Рассмотрим ситуацию со стороны законодательства. Важно понимать, что физическая невыдача чека без отправки электронной версии является нарушением 54-ФЗ. При настройке системы 1С следует обратить внимание на следующие моменты:
e-mail чаще всего бесплатна. Если у вас в ОФД закончился баланс для SMS, а бумажную печать вы отключили, чек не уйдет покупателю, что технически станет нарушением.Если ваша касса принципиально не поддерживает полную отмену печати (старые модели), проанализируем альтернативный вариант — «Режим экономии чековой ленты». Эта настройка активируется непосредственно в прошивке ККТ через тест драйвера. При этом чек все равно печатается, но из него удаляются все необязательные поля, рекламные тексты, а шрифт становится максимально мелким. Это не отключает печать полностью, но сокращает расход ленты в 2-3 раза.
Подводя итог, можно сказать, что решение задачи отключения печати бумажных чеков в 1С:Розница 2.3 требует комплексного подхода: от проверки флагов в справочниках 1С до тонкой настройки параметров драйвера ККТ и, в ряде случаев, написания небольшого программного расширения.