Как настроить печать чеков с нескольких компьютеров на одну кассу под одним пользователем в 1С:УТ 11?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

Часто на торговых и оптовых предприятиях возникает потребность сэкономить на оборудовании: поставить один фискальный регистратор (ККМ), используя одну кассу на нескольких компьютерах, но пробивать чеки с разных ПК. При этом некоторые пытаются упростить процесс еще больше, авторизуясь на разных ПК под одной учетной записью в 1С и пытаясь использовать одно Рабочее место кассира (РМК). Давайте подробно разберем, с какими проблемами вы столкнетесь при такой архитектуре в 1С:Управление торговлей 11, проанализируем технические ограничения и выясним, как правильно решить эту задачу.

Анализ проблемы: почему 1С ругается на занятую кассу?

Если мы просто возьмем фискальный регистратор (например, АТОЛ), подключим его по Ethernet и попытаемся обратиться к нему с двух разных компьютеров под одной учетной записью 1С, мы столкнемся со следующей картиной. На первом компьютере настройка пройдет успешно. При попытке зайти со второго компьютера по ссылке настройки РМК, программа выдаст предупреждение: «Для рабочего места уже существует настройка» или начнет ругаться на то, что кассовая смена уже открыта.

Разберем по шагам, почему так происходит:

  1. Привязка оборудования. В 1С всё торговое оборудование жестко привязывается к сущности РабочееМесто, которая идентифицируется по ИдентификаторКлиента (обычно это связка имени компьютера и сеанса).
  2. Блокировка порта. Кто первый вошел в режим РМК и открыл смену, тот и захватывает COM-порт или IP-порт фискального регистратора.
  3. Контроль смен. 1С проверяет документ КассоваяСмена. Если программа видит, что смена открыта с другого рабочего места, она программно блокирует попытки пробить чек с текущего ПК, выдавая ошибку «Не могу открыть кассовую смену, смена открыта на другом устройстве».

Решение 1: Использование штатного функционала новых версий (УТ 11.5)

Пользователи отмечают, что в последних релизах (в частности в 1С:УТ 11.5, где реализовано определение кассы по настройкам РМК, и актуальной 1С:Розница) разработчики пошли навстречу бизнесу. Рассмотрим, как реализована работа "из коробки":

Теперь программа умеет корректно делегировать права на печать на так называемый «Сервер лояльности и оборудования». В этом случае один из компьютеров (или сервер) выступает как маршрутизатор команд. Физически касса подключена к нему. Остальные Рабочие места не пытаются напрямую дергать драйвер АТОЛ, а отправляют команду на этот внутренний сервер 1С. Таким образом, конфликта за порт не возникает, так как очередь печати разруливается самой платформой.

Однако, для корректной работы этого механизма крайне не рекомендуется работать всем под одним пользователем. Нужно создать отдельную настройку РМК для каждого компьютера.

Решение 2: Использование сторонних серверов оборудования (KkmServer / Web-сервер АТОЛ)

Если вы работаете на УТ 11.4 или функционал сервера оборудования не справляется, проанализируем классический вариант обхода проблемы. Для этого используется промежуточное ПО (веб-сервер), которое устанавливается на ПК, к которому подключена ККТ.

Настроим этот процесс вместе:

  1. Устанавливаем и настраиваем программу (например, KkmServer) на главном ПК.
  2. В самой 1С на всех компьютерах вместо локального драйвера выбираем драйвер «KkmServer: Фискальные регистраторы».
  3. В настройках драйвера указываем IP-адрес главного компьютера и порт сервера оборудования.
  4. Важнейший нюанс: Чтобы 1С не блокировала печать чека из-за того, что смена открыта чужим РМК, в параметрах драйвера KkmServer необходимо обязательно поставить галочку «Сброс ошибки при открытии/закрытии смены».

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

Решение 3: Доработка конфигурации (изменение идентификации рабочего места)

Как упоминали разработчики на форуме, иногда проблему "одного РМК" решают программно. Если нужно, чтобы 1С считала разные RDP-сессии или разные ПК одним и тем же рабочим местом (или наоборот, принудительно их разделяла, несмотря на клонированные имена ПК), потребуется вмешательство в конфигурацию.

Посмотрим на пример логики, которую программисты внедряют через расширение для подмены имени компьютера:


&НаСервере
Функция ПолучитьУникальноеИмяПК()
    // Базовое получение имени
    ТекИмяПК = ИмяКомпьютера();
    
    // Добавляем к имени компьютера имя пользователя, 
    // чтобы искусственно разделить рабочие места для одного ПК (например, на терминальном сервере)
    ТекПользователь = ИмяПользователя();
    
    Если ЗначениеЗаполнено(ТекПользователь) Тогда
        Возврат ТекИмяПК + "_" + ТекПользователь;
    Иначе
        Возврат ТекИмяПК;
    КонецЕсли;
КонецФункции

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

Подводные камни и риски нарушения 54-ФЗ

Даже если мы технически решим проблему одновременной печати под одним пользователем 1С (как было заявлено в исходной задаче), мы упремся в законодательные ограничения.

Проанализируем ситуацию с точки зрения закона. Согласно 54-ФЗ, кассовый чек обязательно должен содержать реквизит «Кассир» (ФИО и ИНН лица, осуществившего расчет). Если у вас в магазине или на оптовом складе четыре разных менеджера бьют чеки со своих рабочих мест, но все они сидят под одним общим пользователем 1С (например, МенеджерПродаж), то в ОФД и налоговую будут уходить чеки с одной и той же фамилией.

В чем заключаются проблемы такого подхода?

  1. Финансовая дисциплина: Вы не сможете отследить, кто из реальных сотрудников пробил чек с ошибкой, сделал возврат или допустил недостачу. В 1С все операции будут висеть на одном виртуальном пользователе.
  2. Штрафы от ФНС: При проверке легко выявляется, что человек, чье ФИО указано на чеке, физически не мог одновременно находиться в разных концах зала или пробивать чеки без перерывов круглосуточно. Отсутствие достоверного реквизита "Кассир" является нарушением порядка применения ККТ.

Именно поэтому, даже при использовании сетевой кассы или KkmServer, настоятельно рекомендуется заводить в 1С персональные учетные записи для каждого сотрудника. Механизмы серверов оборудования и правильная настройка распределения устройств в УТ 11.5 позволяют каждому пользователю работать под своим ФИО, направляя задания печати на одну общую кассу, не нарушая при этом ни техническую логику 1С, ни требования законодательства.

← На главную