В процессе автоматизации розничной торговли часто возникает задача минимизации расходов на оборудование. Одной из самых затратных статей является покупка и обслуживание фискальных регистраторов (ФР) для каждого кассира. Рассмотрим ситуацию, когда на торговой точке работают два и более продавца, но поток покупателей позволяет использовать одно устройство для печати чеков. В этой статье мы подробно разберем, как технически реализовать совместный доступ к Штрих-М-ФР-К (или современным онлайн-кассам Штрих-М) с нескольких компьютеров, проанализируем юридические риски и выберем оптимальный вариант реализации.
Этот способ считается наиболее надежным и бюджетным, так как он не требует покупки дополнительных лицензий у производителей драйверов. Суть метода заключается в разделении ролей: один компьютер (к которому физически подключен ФР) выступает в роли сервера печати, а остальные — в роли клиентов.
Разберем алгоритм реализации по шагам:
ОчередьПечатиЧеков). В нем будем хранить структуру чека (состав товаров, суммы, типы оплаты) в формате XML или JSON.ПечататьЧек(), мы будем записывать данные чека в наш регистр со статусом "Готов к печати".Рассмотрим пример кода для организации цикла проверки на сервере:
Процедура ПриНачалеРаботыСистемы()
// Запускаем проверку очереди каждые 5 секунд
ПодключитьОбработчикОжидания("ПроверитьОчередьПечатиЧеков", 5);
КонецПроцедуры
Процедура ПроверитьОчередьПечатиЧеков() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 * ИЗ РегистрСведений.ОчередьПечатиЧеков ГДЕ Статус = &Статус";
Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыЧеков.ГотовКПечати);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
// Пытаемся пробить чек через стандартную обработку обслуживания
РезультатПечати = НапечататьФискальныйЧек(Выборка.ДанныеЧека);
Если РезультатПечати Тогда
// Обновляем статус в регистре
ЗаписатьСтатусЧека(Выборка.КлючЗаписи, Перечисления.СтатусыЧеков.Напечатан);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важный нюанс: при таком подходе кассир на удаленном месте не сразу получает чек. Проанализируем ситуацию: продавец должен видеть статус "Печать...", а затем подтверждение успеха. Рекомендуется вывести на экран клиентского РМК небольшое окно с индикацией состояния очереди.
Технология DCOM (Distributed Component Object Model) позволяет приложениям на разных компьютерах обращаться к одному и тому же объекту драйвера, запущенному на сервере. Это классический метод для старых версий драйверов Штрих-М.
Выясним последовательность настройки DCOM:
dcomcnfg необходимо найти компонент драйвера (обычно это AddIn.DRVFR или ShtrihM_DrvFR).Осторожно: многие специалисты отмечают, что современные версии драйверов Штрих-М ограничивают работу через DCOM, требуя приобретения специального лицензионного ключа (стоимость которого может достигать 10-15 тысяч рублей). Кроме того, DCOM крайне чувствителен к настройкам брандмауэра и стабильности локальной сети.
Если бюджет позволяет, рассмотрим использование специализированных программных "прокладок". Одним из самых стабильных решений на сегодня является KkmServer. Он работает по принципу веб-сервера:
Это избавляет от необходимости дописывать логику очередей внутри конфигурации 1С и позволяет подключать к одной кассе даже мобильные приложения или сайты.
Проанализируем встроенные возможности драйвера 4.x и 5.x. В последних версиях реализован режим "Сервер ФР". На главном компьютере запускается служба, которая "слушает" определенный порт. В настройках 1С на клиентских местах мы выбираем вид подключения "TCP" и указываем IP-адрес.
Чтобы система работала корректно, обязательно установите в настройках драйвера на всех ПК параметр "Автоматически открывать/закрывать порт". Если порт будет постоянно занят одной сессией 1С, другой пользователь получит ошибку -1: Нет связи.
Важно помнить о правовой стороне вопроса. Согласно Федеральному закону № 54-ФЗ, кассовый чек должен быть сформирован в момент расчета. Если ваши рабочие места находятся в разных концах торгового зала, использование одного ФР может вызвать вопросы у проверяющих органов, так как покупатель должен получить чек незамедлительно.
Рекомендации для соблюдения правил:
PrintString), а основной фискальный чек печатается на общем аппарате.CashierName в драйвер.При одновременной печати с двух РМК неизбежно возникает путаница: чьей покупке соответствует вылезший из аппарата чек? Разберем, как этого избежать:
PrintString и печатайте номер рабочего места или имя продавца крупным шрифтом.Beep). Можно настроить разную тональность или количество сигналов для разных РМК.В старых обсуждениях часто упоминалась проблема замены ЭКЛЗ раз в год. Для современных онлайн-касс ситуация схожая — у фискального накопителя (ФН) есть срок действия (13, 15 или 36 месяцев) и ограничение по количеству записей. Проанализируем нагрузку: если вы объединяете два РМК на один ФР, ресурс ФН по количеству чеков будет расходоваться в два раза быстрее. Однако, если проходимость точки небольшая, вы все равно упретесь в срок действия ключа по времени, а не по объему памяти, что делает использование одного ФР экономически оправданным.
Для реализации печати с двух РМК на один Штрих-М мы рекомендуем:
Помните, что стабильность работы оборудования напрямую зависит от качества локальной сети. При использовании Wi-Fi задержки в работе DCOM или TCP-драйвера могут приводить к зависанию кассового модуля 1С, поэтому для таких схем рекомендуется использовать проводное Ethernet-соединение.