Часто на торговых и оптовых предприятиях возникает потребность сэкономить на оборудовании: поставить один фискальный регистратор (ККМ), используя одну кассу на нескольких компьютерах, но пробивать чеки с разных ПК. При этом некоторые пытаются упростить процесс еще больше, авторизуясь на разных ПК под одной учетной записью в 1С и пытаясь использовать одно Рабочее место кассира (РМК). Давайте подробно разберем, с какими проблемами вы столкнетесь при такой архитектуре в 1С:Управление торговлей 11, проанализируем технические ограничения и выясним, как правильно решить эту задачу.
Если мы просто возьмем фискальный регистратор (например, АТОЛ), подключим его по Ethernet и попытаемся обратиться к нему с двух разных компьютеров под одной учетной записью 1С, мы столкнемся со следующей картиной. На первом компьютере настройка пройдет успешно. При попытке зайти со второго компьютера по ссылке настройки РМК, программа выдаст предупреждение: «Для рабочего места уже существует настройка» или начнет ругаться на то, что кассовая смена уже открыта.
Разберем по шагам, почему так происходит:
РабочееМесто, которая идентифицируется по ИдентификаторКлиента (обычно это связка имени компьютера и сеанса).КассоваяСмена. Если программа видит, что смена открыта с другого рабочего места, она программно блокирует попытки пробить чек с текущего ПК, выдавая ошибку «Не могу открыть кассовую смену, смена открыта на другом устройстве».Пользователи отмечают, что в последних релизах (в частности в 1С:УТ 11.5, где реализовано определение кассы по настройкам РМК, и актуальной 1С:Розница) разработчики пошли навстречу бизнесу. Рассмотрим, как реализована работа "из коробки":
Теперь программа умеет корректно делегировать права на печать на так называемый «Сервер лояльности и оборудования». В этом случае один из компьютеров (или сервер) выступает как маршрутизатор команд. Физически касса подключена к нему. Остальные Рабочие места не пытаются напрямую дергать драйвер АТОЛ, а отправляют команду на этот внутренний сервер 1С. Таким образом, конфликта за порт не возникает, так как очередь печати разруливается самой платформой.
Однако, для корректной работы этого механизма крайне не рекомендуется работать всем под одним пользователем. Нужно создать отдельную настройку РМК для каждого компьютера.
Если вы работаете на УТ 11.4 или функционал сервера оборудования не справляется, проанализируем классический вариант обхода проблемы. Для этого используется промежуточное ПО (веб-сервер), которое устанавливается на ПК, к которому подключена ККТ.
Настроим этот процесс вместе:
В этом сценарии программа KkmServer берет на себя формирование очереди. Она забирает чеки от всех компьютеров, выстраивает их в цепочку и по очереди скармливает кассе, моментально освобождая порт.
Как упоминали разработчики на форуме, иногда проблему "одного РМК" решают программно. Если нужно, чтобы 1С считала разные RDP-сессии или разные ПК одним и тем же рабочим местом (или наоборот, принудительно их разделяла, несмотря на клонированные имена ПК), потребуется вмешательство в конфигурацию.
Посмотрим на пример логики, которую программисты внедряют через расширение для подмены имени компьютера:
&НаСервере
Функция ПолучитьУникальноеИмяПК()
// Базовое получение имени
ТекИмяПК = ИмяКомпьютера();
// Добавляем к имени компьютера имя пользователя,
// чтобы искусственно разделить рабочие места для одного ПК (например, на терминальном сервере)
ТекПользователь = ИмяПользователя();
Если ЗначениеЗаполнено(ТекПользователь) Тогда
Возврат ТекИмяПК + "_" + ТекПользователь;
Иначе
Возврат ТекИмяПК;
КонецЕсли;
КонецФункции
Такая доработка позволяет обмануть механизм привязки 1С и создавать уникальные настройки оборудования там, где платформа считает, что это один и тот же сеанс.
Даже если мы технически решим проблему одновременной печати под одним пользователем 1С (как было заявлено в исходной задаче), мы упремся в законодательные ограничения.
Проанализируем ситуацию с точки зрения закона. Согласно 54-ФЗ, кассовый чек обязательно должен содержать реквизит «Кассир» (ФИО и ИНН лица, осуществившего расчет). Если у вас в магазине или на оптовом складе четыре разных менеджера бьют чеки со своих рабочих мест, но все они сидят под одним общим пользователем 1С (например, МенеджерПродаж), то в ОФД и налоговую будут уходить чеки с одной и той же фамилией.
В чем заключаются проблемы такого подхода?
Именно поэтому, даже при использовании сетевой кассы или KkmServer, настоятельно рекомендуется заводить в 1С персональные учетные записи для каждого сотрудника. Механизмы серверов оборудования и правильная настройка распределения устройств в УТ 11.5 позволяют каждому пользователю работать под своим ФИО, направляя задания печати на одну общую кассу, не нарушая при этом ни техническую логику 1С, ни требования законодательства.