Как подключить одну кассу (ККТ) к нескольким рабочим местам в 1С:Розница?

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

Зачастую перед бизнесом встает задача оптимизации затрат на оборудование, и возникает естественное желание использовать одну кассу на два и более рабочих места (РМ). В рамках 1С:Розница такая задача технически выполнима, но сопряжена с рядом ограничений, связанных с архитектурой 1С и требованиями законодательства (54-ФЗ).

Основные подходы к реализации

Для того чтобы 1С «увидела» одну кассу на разных компьютерах, необходимо обойти проблему монопольного захвата COM-порта или сетевого соединения. Рассмотрим основные методы решения:

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

Технические нюансы и риски при работе

При реализации схемы «одна касса на два РМ» необходимо учитывать следующие критические моменты:

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

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

Рекомендации по настройке в 1С

Рассмотрим, как подготовить систему к работе:

Во-первых, определитесь с архитектурой подключения. Если вы используете оборудование, поддерживающее Ethernet, настраивайте подключение через TCP/IP напрямую в драйвере 1С. В настройках Кассы ККМ необходимо указать параметры подключения, идентичные для всех Рабочих мест.

Во-вторых, проработайте интерфейсную часть. Если планируется переключение кассы (например, до обеда работает одна, после обеда — другая), создайте удобный механизм выбора Кассы ККМ в РМК. Пример логики переключения может выглядеть так:


Процедура ПереключитьКассу(НоваяКасса)
    // Проверка на закрытую смену
    Если Не ПроверитьЗакрытиеСмены(ТекущаяКасса) Тогда
        Предупреждение("Сначала закройте смену на текущем устройстве!");
        Возврат;
    КонецЕсли;
    
    // Смена ссылки на ККТ в настройках текущего РМ
    Константы.ОсновнаяКассаККМ.Установить(НоваяКасса);
КонецПроцедуры

Почему стоит избегать использования устаревших моделей

Модели типа Меркурий 185Ф изначально проектировались как автономные кассы. Их протоколы обмена не рассчитаны на многопотоковую работу и серверные режимы современных драйверов 1С. При работе с маркированным товаром (Честный ЗНАК) возникают дополнительные риски: если связь с кассой прервется в момент передачи кода маркировки, статус товара может «зависнуть» в базе данных, что потребует ручного вмешательства программиста для исправления статусов ИС МП.

Выводы и советы

Если ваша задача — экономия, то использование программного сервера ККТ оправдано только при наличии современных ФР (например, АТОЛ или ШТРИХ-М с поддержкой Ethernet). В случае с устаревшими моделями:

Помните, что любая программная «сшивка» — это обход штатной логики 1С, который может перестать работать после очередного обновления платформы или драйверов оборудования.

← На главную