При работе в программе 1С:Розница 2.3 в файловом режиме через терминальный доступ (RDP) пользователи часто сталкиваются с неприятной проблемой: при нажатии на кнопку «Подбор» система «замирает» на 15–30 секунд. Особенно странно выглядит ситуация, когда задержки наблюдаются только у одного сотрудника, а у остальных всё работает стабильно. Разберем детально причины этого поведения и способы оптимизации системы.
Одной из наиболее вероятных причин «тормозов» при поиске и подборе товаров является механизм полнотекстового поиска (ПП). Этот механизм позволяет быстро находить данные по части слова, но в файловом режиме он крайне чувствителен к состоянию своих индексных файлов.
Рассмотрим, как это работает. Когда пользователь вводит данные в строку поиска, система обращается к индексу. Если индекс поврежден или не актуален, 1С может пытаться выполнить поиск напрямую в таблицах или тратить значительное время на попытку обращения к невалидным данным индекса. Проанализируем шаги по исправлению ситуации:
Важный момент: если полнотекстовый поиск не критичен для работы кассиров (например, они ищут только по точному артикулу или штрихкоду), его можно временно отключить для проверки производительности. Если задержки исчезнут, значит, проблема была именно в нем.
Выясним технические параметры нашей базы. Если размер файла 1Cv8.1CD приближается к 4 Гб, мы входим в «красную зону». В файловой версии 1С существует ограничение: объем данных в одной внутренней таблице не может превышать 4 Гб. Когда база разрастается до 3.9 Гб, работа с индексами и временными таблицами (которые активно используются в подборе) замедляется в геометрической прогрессии.
Выполним следующие действия для оптимизации объема:
Проанализируем ситуацию, когда проблема исчезает при смене компьютера. Это классический признак проблемы с проброшенными принтерами в RDP-сессии. При открытии любой формы (включая «Подбор»), платформа 1С опрашивает параметры принтера по умолчанию для правильной отрисовки элементов управления и подготовки печатных форм.
Если у конкретного пользователя в сессию «проброшен» неисправный сетевой принтер или принтер, драйвер которого конфликтует с системой, возникает задержка в 15–30 секунд (таймаут ожидания отклика от принтера). Когда пользователь зашел с другого ПК, список проброшенных устройств изменился, и задержка исчезла.
Что нужно сделать: попробуем в настройках RDP-подключения на стороне клиента отключить опцию «Принтеры» в разделе «Локальные ресурсы» и проверим работу формы подбора без них.
Для того чтобы не гадать, а точно знать, на каком этапе происходит зависание, воспользуемся механизмом Оценки производительности. В 1С:Розница этот функционал позволяет фиксировать время выполнения ключевых операций.
Разберем алгоритм работы с этим инструментом:
В открывшемся списке мы увидим записи с колонками Ключевая операция и Время выполнения. Нам нужно проанализировать запись, относящуюся к Форма.ПодборТоваров или аналогичным. Если мы видим высокое значение в колонке времени, это подтверждает программную или серверную проблему. Если же замеры показывают, что 1С отработала быстро, а пользователь всё равно ждал — проблема в сетевом канале или визуализации RDP-сессии.
Выясним причину, почему проблема может быть привязана к конкретному логину 1С. Система сохраняет настройки форм (положение колонок, последние отборы, поисковые запросы) для каждого пользователя индивидуально. Если в таблицу настроек попала некорректная запись или сложный, «тяжелый» отбор, форма будет открываться медленно.
Посмотрим, как сбросить эти настройки:
Также не стоит забывать про локальный кэш 1С на сервере. Рекомендуется полностью удалить профиль пользователя из папки AppData\Local\1C и AppData\Roaming\1C на терминальном сервере, чтобы исключить влияние поврежденных временных файлов платформы.
Рассмотрим долгосрочное решение проблемы. Файловая база в связке с RDP — это не самая эффективная схема для торговой точки. Платформа 1С позволяет опубликовать базу через веб-сервер (Apache или IIS). В этом случае тонкий клиент подключается по протоколу HTTP/HTTPS, что зачастую работает быстрее и стабильнее, чем трансляция «картинки» рабочего стола через RDP, особенно при нестабильном интернете. Настройка публикации занимает около 30 минут, но избавляет от множества проблем, связанных с терминальными сессиями и блокировками файлов.
Пример программной проверки доступности индекса полнотекстового поиска (если вы решите добавить самодиагностику в конфигурацию):
Если Не ПолнотекстовыйПоиск.ДатаАктуальностиИндекса() < ТекущаяДата() - 86400 Тогда
Сообщить("Внимание: Индекс полнотекстового поиска не обновлялся более суток!");
КонецЕсли;
Подводя итог: начнем с очистки индекса полнотекстового поиска и проверки принтеров. Если это не поможет — перейдем к сжатию таблиц в Конфигураторе и очистке пользовательских настроек. Использование встроенных замеров производительности поможет вам точно локализовать узкое место системы.