База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как ускорить медленный поиск в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 26 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
2 июля 2026 в 17:38 #38032
Поиск в 1С работает очень медленно. Как исправить?
-
2 июля 2026 в 17:38 #38033
Если поиск в 1С работает очень медленно, причины могут быть разные — от настроек полнотекстового поиска до аппаратных ограничений и особенностей конфигурации. Вот конкретные шаги, которые помогут ускорить поиск:
1. Проверить и оптимизировать полнотекстовый поиск (ПТПоиск)
— Если полнотекстовый поиск включён, убедитесь, что индекс построен и актуален. В конфигурации есть регламентное задание перестроения индекса — оно не должно запускаться слишком часто (например, не каждую минуту).
— Если база небольшая, можно вообще отключить полнотекстовый поиск — он может только замедлять.
— В случае больших баз — запускать перестроение индекса в ночное время, когда база не используется.
— Удалить из папки с индексом (обычно 1Cv8FTxt) большое количество мелких файлов, если они накопились — это признак сбоя перестроения индекса.2. Ограничить поля поиска в динамических списках и формах подбора
В управляемых формах поиск по всем полям сильно тормозит. Можно программно ограничить поиск только по нужным полям. Например, использовать процедуру, которая блокирует отборы и сортировки по ненужным полям динамического списка, оставляя только ключевые поля для поиска.
Пример кода (упрощённо):1С (Код)1234567891011Процедура УстановитьОграничениеДинамическогоСписка(Список, РазрешенныеПоля)МассивПолей = Новый Массив;Для Каждого Элемент Из Список.КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы ЦиклЕсли РазрешенныеПоля.Найти(Строка(Элемент.Поле)) = Неопределено ТогдаМассивПолей.Добавить(Строка(Элемент.Поле));КонецЕсли;КонецЦикла;Список.УстановитьОграниченияИспользованияВОтборе(МассивПолей);Список.УстановитьОграниченияИспользованияВПорядке(МассивПолей);Список.УстановитьОграниченияИспользованияВГруппировке(МассивПолей);КонецПроцедурыВызовать с перечнем полей, по которым нужен поиск, например:
УстановитьОграничениеДинамическогоСписка(ЭтаФорма.Список, Новый Массив("Наименование", "Артикул"));3. Оптимизировать аппаратную часть и сетевое окружение
— Перенести базу на SSD-диск — это самый эффективный способ ускорить работу файловой базы.
— Если база файловая и работает по сети — убедиться, что сеть гигабитная, а не 100 Мбит/с.
— Отключить IPv6, использовать IPv4.
— Добавить 1С в исключения антивируса и брандмауэра или временно отключить их для теста.
— Если возможно, перейти на клиент-серверный режим или терминальный доступ — файловая база по сети всегда будет медленнее.4. Настроить регламентные задания
— Отключить ненужные регламентные задания, например, обновление новостей, отправку статистики, перестроение полнотекстового индекса слишком часто.
— Перенести регламентные задания на ночное время.5. Проверить кэш и настройки клиента
— Очистить кэш 1С (папки %AppData%1C1Cv8*).
— При работе через удалённый доступ отключить маппинг локальных принтеров — 1С при запуске пытается их найти, что сильно тормозит.6. Проверить и оптимизировать конфигурацию
— Запустить проверку конфигурации и исправление базы (Тестирование и исправление).
— Удалить или отключить ненужные функциональные опции.
— Уменьшить количество отображаемых колонок и элементов в списках.7. Если поиск в запросах
— Оптимизировать запросы, использовать индексы, избегать сложных декартовых произведений.
— Не делать поиск по большим текстовым полям без индексации.Рекомендую посмотреть здесь — там подробно описаны методы ускорения поиска и работы 1С в целом:
https://infostart.ru/1c/articles/1267438/
https://infostart.ru/1c/articles/377773/
https://serveradmin.ru/fajlovaya-baza-1s-tormozit/Если база большая и поиск критически важен, лучше рассмотреть переход на клиент-серверный режим с MS SQL или PostgreSQL. Файловая база по сети с большим количеством данных и пользователей всегда будет тормозить.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.