Как организовать работу одного фискального регистратора в нескольких базах 1С при перебоях с интернетом

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

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

В этой статье мы подробно разберем, как устроена работа ККТ с несколькими базами данных, проанализируем риски рассинхронизации кассовых смен, настроим автоматический обмен для распределенной информационной базы (РИБ) и рассмотрим альтернативные архитектурные решения от фирмы 1С.

Проблема рассинхронизации статуса смены в 1С и на ККТ

Главная сложность при работе кассира в двух независимых базах (основной на сервере и локальной резервной) заключается в логике работы Библиотеки подключаемого оборудования (БПО) в 1С. Проанализируем, что происходит при аварийном переходе:

  1. Кассовая смена была успешно открыта утром в основной базе на сервере. Физический фискальный накопитель внутри ККТ зафиксировал открытие смены.
  2. В течение дня интернет пропадает. Кассир закрывает тонкий клиент и запускает локальную резервную базу.
  3. Для резервной базы текущая смена числится закрытой, так как документ КассоваяСмена в ней отсутствует или находится в статусе «Закрыта».
  4. При попытке пробить первый чек резервная база потребует открыть смену и отправит соответствующую команду на ККТ через драйвер.
  5. Физический кассовый аппарат вернет ошибку драйвера (например, для ККТ Атол это ошибка FFFFFFFFh — «Смена уже открыта»).
  6. 1С воспримет ответ драйвера как аварийный. В результате документ КассоваяСмена в резервной базе не изменит свой статус на «Открыта», и система заблокирует дальнейшую печать чеков.

Выясним, какими способами можно решить эту проблему программно и административно.

Способ 1. Принудительное изменение статуса смены в резервной базе

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

Разберем по шагам, как это сделать с помощью стандартной обработки:

  1. Авторизуйтесь в резервной базе 1С под правами администратора.
  2. Перейдите в меню Администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов.
  3. В поле «Выбирать элементы» укажите объект Кассовая смена.
  4. Найдите текущую закрытую смену (или вручную создайте новый документ КассоваяСмена, если список пуст).
  5. В списке изменяемых реквизитов найдите поле Статус (или СтатусКассовойСмены) и установите для него значение «Открыта».
  6. Нажмите кнопку «Изменить реквизиты».

После проведения этой операции 1С будет считать, что смена открыта, и позволит оформлять документы ЧекККМ. При пробитии чека команда на печать уйдет на ККТ штатно, так как кассовый аппарат физически готов к работе.

Способ 2. Использование полноценного РИБ с фоновым обменом

Попытка держать резервную базу «выключенной» и запускать обмен только при аварии — это критическая ошибка. Проанализируем, почему «спящий» РИБ (Распределенная информационная база) не решит проблему:

Правильное решение: Настроить автоматический фоновый обмен РИБ по расписанию (например, каждые 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 "ВыполнитьОбмен" запустит встроенный механизм синхронизации данных, обновит цены, остатки и актуализирует статус открытой кассовой смены.

Способ 3. Использование промежуточного ПО (Сервер ККМ)

Если вам требуется физически работать с одним фискальным регистратором из разных баз данных (или даже с разных ПК), драйвер ККТ по умолчанию будет выдавать ошибку монопольного доступа к COM-порту. Чтобы обойти это ограничение, используют сетевые технологии.

Рассмотрим применение АТОЛ Веб-сервера или стороннего ПО промежуточного слоя (например, «Сервер ККМ»):

Современная альтернатива: Переход на 1С:РМК

Вместо развертывания тяжелой «1С:Розница» в качестве резервного рабочего места, фирма 1С предлагает использовать специализированное приложение 1С:РМК (Рабочее место кассира). Разберем преимущества этой архитектуры:

  1. Автономность по умолчанию: 1С:РМК устанавливается непосредственно на кассовом компьютере и работает локально.
  2. Фоновая синхронизация: Программа в фоновом режиме обменивается данными с центральной базой «1С:Розница» или «1С:УНФ» на сервере.
  3. Незаметность сбоев связи: Если интернет падает, кассир продолжает пробивать чеки в обычном режиме. ККТ работает с единственной локальной базой 1С:РМК, поэтому никаких конфликтов со статусами смен не возникает. После восстановления интернета накопленные чеки автоматически выгружаются на сервер.

Использование связки «Тонкий клиент на сервере + локальный РИБ» является рабочей схемой, но требует постоянного администрирования фоновых обменов и контроля за актуальностью конфигураций. Для минимизации рисков и снижения нагрузки на кассовые ПК рекомендуется рассмотреть постепенный переход на современную архитектуру с использованием 1С:РМК.

← На главную