Глобальный поиск завис или грузит базу: прерываем, сужаем, выключаем индексацию

· 9 мин

Содержание

Остановить глобальный поиск в конфигураторе 1С, который уже идёт, можно сочетанием Ctrl+Break: это стандартная команда прерывания длительных операций в платформе 8.3. Отдельного флажка «отключить глобальный поиск» в конфигураторе нет. Зато можно сделать так, чтобы поиск не запускался по всей конфигурации, и выключить фоновую индексацию данных, которая и грузит базу.

Ниже разделены две вещи, которые часто путают. Первая — поиск по текстам конфигурации, который разработчик запускает сам. Вторая — полнотекстовый поиск по данным базы: его индекс обновляется в фоне и отвечает за строку поиска в пользовательском режиме. Тормозит обычно второе, а отключают по ошибке первое.

Почему глобальный поиск подвешивает конфигуратор

Команда глобального поиска (Ctrl+Shift+F в конфигураторе 8.3) просматривает не только модули. По умолчанию в область попадают:

  • 📄 модули объектов, менеджеров, форм и общие модули;
  • 🧾 макеты, в том числе табличные и текстовые;
  • 📚 справочная информация объектов;
  • 🧩 подключённые расширения, если они открыты в дереве.

В типовой Бухгалтерии 3.0 это десятки тысяч объектов. В ERP или КА — в несколько раз больше. Перед поиском платформа загружает тексты в память, поэтому первый поиск после открытия конфигурации идёт заметно дольше следующих.

Что ещё делает поиск медленным:

ФакторКак проявляетсяЧто помогает
Поиск по всей конфигурации2–10 минут на крупной базеСузить область до подсистемы или объекта
Включены макеты и справкаМного лишних совпадений, долгий проходСнять эти флажки в окне поиска
Мало памяти на машинеПроцесс 1cv8.exe уходит в подкачкуЗакрыть лишние окна модулей, второй сеанс
Короткая строка поискаТысячи совпадений, окно результатов тормозитИскать слово целиком, с учётом регистра
Конфигуратор по сети на файловую базуКаждое чтение — сетевой запросКопия базы локально или клиент-сервер

Если подвисает не поиск, а весь конфигуратор при любом действии, причина чаще в разросшемся кэше клиента. Запуск с параметром /ClearCache очищает локальный кэш и не трогает данные базы.

Как прервать глобальный поиск, который уже запущен

Порядок действий от мягкого к жёсткому:

  1. Нажмите Ctrl+Break. Платформа спросит, прервать ли операцию, подтвердите. На части операций срабатывает и Esc.
  2. Подождите 10–20 секунд. Конфигуратор проверяет флаг прерывания между объектами, поэтому на тяжёлом модуле реакция бывает не мгновенной.
  3. Если окно не отвечает больше 5 минут и диспетчер задач показывает нулевую нагрузку 1cv8.exe на процессор, процесс завис, а не работает .
  4. В крайнем случае снимите процесс 1cv8.exe в диспетчере задач.

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

Снимайте процесс только свой. В терминальной среде у других разработчиков тоже есть 1cv8.exe, ориентируйтесь на столбец с именем пользователя.

Как сузить поиск, чтобы не отключать его совсем

Глобальный поиск — главный инструмент разработчика при доработке. Выключать его незачем, достаточно не гонять по всей конфигурации каждый раз.

Ограничьте область

В окне глобального поиска есть переключатель области: вся конфигурация или выбранные объекты. Работает так:

  1. В дереве конфигурации выделите нужную ветку: подсистему, документ, группу общих модулей.
  2. Откройте глобальный поиск и выберите поиск по выбранным объектам.
  3. Запустите. На одном документе поиск занимает секунды.

Уберите лишние типы текстов

Если ищете вызов процедуры, макеты и справка не нужны. Снимите их флажки в окне поиска. Совпадений станет меньше, окно результатов перестанет тормозить при прокрутке.

Сделайте строку поиска точнее

  • 🔤 Включите учёт регистра: ПолучитьДанные и получитьданные перестанут смешиваться.
  • 🎯 Ищите слово целиком: Сумма не найдёт СуммаНДС, СуммаДокумента и ещё 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 и других конфигурациях на БСП настройка находится в разделе Администрирование → Общие настройки, блок про полнотекстовый поиск. Снимите флажок полнотекстового поиска данных. Обновление индекса прекратится, поиск по данным из строки поиска пропадёт, поиск по командам останется.

Через стандартную обработку платформы

Если типовой настройки нет (самописная или старая конфигурация):

  1. Откройте меню Все функции → Стандартные. Если пункта «Все функции» нет, включите его в параметрах программы.
  2. Откройте обработку «Управление полнотекстовым поиском».
  3. Запретите полнотекстовый поиск. Там же можно очистить индекс , чтобы освободить место на диске.

Программно

Режим задаётся одним вызовом. Код выполняется на сервере под пользователем с административными правами, например из внешней обработки:

&НаСервере
Процедура ЗапретитьППДНаСервере()
    ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(
        РежимПолнотекстовогоПоиска.Запретить);
    ПолнотекстовыйПоиск.ОчиститьИндекс();
КонецПроцедуры

Обратно включается так же, со значением РежимПолнотекстовогоПоиска.Разрешить, после чего индекс нужно построить заново методом ПолнотекстовыйПоиск.ОбновитьИндекс(). На большой базе построение займёт часы, запускайте его ночью.

Точечно в конфигураторе: исключить объекты из индекса

Полностью отключать поиск по данным не всегда нужно. Часто индекс раздувают 2–3 объекта: регистр с миллионами записей, справочник с длинными текстовыми реквизитами, журнал обмена.

  1. В дереве конфигурации откройте свойства объекта или его реквизита.
  2. Найдите свойство «Полнотекстовый поиск» и установите значение «Не использовать».
  3. Выполните Конфигурация → Обновить конфигурацию базы данных.

В типовой конфигурации на поддержке так правится только после снятия объекта с поддержки или через расширение. Это усложнит обновления, поэтому сначала попробуйте отключение в режиме «Предприятие».

Что именно тормозит у вас?

Регламентные задания индексации

Если поиск по данным нужен, но мешает нагрузка, меняйте не режим, а расписание.

В конфигурациях на БСП список заданий открывается из раздела Администрирование → Обслуживание, группа регламентных операций. Найдите задания, в названии которых есть «полнотекстов», и посмотрите:

  • ⏱ как часто запускается обновление индекса;
  • 🔁 когда выполняется слияние индекса — это самая тяжёлая операция;
  • ❌ нет ли ошибок в журнале выполнения: упавшее задание может перезапускаться снова и снова.

Перенесите слияние на ночь, а обновление сделайте реже, например раз в час. Для небольшой базы на 10–20 пользователей этого обычно хватает.

Мини-кейс: база на 40 пользователей

Типичная картина. Днём сервер загружен на 60–70 %, хотя пользователи работают как обычно. В консоли кластера видно фоновое задание, которое почти не прекращается. Это обновление индекса: за день в базу заносят несколько тысяч документов, и каждое срабатывание дописывает их в индекс.

Решение в два шага. Обновление индекса переносится на раз в час, слияние — на 02:00. Нагрузка днём падает, а поиск по данным отстаёт от реальности максимум на час. Для бухгалтерии это незаметно.

В файловой базе индекс лежит в подкаталоге 1Cv8FTxt рядом с файлом 1Cv8.1CD. Если он занимает много места, очищайте его через обработку или код, а не удалением папки вручную при открытых сеансах.

Чем заменить глобальный поиск при работе с кодом

Есть инструменты, которые находят нужное быстрее, чем полный проход по конфигурации.

ИнструментКогда использоватьСкорость
Поиск в дереве конфигурации (строка над деревом)Найти объект по имениМгновенно
Поиск ссылок на объект (контекстное меню объекта)Где используется реквизит, справочник, формаСекунды
Ctrl+F в открытом модулеНайти место в одном модулеМгновенно
Выгрузка конфигурации в файлы + VS Code или ripgrepРегулярные выражения, поиск по всей конфигурации много раз подрядСекунды после выгрузки
1С:EDTПостоянная разработка, навигация по вызовамБыстро после индексации проекта

Поиск ссылок вместо поиска по тексту

Когда нужно понять, где используется реквизит или справочник, текстовый поиск даёт мусор: совпадения в комментариях, в похожих именах, в строках сообщений. Поиск ссылок на объект работает по метаданным. Он покажет формы, роли, подписки на события, критерии отбора и модули, где объект упомянут как объект, а не как набор букв.

Вызывается из контекстного меню объекта в дереве конфигурации. Результат открывается в том же окне, что и результаты глобального поиска, и по двойному щелчку ведёт к месту использования.

Выгрузка в файлы — приём для больших конфигураций

  1. В конфигураторе выполните Конфигурация → Выгрузить конфигурацию в файлы и укажите пустой каталог.
  2. Откройте каталог в редакторе с поиском по папке.
  3. Ищите с регулярными выражениями, фильтром по расширению .bsl и исключением макетов.

Пример поиска всех вызовов процедуры в модулях через ripgrep:

rg -n --glob "*.bsl" "ЗаполнитьТабличнуюЧасть\(" D:\dump\buh30

Выгрузка ERP занимает несколько минут, зато дальше поиск по ней идёт за секунды. Повторяйте выгрузку после каждого обновления конфигурации, иначе будете искать по устаревшему коду.

Частые вопросы

Сломается ли база, если снять процесс конфигуратора во время поиска?
Нет. Поиск только читает тексты. Пропадут несохранённые изменения конфигурации, данные базы не пострадают.
Почему после Ctrl+Break поиск продолжается ещё полминуты?
Платформа проверяет прерывание между объектами. Если в этот момент обрабатывается большой модуль или макет, она сначала закончит его.
Отключится ли поиск по командам в «Такси», если запретить полнотекстовый поиск?
Нет. Поиск по командам и разделам работает без индекса. Пропадут только результаты по данным: документам, справочникам, контрагентам.
Нужен ли монопольный режим, чтобы запретить полнотекстовый поиск?
Для смены режима в типовых настройках — нет. Монопольный доступ может понадобиться, если вы меняете свойство «Полнотекстовый поиск» у объектов и обновляете структуру базы.
Можно ли искать в конфигураторе по нескольким базам сразу?
Нет, поиск работает в открытой конфигурации. Для сравнения нескольких конфигураций выгрузите их в файлы и ищите по каталогам.