Рассмотрим распространенную проблему розничной торговли: основная работа магазина ведется через тонкий клиент в центральной базе «1С:Розница», расположенной на удаленном сервере. При стабильном интернет-канале все работает отлично. Однако при пропадании связи кассовая зона полностью парализуется. Логичным решением кажется создание резервной локальной базы на кассовом компьютере, чтобы временно пробивать чеки через нее. Но здесь возникает серьезное препятствие — как заставить один и тот же фискальный регистратор (ФР) бесконфликтно работать со сменами в разных информационных базах?
В этой статье мы подробно разберем, как устроена работа ККТ с несколькими базами данных, проанализируем риски рассинхронизации кассовых смен, настроим автоматический обмен для распределенной информационной базы (РИБ) и рассмотрим альтернативные архитектурные решения от фирмы 1С.
Главная сложность при работе кассира в двух независимых базах (основной на сервере и локальной резервной) заключается в логике работы Библиотеки подключаемого оборудования (БПО) в 1С. Проанализируем, что происходит при аварийном переходе:
КассоваяСмена в ней отсутствует или находится в статусе «Закрыта».FFFFFFFFh — «Смена уже открыта»).КассоваяСмена в резервной базе не изменит свой статус на «Открыта», и система заблокирует дальнейшую печать чеков.Выясним, какими способами можно решить эту проблему программно и административно.
Если аварийная ситуация уже произошла и вам необходимо срочно запустить продажи в резервной локальной базе, можно принудительно изменить статус документа смены в 1С без физического обращения к ККТ.
Разберем по шагам, как это сделать с помощью стандартной обработки:
Кассовая смена.КассоваяСмена, если список пуст).Статус (или СтатусКассовойСмены) и установите для него значение «Открыта».После проведения этой операции 1С будет считать, что смена открыта, и позволит оформлять документы ЧекККМ. При пробитии чека команда на печать уйдет на ККТ штатно, так как кассовый аппарат физически готов к работе.
Попытка держать резервную базу «выключенной» и запускать обмен только при аварии — это критическая ошибка. Проанализируем, почему «спящий» РИБ (Распределенная информационная база) не решит проблему:
Правильное решение: Настроить автоматический фоновый обмен РИБ по расписанию (например, каждые 15–30 минут). В этом случае документ открытия смены из основной базы автоматически прилетит в локальную базу во время штатной работы. При обрыве связи кассиру останется просто переключиться на локальный ярлык.
Для автоматизации обмена в файловой резервной базе на операционной системе Windows настроим выполнение регламентных заданий через Планировщик задач. Напишем bat-файл для запуска процесса:
@echo off
echo Запуск планировщика обмена данными...
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\1C_Bases\Retail_Local" /N "ExchangeUser" /P "Password" /C "ВыполнитьОбмен" /Visible
В планировщике Windows установите триггер запуска этого файла каждые 30 минут. Команда /C "ВыполнитьОбмен" запустит встроенный механизм синхронизации данных, обновит цены, остатки и актуализирует статус открытой кассовой смены.
Если вам требуется физически работать с одним фискальным регистратором из разных баз данных (или даже с разных ПК), драйвер ККТ по умолчанию будет выдавать ошибку монопольного доступа к COM-порту. Чтобы обойти это ограничение, используют сетевые технологии.
Рассмотрим применение АТОЛ Веб-сервера или стороннего ПО промежуточного слоя (например, «Сервер ККМ»):
127.0.0.1:16732) по протоколу TCP/IP или HTTP.Вместо развертывания тяжелой «1С:Розница» в качестве резервного рабочего места, фирма 1С предлагает использовать специализированное приложение 1С:РМК (Рабочее место кассира). Разберем преимущества этой архитектуры:
Использование связки «Тонкий клиент на сервере + локальный РИБ» является рабочей схемой, но требует постоянного администрирования фоновых обменов и контроля за актуальностью конфигураций. Для минимизации рисков и снижения нагрузки на кассовые ПК рекомендуется рассмотреть постепенный переход на современную архитектуру с использованием 1С:РМК.