При обновлении конфигурации 1С:Розница 2.3 до актуальных релизов (например, 2.3.24) и вынужденном переходе на платформу 8.3.27 (или 8.3.25/8.3.26) многие пользователи сталкиваются с критической проблемой: процесс пробития чека в РМК занимает от 30 секунд до минуты. При этом сам чек может выйти из кассы быстро, но интерфейс программы «зависает», не позволяя кассиру перейти к следующей продаже. Особенно остро эта проблема проявляется при наличии в чеке маркированных товаров.
В этой статье мы подробно разберем причины возникновения таких задержек и рассмотрим пошаговый алгоритм оптимизации системы для восстановления нормальной скорости работы кассового узла, включая возможность объединения маркированных товаров в РМК.
Прежде чем приступать к очистке данных, нам необходимо точно определить «узкое место» в программном коде. Проанализируем результаты замера производительности, который типичен для данной ситуации. Как правило, основное время выполнения уходит на метод Записать() коллекции движений документа ЧекККМ.
Рассмотрим стандартный вызов, на котором происходит зависание:
// Запись движений документа в транзакции пробития чека
Объект.Движения.Записать();
Если замер показывает, что выполнение этой строки занимает десятки секунд, это сигнализирует о проблемах с обновлением индексов в файловой базе или о наличии тяжелых подписок на события, которые инициируют запросы к внешним сервисам (ИС МП «Честный ЗНАК»). На новых версиях платформы 8.3.25+ механизмы работы с блокировками в файловом режиме были изменены, что сделало систему более чувствительной к объему накопленных данных.
Выясним причину разрастания базы. Одной из главных причин медленной работы является избыточный объем данных в таблицах, связанных с кодами маркировки. Проанализируем состояние справочника ШтрихкодыУпаковокТоваров (для диагностики полезно получение информации по кодам из Честного знака). В активных торговых точках этот справочник может содержать сотни тысяч и миллионы записей, которые система вынуждена перебирать или индексировать при записи каждого нового чека.
Рекомендуемые действия по очистке:
После удаления значительного объема записей (например, очистки 400 000 штрихкодов), структура индексов в файловой базе .1CD может стать фрагментированной. Нам необходимо выполнить регламентные процедуры обслуживания.
Запустим «Тестирование и исправление» в конфигураторе со следующими параметрами:
Проанализируем ситуацию, когда замер производительности показывает задержку около 21 секунды на одном маркированном товаре. Это классический признак ожидания ответа от сервера. В Рознице 2.3.24 реализована проверка кодов в режиме реального времени. Если связь с сервером ИС МП нестабильна или установлены слишком длинные таймауты, 1С будет «ждать» ответа до завершения транзакции записи документа.
Попробуем временно отключить онлайн-проверку в разделе Администрирование — Настройки интеграции с ИС МП, чтобы убедиться, что задержка исчезла. Если это помогло, необходимо проверить настройки сетевого экрана (брандмауэра) и убедиться, что антивирус не блокирует исходящие запросы платформы 1С.
Заметим важную особенность: платформа 8.3.27 в файловом режиме активно использует временные файлы при записи движений. Если на компьютере включен Windows Defender или другой антивирус, он может сканировать каждый новый временный индексный файл. Это создает микрозадержки, которые в сумме дают те самые 30–60 секунд ожидания.
Добавим в исключения антивируса:
*.1cd, *.1cl, *.cdn.1cv8.exe.В новых релизах конфигурации «Розница» используется регистр ОчередьОперацийСМаркированнымТоваром, а также учитывается продление срока действия токена в разрешительной системе до 2026 года. Если в нем накопилось много необработанных или ошибочных записей, система может пытаться обработать их в момент пробития нового чека. Проверим этот регистр и очистим его от зависших записей прошлых периодов. Это позволит механизму проведения чека работать только с текущими данными, не отвлекаясь на анализ старых ошибок обмена.
Выполнив комплекс этих мер — от технического обслуживания базы до настройки параметров проверки маркировки — мы сможем существенно сократить время пробития чека и вернуть комфортную скорость работы кассирам даже на платформе 8.3.27.