Проанализируем частую и крайне критичную для розницы ситуацию: при наборе товаров в Рабочем месте кассира (РМК) конфигурации 1С:Управление торговлей 11.3 система работает оперативно, но в момент нажатия кнопки «Оплатить» программа зависает на несколько минут (иногда до 8–10 минут), а фискальный регистратор задерживает печать чека. При этом база данных работает в файловом режиме по сети.
Разберем основные причины такого поведения, выясним, почему отключение регламентных заданий в интерфейсе не всегда помогает в файловом режиме, и рассмотрим пошаговые способы полного устранения тормозов.
В конфигурациях на базе 1С:УТ 11 по умолчанию активировано регламентное задание «Архивирование чеков ККМ», которое по расписанию пытается свернуть чеки и сформировать документ Отчет о розничных продажах. В файловой базе данных .1cd любые транзакции записи блокируют таблицы целиком.
В момент, когда кассир нажимает кнопку «Оплатить», система пытается записать и провести документ Чек ККМ. Если одновременно с этим в фоновом потоке выполняется архивирование или произошла ошибка закрытия смены (например, не создан Отчет о розничных продажах по одной из предыдущих кассовых смен), возникают тяжелые блокировки, из-за чего кассовый сеанс надолго зависает.
Особенность файлового режима заключается в том, что фоновые задания выполняются не на отдельном сервере, а внутри пользовательских сеансов клиентов. Поэтому простой съем галочки «Использовать» в интерфейсе не всегда останавливает выполнение задания на всех рабочих местах.
Чтобы гарантированно запретить кассовым ноутбукам и ПК запускать фоновые процедуры в рамках своего сеанса, используем специальный параметр запуска платформы. Разберем порядок действий по шагам:
/AllowExecuteScheduledJobs -off
/AllowExecuteScheduledJobs -on), чтобы регламентные процедуры выполнялись строго там и во внерабочее время.Проанализируем журнал регистрации на предмет ошибок архивирования. Если система выводит сообщения вида «По кассовой смене... не создан Отчет о розничных продажах», необходимо восстановить корректность данных:
Отчет о розничных продажах.Когда файловая база 1С размещена в расшаренной сетевой папке (SMB/NetBIOS), проведение документа Чек ККМ требует передачи большого объема файловых блокировок по сети. При нажатии «Оплатить» происходят массовые обращения к файлу 1Cv8.1cd, что вызывает задержки от нескольких секунд до нескольких минут.
Разберем наиболее эффективное архитектурное решение для ускорения работы файловой базы без покупки дорогостоящих лицензий на сервер 1С:Предприятие. Переведем работу кассовых мест на Web-сервер.
\\server\base1c укажем подключение через Web-сервер по ссылке http://server/base1c.При таком подходе тонкие клиенты на кассах взаимодействуют с базой по протоколу HTTP/HTTPS. Это исключает сетевые блокировки файла базы данных и ускоряет отклик РМК при пробитии чека в несколько раз.
При нажатии кнопки «Оплатить» программа совершает синхронный вызов внешней компоненты (драйвера) фискального регистратора. Задержки до 8–10 минут часто связаны с ожиданиями по тайм-аутам оборудования:
Рассмотрев влияние торгового оборудования, выполним следующие настройки:
Если у профиля кассира включено ограничение прав на уровне записей (RLS) по организациям или кассам, проведение документа вызывает выполнение сложнейших запросов проверки прав. В файловом режиме это снижает скорость проведения чека в десятки раз.
Проанализируем состояние самой базы данных 1С и права пользователей:
Реиндексация таблиц и Сжатие таблиц.chdbfl.exe, расположенную в каталоге bin платформы 1С.Применение комплекса этих мер — публикация базы на веб-сервере, отключение выполнения фоновых заданий на кассах через параметр /AllowExecuteScheduledJobs -off и настройка драйверов ККТ — позволяет полностью ликвидировать задержки и обеспечить мгновенную печать чеков при оплате в РМК.