Как организовать печать на один фискальный регистратор Штрих-М с нескольких рабочих мест?

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

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

Вариант 1: Программная организация очереди печати в 1С

Этот способ считается наиболее надежным и бюджетным, так как он не требует покупки дополнительных лицензий у производителей драйверов. Суть метода заключается в разделении ролей: один компьютер (к которому физически подключен ФР) выступает в роли сервера печати, а остальные — в роли клиентов.

Разберем алгоритм реализации по шагам:

  1. Создание хранилища данных. Создадим в конфигурации 1С новый Регистр Сведений (например, ОчередьПечатиЧеков). В нем будем хранить структуру чека (состав товаров, суммы, типы оплаты) в формате XML или JSON.
  2. Запись в очередь. На клиентских рабочих местах вместо вызова стандартной процедуры ПечататьЧек(), мы будем записывать данные чека в наш регистр со статусом "Готов к печати".
  3. Обработка очереди. На компьютере-сервере запустим фоновое задание или обработчик ожидания, который будет с определенной периодичностью проверять наличие новых записей в регистре.

Рассмотрим пример кода для организации цикла проверки на сервере:


Процедура ПриНачалеРаботыСистемы()
    // Запускаем проверку очереди каждые 5 секунд
    ПодключитьОбработчикОжидания("ПроверитьОчередьПечатиЧеков", 5);
КонецПроцедуры

Процедура ПроверитьОчередьПечатиЧеков() Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 * ИЗ РегистрСведений.ОчередьПечатиЧеков ГДЕ Статус = &Статус";
    Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыЧеков.ГотовКПечати);
    
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        
        // Пытаемся пробить чек через стандартную обработку обслуживания
        РезультатПечати = НапечататьФискальныйЧек(Выборка.ДанныеЧека);
        
        Если РезультатПечати Тогда
            // Обновляем статус в регистре
            ЗаписатьСтатусЧека(Выборка.КлючЗаписи, Перечисления.СтатусыЧеков.Напечатан);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

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

Вариант 2: Использование технологии DCOM

Технология DCOM (Distributed Component Object Model) позволяет приложениям на разных компьютерах обращаться к одному и тому же объекту драйвера, запущенному на сервере. Это классический метод для старых версий драйверов Штрих-М.

Выясним последовательность настройки DCOM:

  1. На основном компьютере в системной утилите dcomcnfg необходимо найти компонент драйвера (обычно это AddIn.DRVFR или ShtrihM_DrvFR).
  2. В свойствах компонента на вкладке "Безопасность" нужно разрешить права на "Запуск и активацию", а также "Права доступа" для пользователя "Все" или конкретной группы кассиров.
  3. На клиентских компьютерах в настройках драйвера (в тесте связи) в поле "Компьютер" указывается сетевое имя или IP-адрес сервера.

Осторожно: многие специалисты отмечают, что современные версии драйверов Штрих-М ограничивают работу через DCOM, требуя приобретения специального лицензионного ключа (стоимость которого может достигать 10-15 тысяч рублей). Кроме того, DCOM крайне чувствителен к настройкам брандмауэра и стабильности локальной сети.

Вариант 3: Сетевой драйвер и KkmServer

Если бюджет позволяет, рассмотрим использование специализированных программных "прокладок". Одним из самых стабильных решений на сегодня является KkmServer. Он работает по принципу веб-сервера:

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

Вариант 4: TCP/IP подключение в драйвере Штрих-М

Проанализируем встроенные возможности драйвера 4.x и 5.x. В последних версиях реализован режим "Сервер ФР". На главном компьютере запускается служба, которая "слушает" определенный порт. В настройках 1С на клиентских местах мы выбираем вид подключения "TCP" и указываем IP-адрес.

Чтобы система работала корректно, обязательно установите в настройках драйвера на всех ПК параметр "Автоматически открывать/закрывать порт". Если порт будет постоянно занят одной сессией 1С, другой пользователь получит ошибку -1: Нет связи.

Юридические аспекты и правила торговли (54-ФЗ)

Важно помнить о правовой стороне вопроса. Согласно Федеральному закону № 54-ФЗ, кассовый чек должен быть сформирован в момент расчета. Если ваши рабочие места находятся в разных концах торгового зала, использование одного ФР может вызвать вопросы у проверяющих органов, так как покупатель должен получить чек незамедлительно.

Рекомендации для соблюдения правил:

Проблема путаницы чеков

При одновременной печати с двух РМК неизбежно возникает путаница: чьей покупке соответствует вылезший из аппарата чек? Разберем, как этого избежать:

  1. Программная идентификация. Перед началом печати фискальных строк вызывайте метод PrintString и печатайте номер рабочего места или имя продавца крупным шрифтом.
  2. Звуковая индикация. Современные модели Штрих-М позволяют подавать звуковой сигнал (метод Beep). Можно настроить разную тональность или количество сигналов для разных РМК.
  3. Разделители. Настройте автоматическую отрезку чека после каждого документа, чтобы кассиры не рвали ленту вручную, повреждая чужие чеки.

Техническое обслуживание и ЭКЛЗ/ФН

В старых обсуждениях часто упоминалась проблема замены ЭКЛЗ раз в год. Для современных онлайн-касс ситуация схожая — у фискального накопителя (ФН) есть срок действия (13, 15 или 36 месяцев) и ограничение по количеству записей. Проанализируем нагрузку: если вы объединяете два РМК на один ФР, ресурс ФН по количеству чеков будет расходоваться в два раза быстрее. Однако, если проходимость точки небольшая, вы все равно упретесь в срок действия ключа по времени, а не по объему памяти, что делает использование одного ФР экономически оправданным.

Резюме

Для реализации печати с двух РМК на один Штрих-М мы рекомендуем:

Помните, что стабильность работы оборудования напрямую зависит от качества локальной сети. При использовании Wi-Fi задержки в работе DCOM или TCP-драйвера могут приводить к зависанию кассового модуля 1С, поэтому для таких схем рекомендуется использовать проводное Ethernet-соединение.

← На главную