В сфере розничной торговли часто возникает задача оптимизации расходов на кассовое оборудование. Покупка отдельного фискального регистратора (ККТ) для каждого кассира может быть экономически нецелесообразной, особенно если поток клиентов распределен неравномерно или рабочие места находятся в непосредственной близости друг от друга. В этой статье мы подробно рассмотрим, как решить задачу совместного использования одного сетевого фискального регистратора (например, семейства «Штрих-М», «Элвес» или «Атол») на двух рабочих местах в программе 1С:Розница 2.3 без программирования и изменения типовой конфигурации.
Перед тем как перейти к настройке, давайте разберем, почему эта задача не решается простым указанием IP-адреса кассы на двух разных компьютерах. Дело в логике работы самой платформы 1С.
В конфигурации 1С:Розница 2.3 любое подключаемое оборудование жестко привязано к справочнику Рабочие места. Каждому физическому компьютеру программа автоматически присваивает уникальный идентификатор (он формируется на основе сетевого имени ПК, данных пользователя операционной системы и внутренних параметров Windows).
Если мы настроим два независимых рабочих места (например, ПК-1 и ПК-2), система потребует завести для каждого из них отдельную карточку в справочнике Кассы ККМ. Здесь мы и сталкиваемся с конфликтом кассовых смен:
Выяснив первопричину проблемы, рассмотрим два практических и проверенных способа обойти это ограничение стандартными средствами.
Самый простой способ «обмануть» логику программы — заставить 1С думать, что оба кассира работают за одним и тем же компьютером. В таком случае у них будет общая касса ККМ и, соответственно, одна общая кассовая смена в информационной базе. Смена открывается один раз любым сотрудником, после чего оба компьютера могут беспрепятственно пробивать чеки.
Для реализации этого метода нам нужно синхронизировать уникальный идентификатор клиента (ClientID) на обоих компьютерах. Проанализируем по шагам, как это сделать:
C:\Users\<Имя_Пользователя>\AppData\Roaming\1C\1cv8\ (или в подкаталогах локальных настроек).
.pfl (чаще всего это 1cv8.pfl или 1cv8u.pfl).ClientID рабочего места. Ниже представлен пример того, как выглядит структура хранения параметров в файле:
{
{"ConnectUID",
{"u", "8f89bc21-01da-4589-9bca-c723f81e39a2"}
},
{"MachineUID",
{"u", "d3b07384-d113-4415-a6a1-a678b88d223c"}
}
}
Важное ограничение метода: Если к компьютерам подключено другое торговое оборудование, которое должно работать раздельно (например, разные банковские терминалы эквайринга или разные модели сканеров штрихкодов), этот способ не подойдет. Так как рабочее место в системе теперь одно на двоих, все настройки периферии станут общими для обоих компьютеров.
Если нам необходимо сохранить независимость рабочих мест (например, для разделения остального оборудования), лучшим решением станет вынос взаимодействия с кассой на уровень операционной системы с использованием специализированного ПО разработчиков ККТ.
Разберем, как это реализовать для аппаратов семейства «Штрих-М» / «Элвес»:
Альтернативным и крайне стабильным решением является использование стороннего программного обеспечения, например, KkmServer. Данная программа работает как веб-служба:
Обратите внимание: При использовании сторонних серверов печати чеков в 1С все еще может срабатывать проверка статуса смены внутри самой программы. Чтобы обойти это без изменения основной конфигурации, рекомендуется установить небольшое готовое бесплатное расширение 1С. Оно просто отключает программную блокировку проведения чека при несовпадении статуса смены в базе данных, позволяя драйверу ККТ самостоятельно управлять очередью печати.
Одновременная отправка чеков с двух компьютеров — ситуация стандартная. Если кассиры нажмут кнопку оплаты одновременно с разницей в доли секунды, велика вероятность возникновения ошибки блокировки порта драйвера.
Чтобы исключить «фризы» работы интерфейса и ошибки печати, выполните следующие настройки в свойствах подключения ККТ на обоих компьютерах:
Рассмотрим, как это работает на практике. Если ККТ в данный момент занята печатью чека для первого компьютера, второй компьютер при отправке запроса не выдаст моментальную ошибку «Порт занят» или «Касса не отвечает». Благодаря увеличенному таймауту драйвер второго компьютера перейдет в режим ожидания ответа. Как только первый чек будет полностью напечатан и порт освободится, касса мгновенно и без сбоев начнет печать второго чека. Кассир на втором рабочем месте заметит лишь незначительную паузу в 1–2 секунды перед началом печати чека.
Таким образом, правильная настройка сетевых параметров оборудования и синхронизация рабочих мест позволяют успешно использовать одну кассу на два рабочих места без финансовых затрат на доработку кода 1С.