Почему зависает подбор товаров в 1С:Розница 2.3 при работе через RDP и как это исправить

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

При работе в программе 1С:Розница 2.3 в файловом режиме через терминальный доступ (RDP) пользователи часто сталкиваются с неприятной проблемой: при нажатии на кнопку «Подбор» система «замирает» на 15–30 секунд. Особенно странно выглядит ситуация, когда задержки наблюдаются только у одного сотрудника, а у остальных всё работает стабильно. Разберем детально причины этого поведения и способы оптимизации системы.

Анализируем влияние полнотекстового поиска

Одной из наиболее вероятных причин «тормозов» при поиске и подборе товаров является механизм полнотекстового поиска (ПП). Этот механизм позволяет быстро находить данные по части слова, но в файловом режиме он крайне чувствителен к состоянию своих индексных файлов.

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

  1. Перейдем в раздел Администрирование — Поддержка и обслуживание.
  2. Найдем пункт Управление полнотекстовым поиском.
  3. Попробуем выполнить команду Очистить индекс, а затем — Обновить индекс.

Важный момент: если полнотекстовый поиск не критичен для работы кассиров (например, они ищут только по точному артикулу или штрихкоду), его можно временно отключить для проверки производительности. Если задержки исчезнут, значит, проблема была именно в нем.

Проверяем критический объем файловой базы

Выясним технические параметры нашей базы. Если размер файла 1Cv8.1CD приближается к 4 Гб, мы входим в «красную зону». В файловой версии 1С существует ограничение: объем данных в одной внутренней таблице не может превышать 4 Гб. Когда база разрастается до 3.9 Гб, работа с индексами и временными таблицами (которые активно используются в подборе) замедляется в геометрической прогрессии.

Выполним следующие действия для оптимизации объема:

  1. Запустим базу в режиме Конфигуратора.
  2. Обязательно создадим резервную копию.
  3. Перейдем в меню Администрирование — Тестирование и исправление.
  4. Выберем пункт Сжатие таблиц информационной базы. Это позволит удалить «хвосты» ранее удаленных записей и пересобрать индексы, что часто уменьшает размер файла на 10–20% и возвращает скорость работы.

Влияние принтеров и RDP-сессий

Проанализируем ситуацию, когда проблема исчезает при смене компьютера. Это классический признак проблемы с проброшенными принтерами в RDP-сессии. При открытии любой формы (включая «Подбор»), платформа 1С опрашивает параметры принтера по умолчанию для правильной отрисовки элементов управления и подготовки печатных форм.

Если у конкретного пользователя в сессию «проброшен» неисправный сетевой принтер или принтер, драйвер которого конфликтует с системой, возникает задержка в 15–30 секунд (таймаут ожидания отклика от принтера). Когда пользователь зашел с другого ПК, список проброшенных устройств изменился, и задержка исчезла.

Что нужно сделать: попробуем в настройках RDP-подключения на стороне клиента отключить опцию «Принтеры» в разделе «Локальные ресурсы» и проверим работу формы подбора без них.

Работа с регистром сведений «Замеры времени»

Для того чтобы не гадать, а точно знать, на каком этапе происходит зависание, воспользуемся механизмом Оценки производительности. В 1С:Розница этот функционал позволяет фиксировать время выполнения ключевых операций.

Разберем алгоритм работы с этим инструментом:

  1. Зайдем в раздел Администрирование — Обслуживание — Оценка производительности.
  2. Установим флаг Выполнять замеры производительности.
  3. Попросим пользователя выполнить действие, которое вызывает зависание (открыть подбор).
  4. После этого перейдем по ссылке Замеры времени.

В открывшемся списке мы увидим записи с колонками Ключевая операция и Время выполнения. Нам нужно проанализировать запись, относящуюся к Форма.ПодборТоваров или аналогичным. Если мы видим высокое значение в колонке времени, это подтверждает программную или серверную проблему. Если же замеры показывают, что 1С отработала быстро, а пользователь всё равно ждал — проблема в сетевом канале или визуализации RDP-сессии.

Очистка настроек пользователя и кэша

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

Посмотрим, как сбросить эти настройки:

  1. Зайдем в Администрирование — Настройки пользователей и прав.
  2. Выберем пункт Персональные настройки пользователей — Очистка настроек.
  3. Выберем нужного пользователя и удалим настройки для формы подбора товаров.

Также не стоит забывать про локальный кэш 1С на сервере. Рекомендуется полностью удалить профиль пользователя из папки AppData\Local\1C и AppData\Roaming\1C на терминальном сервере, чтобы исключить влияние поврежденных временных файлов платформы.

Перспективное решение: публикация на веб-сервере

Рассмотрим долгосрочное решение проблемы. Файловая база в связке с RDP — это не самая эффективная схема для торговой точки. Платформа 1С позволяет опубликовать базу через веб-сервер (Apache или IIS). В этом случае тонкий клиент подключается по протоколу HTTP/HTTPS, что зачастую работает быстрее и стабильнее, чем трансляция «картинки» рабочего стола через RDP, особенно при нестабильном интернете. Настройка публикации занимает около 30 минут, но избавляет от множества проблем, связанных с терминальными сессиями и блокировками файлов.

Пример программной проверки доступности индекса полнотекстового поиска (если вы решите добавить самодиагностику в конфигурацию):


Если Не ПолнотекстовыйПоиск.ДатаАктуальностиИндекса() < ТекущаяДата() - 86400 Тогда
    Сообщить("Внимание: Индекс полнотекстового поиска не обновлялся более суток!");
КонецЕсли;

Подводя итог: начнем с очистки индекса полнотекстового поиска и проверки принтеров. Если это не поможет — перейдем к сжатию таблиц в Конфигураторе и очистке пользовательских настроек. Использование встроенных замеров производительности поможет вам точно локализовать узкое место системы.

← На главную