При организации продаж через интернет-магазин современные компании сталкиваются с необходимостью соблюдения требований Федерального закона № 54-ФЗ. Типичный сценарий выглядит следующим образом: клиент оплачивает заказ на сайте банковской картой, система должна мгновенно сформировать электронный чек на аванс (предоплату), а при физической выдаче товара на точке самовывоза — пробить второй чек с признаком «Зачет аванса». Реализовать эту схему в связке с программой «1С:Управление торговлей 11» можно несколькими способами. Разберем подробно, какое оборудование выбрать, как обойти технические ограничения клиент-серверной архитектуры 1С и как настроить систему для экономии на чековой ленте.
Выясним причину, почему у многих компаний возникает дилемма при выборе между покупкой физического фискального регистратора и арендой облачной кассы. Бытует ошибочное мнение, что для интернет-торговли и розничной точки обязательно требуются два разных аппарата. Проанализируем законодательную базу.
Согласно разъяснениям ФНС России (письмо № ЕД-4-20/19359), действующее законодательство не запрещает использовать одну и ту же онлайн-кассу как для регистрации продаж в физическом магазине, так и для фискализации интернет-платежей. При регистрации ККТ в личном кабинете налогоплательщика в поле «Место установки ККТ» вы можете одновременно указать фактический адрес магазина и адреса доменов ваших интернет-сайтов (в пределах доступных 256 символов).
Рассмотрим ключевые различия между решениями:
Если вы решили использовать обычную ККТ, подключенную к рабочему месту кассира, вы неизбежно столкнетесь с архитектурным ограничением 1С. Обмен данными с сайтом (например, на CMS Битрикс) выполняется в фоновом режиме на сервере «1С:Предприятие». Однако драйвер ККТ и сама касса физически подключены к клиентскому компьютеру. Напрямую вызвать методы торгового оборудования из серверного кода без участия пользователя невозможно.
Разберем по шагам, как решить эту задачу в современных версиях «1С:Управление торговлей 11»:
Шаг 1: Использование механизма «Очередь чеков».
В типовой конфигурации 1С:УТ 11 предусмотрен специальный регистр сведений «Очередь чеков ККТ». При поступлении оплаты с сайта на стороне сервера создается документ ЭквайринговаяОперация или ПриходныйКассовыйОрдер. Вместо мгновенной попытки печати, система помещает запись о необходимости фискализации в очередь.
Для программного добавления чека в очередь на сервере используется следующий алгоритм:
// Пример помещения чека в очередь фискализации из серверного контекста
Процедура ПоместитьЧекВОчередь(ДокументСсылка, КонтактныеДанные) Экспорт
МенеджерЗаписи = РегистрыСведений.ОчередьЧековККТ.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Документ = ДокументСсылка;
МенеджерЗаписи.Состояние = Перечисления.СостоянияЧековВОчереди.Новый;
МенеджерЗаписи.ФискализироватьТолькоЭлектронно = Истина;
МенеджерЗаписи.АдресЭлектроннойПочты = КонтактныеДанные.Email;
МенеджерЗаписи.Телефон = КонтактныеДанные.Телефон;
Попытка
МенеджерЗаписи.Записать(Истина);
Исключение
ЗаписьЖурналаРегистрации("ИнтеграцияККТ", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Шаг 2: Настройка рабочего места «фискализатора».
На клиентском компьютере, к которому физически подключена касса, запускается сеанс 1С. В настройках подключаемого оборудования для данной ККТ активируется регламентный режим опроса очереди чеков. Программа с заданной периодичностью считывает новые записи из регистра ОчередьЧековККТ, инициализирует локальный драйвер и отправляет команду на фискализацию чека.
Шаг 3: Использование Web-сервисов драйверов (альтернативный вариант).
Современные драйверы ККТ (например, АТОЛ ДККТ 10) имеют встроенный веб-сервер. Вы можете запустить его на компьютере с подключенной кассой. В этом случае сервер 1С может напрямую отправлять JSON-запросы по протоколу HTTP на IP-адрес этого компьютера. Это позволяет полностью отказаться от постоянного запуска клиентского сеанса 1С для пробития интернет-чеков.
Постоянная печать интернет-чеков на бумажной ленте приводит к быстрому износу печатающей головки ККТ и нерациональному расходу бумаги. Выясним, как заставить обычную кассу работать в режиме «облачной», то есть отправлять чеки клиенту только по SMS или Email, не распечатывая бумагу.
Для реализации безбумажного режима выполним следующие действия в «1С:Управление торговлей 11»:
Рассмотрим, как это работает на уровне кода драйвера. Чтобы касса не печатала чек, в XML-пакет, передаваемый на ККТ через обработку обслуживания, добавляются обязательные параметры: email или телефон покупателя, а также флаг отказа от печати.
// Фрагмент кода, отключающий печать бумажной ленты при программном обращении к драйверу ККТ
ОбъектДрайвера.УстановитьПараметр("ЭлектронныйЧек", Истина);
ОбъектДрайвера.УстановитьПараметр("ПолучательЧека", "customer@domain.ru");
// При отправке данных параметров физический принтер сформирует фискальный признак,
// отправит данные в ОФД, но пропустит шаг протяжки бумажной ленты.
Важное требование закона: Отправить исключительно электронный чек без печати бумажного можно только в том случае, если покупатель предоставил свои контактные данные (телефон или почту) до момента совершения расчета. Если контакты отсутствуют, касса обязана выдать бумажный чек.
Рассмотрим подробнее двухэтапную схему отражения продаж, которая требуется при торговле по предоплате:
Этап 1: Получение оплаты на сайте и пробитие чека на аванс.
При оплате картой на сайте в 1С создается документ ЭквайринговаяОперация. При пробитии чека из этого документа 1С автоматически устанавливает признак способа расчета «Предоплата 100%» (если состав товаров определен и зафиксирован в заказе) или «Аванс» (если точный перечень товаров на момент оплаты неизвестен). Сумма оплаты распределяется по позициям номенклатуры.
Этап 2: Выдача товара и зачет аванса.
Когда клиент приходит за товаром, менеджер оформляет документ РеализацияТоваровУслуг. В документе заполняется вкладка «Оплата», где указывается зачет ранее полученного платежа по эквайрингу. При нажатии кнопки «Пробить чек» в документе реализации 1С формирует xml-пакет со следующими параметрами:
Таким образом, требования 54-ФЗ полностью соблюдаются: налоговая служба видит и момент поступления денежных средств, и момент фактической отгрузки товаров с зачетом ранее полученных сумм.