В условиях дефицита или резкого подорожания чековой ленты вопрос перехода на электронные чеки становится критически важным для бизнеса. В платформе 1С 7.7, несмотря на её возраст, технически возможно реализовать отправку электронного чека (через SMS или Email) с полным или частичным отказом от печати бумажного носителя. Рассмотрим детально, как это сделать на примере ККТ Атол, используя наиболее распространенные драйверы и обработки обслуживания.
Согласно 54-ФЗ, продавец обязан выдать бумажный чек, если покупатель не попросил об электронном до момента расчета. Если же покупатель предоставил номер телефона или адрес электронной почты, электронный чек приравнивается к бумажному. С технической стороны для реализации этого механизма нам нужно передать в кассовый аппарат два ключевых параметра:
Большинство систем на «семерке» используют типовую или слегка модифицированную обработку обслуживания, например, frATOL54_comm_105.ert. Нам необходимо найти в коде этой обработки процедуру, отвечающую за закрытие чека. Обычно она называется ЗакрытьЧек, CloseCheck или ПечатьЧека.
Проанализируем алгоритм: перед тем как вызвать финальную команду закрытия документа в фискальном накопителе, мы должны записать атрибут контакта покупателя. Разберем по шагам, как добавить передачу Тега 1008.
В зависимости от версии установленного драйвера, программный код будет отличаться. Рассмотрим пример для ДТО 10, так как он является наиболее современным и стабильным для работы с ФФД 1.05 и 1.2.
В коде обработки нам нужно найти объект драйвера (часто это Драйвер или Объект) и добавить передачу параметров перед закрытием чека. Рассмотрим пример кода:
// Установка контакта покупателя (Тег 1008)
Драйвер.AttrNumber = 1008;
Драйвер.AttrValue = СокрЛП(КонтактПокупателя); // Переменная с телефоном или почтой
Драйвер.WriteAttribute();
// Установка признака электронного чека (чтобы не печатать бумагу)
// Для ДТО 10 используется параметр LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY
Драйвер.setParam(65572, Истина);
Если вы используете ДТО 8, метод будет выглядеть иначе. Проанализируем пример записи реквизита для старой версии драйвера:
// Для ДТО 8
Драйвер.AttrNumber = 1008;
Драйвер.AttrValue = "ivanov@mail.ru";
Драйвер.WriteAttribute();
// Отключение печати может зависеть от прошивки ККТ
// В некоторых моделях это свойство 65 в таблицах или параметр в методе CloseCheck
Чтобы программисту было удобно работать, а пользователю — вводить данные, необходимо изменить форму документа, из которого пробивается чек (например, ЧекККМ или ПриходныйКассовыйОрдер). Выясним, какие изменения потребуются:
Рассмотрим пример передачи параметров из формы документа в обработку обслуживания:
СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("ЭлектронныйЧек", 1);
СписокПараметров.Установить("Контакт", СокрЛП(ТелефонИлиПочта));
// Вызов функции печати из обработки обслуживания
ОткрытьФормуМодально("Отчет", СписокПараметров, КаталогИБ() + "ExtForms\Equip\frATOL54_comm_105.ert");
Важно помнить, что сама касса (ККТ) лишь формирует фискальный признак и передает данные в ОФД. Физическую отправку SMS или электронного письма покупателю осуществляет Оператор Фискальных Данных. Проанализируем ситуацию: если вы просто укажете тег 1008, но в личном кабинете ОФД не включена услуга отправки чеков, покупатель ничего не получит.
Важные моменты:
Выясним причину, по которой касса может продолжать печатать бумагу даже после внесения изменений в код. Это часто связано с версией прошивки ККТ. В ранних версиях (Платформа 2.5) полная отмена печати не поддерживалась на уровне протокола — касса все равно выдавала «слип» с итоговой суммой. Для корректной работы без бумаги рекомендуется обновить ККТ до Платформы 5.0 и использовать драйвер версии 10.9 и выше.
Если специфика вашего бизнеса не позволяет полностью перейти на электронные чеки (например, покупатели пожилого возраста), можно программно уменьшить расход ленты. Посмотрим на параметры настройки драйвера Атол:
Таким образом, сочетание программной доработки 1С 7.7 и тонкой настройки драйвера позволит вам сократить расходы на чековую ленту на 80-100%, обеспечив при этом соблюдение всех требований законодательства.