Как использовать одну ККТ для нескольких магазинов в 1С:Розница с корректным списанием товаров?

Программист 1С v8.3 (Управляемые формы) Управленческий учет Сфера услуг, туризм и социальный сектор
← На главную

В практике автоматизации розничной торговли и сферы услуг часто возникает ситуация, когда бизнес-процесс требует использования одного фискального регистратора для нескольких торговых точек или складов. Типичный пример: услуги оказываются мастерами на выезде или в разных филиалах, а прием платежей и печать чеков сосредоточены в одном сервисном центре. Основная сложность в 1С:Розница заключается в том, что архитектура программы жестко связывает справочники Магазины, Рабочие места и Кассы ККМ. Разберем подробно, как реализовать работу одной ККТ на несколько магазинов, сохранив при этом корректное списание остатков ТМЦ.

Законодательный аспект и 54-ФЗ

Перед тем как переходить к техническим настройкам, проанализируем правовую базу. Согласно 54-ФЗ (в частности, п. 5.6 ст. 1.2), использование ККТ, расположенной вне места совершения расчета, разрешено в определенных случаях:

  1. Оказание услуг (за исключением услуг общественного питания).
  2. Торговля при разносной продаже и дистанционным способом.
  3. Расчеты в месте выполнения работ (например, монтаж запчастей на объекте клиента).

В этих ситуациях допускается не выдавать бумажный чек, а отправлять его в электронном виде или демонстрировать QR-код. Таким образом, для сферы услуг схема с одной центральной кассой полностью легальна.

Вариант 1. Использование штатного механизма удаленной фискализации

В современных релизах 1С:Розница (начиная с версий 2.3) и в 1С:УНФ появился встроенный механизм удаленной фискализации. Рассмотрим подробнее, как его настроить. Этот метод позволяет отправлять команды на печать чека с удаленного рабочего места на компьютер, к которому физически подключена ККТ.

Разберем по шагам настройку этого функционала:

  1. На основном компьютере (сервере кассы) необходимо установить драйвер ККТ и настроить его в 1С как обычно.
  2. В настройках Подключаемое оборудование для данного экземпляра ККТ следует включить флаг "Использовать для удаленной фискализации".
  3. На удаленных рабочих местах (в других магазинах) в настройках РМК указывается эта касса. При пробитии документа Чек система отправит XML-пакет на сервер, который поставит его в очередь и фискализирует.

Важный момент: при такой схеме 1С позволяет выбирать Склад списания в самом документе продажи. Это решает главную задачу автора — товар списывается с реального места нахождения, а чек выходит на общей кассе.

Вариант 2. Разделение процессов реализации и оплаты

Если версия программы не поддерживает удаленную фискализацию или вы хотите избежать сложных технических настроек, рассмотрим архитектурный подход. Мы можем разделить момент фиксации продажи и момент приема денег.

Проанализируем этот алгоритм:

  1. В удаленном магазине, где фактически находятся запчасти, менеджер оформляет документ Заказ покупателя или Реализация товаров и услуг. В этот момент происходит резервирование или списание товара с конкретного склада магазина.
  2. Клиент оплачивает товар в центральной точке. Бухгалтер или кассир находит этот Заказ и на его основании создает Чек ККМ (или Приходный кассовый ордер с последующей фискализацией).
  3. В 1С настраивается схема Интеркампани или автоматическое перемещение товаров между магазинами. Если ККТ привязана к "Магазину №1", а товар продан из "Магазина №2", система может автоматически создать документ Перемещение товаров в момент пробития чека.

Вариант 3. Техническое решение через Веб-сервер АТОЛ или ККМ-Server

Для продвинутых пользователей и программистов рассмотрим вариант использования промежуточного программного обеспечения. Драйверы АТОЛ v.10 поддерживают работу через Web-сервер.

Выясним причину, почему это удобно: драйвер превращает кассу в сетевое устройство. Мы можем обращаться к ней по IP-адресу через протоколы HTTP/JSON. В 1С это реализуется следующим образом:

На каждом рабочем месте в разных магазинах создается свой экземпляр Подключаемого оборудования, но в параметрах подключения (IP-адрес, порт) указываются данные одной и той же физической кассы. Чтобы система не блокировала порт, используется очередь запросов на стороне драйвера.

Рассмотрим пример кода, который может потребоваться для программной инициализации печати на удаленном устройстве через БПО:


// Пример упрощенного вызова фискализации через БПО
ПараметрыЧека = ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.СформироватьЧекДляПечати(Объект.Ссылка);
Результат = МенеджерОборудованияКлиент.ВыполнитьКоманду(
    ИдентификаторУстройства, 
    "ФискализироватьЧек", 
    ПараметрыЧека
);

Если Не Результат.Результат Тогда
    ТекстОшибки = "Ошибка фискализации: " + Результат.ОписаниеОшибки;
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
КонецЕсли;

Проблема закрытия смен и учета наличности

При использовании одной кассы для разных магазинов в 1С неизбежно возникнет вопрос: как закрывать смену? Если в базе создано несколько "виртуальных" касс ККМ, привязанных к одной физической, то при закрытии смены в одном магазине касса напечатает Z-отчет и закроет смену на железном уровне. Остальные магазины не смогут пробивать чеки, пока не откроют смену заново.

Рассмотрим рекомендации по решению этой проблемы:

Списание товаров: настройка склада

Чтобы товар списывался корректно, необходимо убедиться, что в настройках Правила ценообразования и Настройки магазинов разрешено списание с разных складов. Если вы используете РМК, разберем настройку:

В типовой 1С:Розница склад списания берется из настроек текущего магазина. Если вам нужно пробивать чек в Магазине А, а списывать с Магазина Б, потребуется небольшая доработка формы Чека ККМ. Проанализируем ситуацию: в коде формы при добавлении товара склад подставляется автоматически. Мы можем добавить возможность выбора склада или настроить логику так, чтобы система искала остатки на всех доступных складах организации.

Резюмируя вышесказанное: наиболее стабильным решением для современных конфигураций является использование штатной удаленной фискализации или схемы Заказ -> Оплата. Это позволяет соблюдать законодательство, корректно вести складской учет в разрезе магазинов и не иметь проблем с расхождением наличности в X-отчетах.

← На главную