В практике автоматизации розничной торговли и сферы услуг часто возникает ситуация, когда бизнес-процесс требует использования одного фискального регистратора для нескольких торговых точек или складов. Типичный пример: услуги оказываются мастерами на выезде или в разных филиалах, а прием платежей и печать чеков сосредоточены в одном сервисном центре. Основная сложность в 1С:Розница заключается в том, что архитектура программы жестко связывает справочники Магазины, Рабочие места и Кассы ККМ. Разберем подробно, как реализовать работу одной ККТ на несколько магазинов, сохранив при этом корректное списание остатков ТМЦ.
Перед тем как переходить к техническим настройкам, проанализируем правовую базу. Согласно 54-ФЗ (в частности, п. 5.6 ст. 1.2), использование ККТ, расположенной вне места совершения расчета, разрешено в определенных случаях:
В этих ситуациях допускается не выдавать бумажный чек, а отправлять его в электронном виде или демонстрировать QR-код. Таким образом, для сферы услуг схема с одной центральной кассой полностью легальна.
В современных релизах 1С:Розница (начиная с версий 2.3) и в 1С:УНФ появился встроенный механизм удаленной фискализации. Рассмотрим подробнее, как его настроить. Этот метод позволяет отправлять команды на печать чека с удаленного рабочего места на компьютер, к которому физически подключена ККТ.
Разберем по шагам настройку этого функционала:
Подключаемое оборудование для данного экземпляра ККТ следует включить флаг "Использовать для удаленной фискализации".Чек система отправит XML-пакет на сервер, который поставит его в очередь и фискализирует.Важный момент: при такой схеме 1С позволяет выбирать Склад списания в самом документе продажи. Это решает главную задачу автора — товар списывается с реального места нахождения, а чек выходит на общей кассе.
Если версия программы не поддерживает удаленную фискализацию или вы хотите избежать сложных технических настроек, рассмотрим архитектурный подход. Мы можем разделить момент фиксации продажи и момент приема денег.
Проанализируем этот алгоритм:
Заказ покупателя или Реализация товаров и услуг. В этот момент происходит резервирование или списание товара с конкретного склада магазина.Заказ и на его основании создает Чек ККМ (или Приходный кассовый ордер с последующей фискализацией).Перемещение товаров в момент пробития чека.Для продвинутых пользователей и программистов рассмотрим вариант использования промежуточного программного обеспечения. Драйверы АТОЛ v.10 поддерживают работу через Web-сервер.
Выясним причину, почему это удобно: драйвер превращает кассу в сетевое устройство. Мы можем обращаться к ней по IP-адресу через протоколы HTTP/JSON. В 1С это реализуется следующим образом:
На каждом рабочем месте в разных магазинах создается свой экземпляр Подключаемого оборудования, но в параметрах подключения (IP-адрес, порт) указываются данные одной и той же физической кассы. Чтобы система не блокировала порт, используется очередь запросов на стороне драйвера.
Рассмотрим пример кода, который может потребоваться для программной инициализации печати на удаленном устройстве через БПО:
// Пример упрощенного вызова фискализации через БПО
ПараметрыЧека = ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.СформироватьЧекДляПечати(Объект.Ссылка);
Результат = МенеджерОборудованияКлиент.ВыполнитьКоманду(
ИдентификаторУстройства,
"ФискализироватьЧек",
ПараметрыЧека
);
Если Не Результат.Результат Тогда
ТекстОшибки = "Ошибка фискализации: " + Результат.ОписаниеОшибки;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
КонецЕсли;
При использовании одной кассы для разных магазинов в 1С неизбежно возникнет вопрос: как закрывать смену? Если в базе создано несколько "виртуальных" касс ККМ, привязанных к одной физической, то при закрытии смены в одном магазине касса напечатает Z-отчет и закроет смену на железном уровне. Остальные магазины не смогут пробивать чеки, пока не откроют смену заново.
Рассмотрим рекомендации по решению этой проблемы:
Отчет о розничных продажах.Чек ККМ непосредственно перед записью, при этом оставляя саму Кассу ККМ неизменной (привязанной к основному рабочему месту).Чтобы товар списывался корректно, необходимо убедиться, что в настройках Правила ценообразования и Настройки магазинов разрешено списание с разных складов. Если вы используете РМК, разберем настройку:
В типовой 1С:Розница склад списания берется из настроек текущего магазина. Если вам нужно пробивать чек в Магазине А, а списывать с Магазина Б, потребуется небольшая доработка формы Чека ККМ. Проанализируем ситуацию: в коде формы при добавлении товара склад подставляется автоматически. Мы можем добавить возможность выбора склада или настроить логику так, чтобы система искала остатки на всех доступных складах организации.
Резюмируя вышесказанное: наиболее стабильным решением для современных конфигураций является использование штатной удаленной фискализации или схемы Заказ -> Оплата. Это позволяет соблюдать законодательство, корректно вести складской учет в разрезе магазинов и не иметь проблем с расхождением наличности в X-отчетах.