Глобальный поиск завис или грузит базу: прерываем, сужаем, выключаем индексацию
Содержание
Остановить глобальный поиск в конфигураторе 1С, который уже идёт, можно сочетанием Ctrl+Break: это стандартная команда прерывания длительных операций в платформе 8.3. Отдельного флажка «отключить глобальный поиск» в конфигураторе нет. Зато можно сделать так, чтобы поиск не запускался по всей конфигурации, и выключить фоновую индексацию данных, которая и грузит базу.
Ниже разделены две вещи, которые часто путают. Первая — поиск по текстам конфигурации, который разработчик запускает сам. Вторая — полнотекстовый поиск по данным базы: его индекс обновляется в фоне и отвечает за строку поиска в пользовательском режиме. Тормозит обычно второе, а отключают по ошибке первое.
Почему глобальный поиск подвешивает конфигуратор
Команда глобального поиска (Ctrl+Shift+F в конфигураторе 8.3) просматривает не только модули. По умолчанию в область попадают:
- 📄 модули объектов, менеджеров, форм и общие модули;
- 🧾 макеты, в том числе табличные и текстовые;
- 📚 справочная информация объектов;
- 🧩 подключённые расширения, если они открыты в дереве.
В типовой Бухгалтерии 3.0 это десятки тысяч объектов. В ERP или КА — в несколько раз больше. Перед поиском платформа загружает тексты в память, поэтому первый поиск после открытия конфигурации идёт заметно дольше следующих.
Что ещё делает поиск медленным:
| Фактор | Как проявляется | Что помогает |
|---|---|---|
| Поиск по всей конфигурации | 2–10 минут на крупной базе | Сузить область до подсистемы или объекта |
| Включены макеты и справка | Много лишних совпадений, долгий проход | Снять эти флажки в окне поиска |
| Мало памяти на машине | Процесс 1cv8.exe уходит в подкачку | Закрыть лишние окна модулей, второй сеанс |
| Короткая строка поиска | Тысячи совпадений, окно результатов тормозит | Искать слово целиком, с учётом регистра |
| Конфигуратор по сети на файловую базу | Каждое чтение — сетевой запрос | Копия базы локально или клиент-сервер |
Если подвисает не поиск, а весь конфигуратор при любом действии, причина чаще в разросшемся кэше клиента. Запуск с параметром /ClearCache очищает локальный кэш и не трогает данные базы.
Как прервать глобальный поиск, который уже запущен
Порядок действий от мягкого к жёсткому:
- Нажмите
Ctrl+Break. Платформа спросит, прервать ли операцию, подтвердите. На части операций срабатывает иEsc. - Подождите 10–20 секунд. Конфигуратор проверяет флаг прерывания между объектами, поэтому на тяжёлом модуле реакция бывает не мгновенной.
- Если окно не отвечает больше 5 минут и диспетчер задач показывает нулевую нагрузку
1cv8.exeна процессор, процесс завис, а не работает . - В крайнем случае снимите процесс
1cv8.exeв диспетчере задач.
При снятии процесса теряются все несохранённые изменения конфигурации. Основная конфигурация базы при этом не портится: в ней лежит только то, что вы сохранили. Если вы работаете с хранилищем, захваченные объекты останутся захваченными, а несохранённые правки придётся повторить.
Снимайте процесс только свой. В терминальной среде у других разработчиков тоже есть 1cv8.exe, ориентируйтесь на столбец с именем пользователя.
Как сузить поиск, чтобы не отключать его совсем
Глобальный поиск — главный инструмент разработчика при доработке. Выключать его незачем, достаточно не гонять по всей конфигурации каждый раз.
Ограничьте область
В окне глобального поиска есть переключатель области: вся конфигурация или выбранные объекты. Работает так:
- В дереве конфигурации выделите нужную ветку: подсистему, документ, группу общих модулей.
- Откройте глобальный поиск и выберите поиск по выбранным объектам.
- Запустите. На одном документе поиск занимает секунды.
Уберите лишние типы текстов
Если ищете вызов процедуры, макеты и справка не нужны. Снимите их флажки в окне поиска. Совпадений станет меньше, окно результатов перестанет тормозить при прокрутке.
Сделайте строку поиска точнее
- 🔤 Включите учёт регистра:
ПолучитьДанныеиполучитьданныеперестанут смешиваться. - 🎯 Ищите слово целиком:
Суммане найдётСуммаНДС,СуммаДокументаи ещё 4 000 вхождений. - 🔍 Ищите по уникальному фрагменту: имени процедуры, тексту сообщения, имени реквизита.
Ищите в расширении отдельно
Если в базе подключены расширения, ищите сначала в нужном расширении. Оно открывается отдельным деревом через меню Конфигурация → Расширения конфигурации. Объектов в расширении единицы, поиск по нему идёт мгновенно, и вы сразу видите только свои доработки, а не типовой код.
Не держите открытыми десятки модулей
Каждый открытый модуль занимает память. Когда их 30–40, процессу 1cv8.exe становится тесно, и любой поиск идёт через подкачку. Закрывайте окна через меню Окна и сохраняйте работу перед долгим поиском.
Есть ли настройка в 1cv8.ini или параметрах конфигуратора
Нет. Ни в 1cv8.ini, ни в 1cestart.cfg, ни в окне Сервис → Параметры нет параметра, который выключает глобальный поиск по текстам конфигурации. Советы «впишите строку в ini-файл» встречаются, но такие строки платформа просто игнорирует.
Что реально делают эти файлы:
| Файл | Назначение |
|---|---|
1cestart.cfg | Список шаблонов баз, путь к установленным версиям платформы, общие параметры запуска |
ibases.v8i | Список информационных баз пользователя |
| Параметры конфигуратора | Оформление редактора, контекстная подсказка, шрифты, поведение окон |
Не правьте эти файлы наугад. Ошибка в ibases.v8i может испортить список баз в окне запуска. Перед правкой сохраните копию файла.
Если задача — чтобы глобальный поиск не запускался случайно, привыкайте к поиску внутри модуля (Ctrl+F). Он не выходит за пределы открытого окна и не трогает остальную конфигурацию.
Как отключить полнотекстовый поиск и индексацию в базе
Это то, что чаще всего называют «глобальным поиском» пользователи. Строка поиска в интерфейсе «Такси» ищет по командам, справке и данным базы. Данные она берёт из индекса полнотекстового поиска. Индекс обновляется регламентным заданием, и на крупной базе это обновление нагружает сервер и диск.
В режиме «Предприятие» через типовые настройки
В Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП настройка находится в разделе Администрирование → Общие настройки, блок про полнотекстовый поиск. Снимите флажок полнотекстового поиска данных. Обновление индекса прекратится, поиск по данным из строки поиска пропадёт, поиск по командам останется.
Через стандартную обработку платформы
Если типовой настройки нет (самописная или старая конфигурация):
- Откройте меню
Все функции → Стандартные. Если пункта «Все функции» нет, включите его в параметрах программы. - Откройте обработку «Управление полнотекстовым поиском».
- Запретите полнотекстовый поиск. Там же можно очистить индекс , чтобы освободить место на диске.
Программно
Режим задаётся одним вызовом. Код выполняется на сервере под пользователем с административными правами, например из внешней обработки:
&НаСервере
Процедура ЗапретитьППДНаСервере()
ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(
РежимПолнотекстовогоПоиска.Запретить);
ПолнотекстовыйПоиск.ОчиститьИндекс();
КонецПроцедуры
Обратно включается так же, со значением РежимПолнотекстовогоПоиска.Разрешить, после чего индекс нужно построить заново методом ПолнотекстовыйПоиск.ОбновитьИндекс(). На большой базе построение займёт часы, запускайте его ночью.
Точечно в конфигураторе: исключить объекты из индекса
Полностью отключать поиск по данным не всегда нужно. Часто индекс раздувают 2–3 объекта: регистр с миллионами записей, справочник с длинными текстовыми реквизитами, журнал обмена.
- В дереве конфигурации откройте свойства объекта или его реквизита.
- Найдите свойство «Полнотекстовый поиск» и установите значение «Не использовать».
- Выполните
Конфигурация → Обновить конфигурацию базы данных.
В типовой конфигурации на поддержке так правится только после снятия объекта с поддержки или через расширение. Это усложнит обновления, поэтому сначала попробуйте отключение в режиме «Предприятие».
Регламентные задания индексации
Если поиск по данным нужен, но мешает нагрузка, меняйте не режим, а расписание.
В конфигурациях на БСП список заданий открывается из раздела Администрирование → Обслуживание, группа регламентных операций. Найдите задания, в названии которых есть «полнотекстов», и посмотрите:
- ⏱ как часто запускается обновление индекса;
- 🔁 когда выполняется слияние индекса — это самая тяжёлая операция;
- ❌ нет ли ошибок в журнале выполнения: упавшее задание может перезапускаться снова и снова.
Перенесите слияние на ночь, а обновление сделайте реже, например раз в час. Для небольшой базы на 10–20 пользователей этого обычно хватает.
Мини-кейс: база на 40 пользователей
Типичная картина. Днём сервер загружен на 60–70 %, хотя пользователи работают как обычно. В консоли кластера видно фоновое задание, которое почти не прекращается. Это обновление индекса: за день в базу заносят несколько тысяч документов, и каждое срабатывание дописывает их в индекс.
Решение в два шага. Обновление индекса переносится на раз в час, слияние — на 02:00. Нагрузка днём падает, а поиск по данным отстаёт от реальности максимум на час. Для бухгалтерии это незаметно.
В файловой базе индекс лежит в подкаталоге 1Cv8FTxt рядом с файлом 1Cv8.1CD. Если он занимает много места, очищайте его через обработку или код, а не удалением папки вручную при открытых сеансах.
Чем заменить глобальный поиск при работе с кодом
Есть инструменты, которые находят нужное быстрее, чем полный проход по конфигурации.
| Инструмент | Когда использовать | Скорость |
|---|---|---|
| Поиск в дереве конфигурации (строка над деревом) | Найти объект по имени | Мгновенно |
| Поиск ссылок на объект (контекстное меню объекта) | Где используется реквизит, справочник, форма | Секунды |
Ctrl+F в открытом модуле | Найти место в одном модуле | Мгновенно |
| Выгрузка конфигурации в файлы + VS Code или ripgrep | Регулярные выражения, поиск по всей конфигурации много раз подряд | Секунды после выгрузки |
| 1С:EDT | Постоянная разработка, навигация по вызовам | Быстро после индексации проекта |
Поиск ссылок вместо поиска по тексту
Когда нужно понять, где используется реквизит или справочник, текстовый поиск даёт мусор: совпадения в комментариях, в похожих именах, в строках сообщений. Поиск ссылок на объект работает по метаданным. Он покажет формы, роли, подписки на события, критерии отбора и модули, где объект упомянут как объект, а не как набор букв.
Вызывается из контекстного меню объекта в дереве конфигурации. Результат открывается в том же окне, что и результаты глобального поиска, и по двойному щелчку ведёт к месту использования.
Выгрузка в файлы — приём для больших конфигураций
- В конфигураторе выполните
Конфигурация → Выгрузить конфигурацию в файлыи укажите пустой каталог. - Откройте каталог в редакторе с поиском по папке.
- Ищите с регулярными выражениями, фильтром по расширению
.bslи исключением макетов.
Пример поиска всех вызовов процедуры в модулях через ripgrep:
rg -n --glob "*.bsl" "ЗаполнитьТабличнуюЧасть\(" D:\dump\buh30
Выгрузка ERP занимает несколько минут, зато дальше поиск по ней идёт за секунды. Повторяйте выгрузку после каждого обновления конфигурации, иначе будете искать по устаревшему коду.