Многие специалисты и пользователи сталкиваются с серьезной проблемой после перехода на конфигурацию 1С:Комплексная автоматизация редакции 2.5 (а также ERP 2.5): при попытке пробить чек или принять оплату программа начинает критически «зависать». Ожидание может длиться от 1-2 до 10 минут, при этом загрузка процессора на сервере достигает 100%, а в журнале регистрации фиксируется массовое создание фоновых заданий. Рассмотрим подробнее, почему возникает такое поведение системы и разберем по шагам способы решения этой проблемы.
Проанализируем ситуацию с точки зрения архитектуры. В версии 2.5 был существенно переработан механизм взаиморасчетов. Теперь при проведении документов (в том числе чеков ККМ или эквайринговых операций) система пытается "на лету" актуализировать регистры взаиморасчетов. Зачастую 1С начинает пересчитывать хвосты чуть ли не с начала ведения учета, что и приводит к стопроцентной утилизации ресурсов процессора фоновыми заданиями.
Чтобы снизить нагрузку в момент пробития чека, выполним следующие действия:
После отключения данной опции тяжелые расчеты перестанут запускаться синхронно с действиями кассира. Расчет взаиморасчетов необходимо будет настроить отдельным регламентным заданием в нерабочее время или выполнять вручную. Это резко снизит нагрузку на сервер в рабочие часы.
Часто бывает так, что после отключения фоновых заданий нагрузка на процессор падает, но само пробитие чека все равно занимает длительное время (от 3 до 10 минут). Выясним причину этого явления. Как правило, виновником выступает регистр накопления АктивыИПассивы.
В КА 2.5 этот регистр отвечает за формирование управленческого баланса предприятия. При проведении чека создаются движения по кассе, товарам и взаиморасчетам, и система выполняет ресурсоемкие вычисления для записи данных в управленческий баланс. Если в базе есть незакрытые партии прошлых периодов, зависшие копейки или неактуальные итоги, проведение останавливается.
Рассмотрим два варианта решения:
АктивыИПассивы и мгновенно ускорит проведение документов.Посмотрим на пример аппаратных проблем. Если база работает в клиент-серверном варианте, а пользователи подключаются через веб-клиент или RDP, кассовый аппарат физически находится на удаленной точке. Стандартный проброс COM-портов средствами Windows работает крайне медленно.
Современный фискальный чек содержит огромный массив данных: коды маркировки, сложные ставки НДС, QR-коды и длинные наименования номенклатуры. При слабом канале связи или использовании обычного проброса COM-портов передача команды на печать одного чека может растянуться на минуты. Интерфейс 1С в это время будет заблокирован ожиданием ответа от драйвера оборудования.
Что мы можем сделать? Откажемся от стандартного перенаправления портов в пользу проброса по протоколу TCP/IP. Для этого используются специализированные утилиты (например, TCP COM Bridge). Настройка сетевого взаимодействия по TCP/IP многократно ускоряет обмен пакетами между сервером 1С и локальной кассой.
В ходе анализа проблемы важно не забывать про программную среду. Некоторые релизы платформы 1С:Предприятие 8.3 (в частности, в ветках 8.3.18 и 8.3.20) содержали ошибки во внутреннем оптимизаторе запросов, из-за чего фоновые задания потребляли неадекватно много оперативной памяти и процессорного времени.
Разберем комплексный алгоритм обновления:
Используя этот комплексный подход, мы сможем устранить «узкие места» в архитектуре базы, сетевых протоколах и фоновых процессах, что гарантированно вернет скорость пробития чеков в 1С:Комплексная автоматизация 2.5 к нормальным значениям в 1–3 секунды.