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

· 9 мин

Содержание

Остановить поиск в конфигураторе 1С 8.3 можно сочетанием Ctrl+Break: пока идёт длительная операция, платформа сама подсказывает в строке состояния, что прервать её можно этими клавишами. На ноутбуке без клавиши Break работают Ctrl+Fn+B или Ctrl+Fn+Pause. Если окно не отвечает на клавиатуру вовсе, остаётся снять процесс 1cv8.exe в диспетчере задач. Несохранённые правки конфигурации при этом пропадут.

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

Прежде чем прерывать: поиск работает или правда завис

Глобальный поиск (Ctrl+Shift+F) по типовой ERP или КА перебирает тысячи модулей, форм и макетов. На медленном диске это 3–10 минут, и всё это время окно может показывать «Не отвечает». Это ещё не зависание.

Откройте диспетчер задач (Ctrl+Shift+Esc), вкладку «Подробности», и найдите 1cv8.exe. Конфигуратор и толстый клиент работают под одним и тем же именем процесса, поэтому ориентируйтесь на столбец «Описание» или на PID того окна, которое висит.

Что видно в диспетчереЧто это значитЧто делать
ЦП 10–25% и выше, растёт объём памятиПоиск идётПодождать 5–10 минут или прервать клавишами
Активная запись или чтение диска (Монитор ресурсов)Конфигурация читается из базыПодождать, особенно в файловой базе на сетевом диске
ЦП 0%, память не меняется дольше 5 минутПроцесс всталСначала клавиши, потом снятие процесса

Монитор ресурсов (resmon.exe) на вкладке «Диск» показывает, какие файлы трогает процесс. Если 1cv8.exe читает 1Cv8.1CD по сети — дело в канале до файловой базы, а не в самом поиске.

Прервать поиск клавишами: Ctrl+Break и замены на ноутбуке

Это первый и самый безопасный способ. Конфигуратор остаётся открытым, найденное к этому моменту обычно уже лежит в окне «Результаты поиска».

  1. Кликните по заголовку окна конфигуратора, чтобы фокус был именно на нём.
  2. Нажмите Ctrl+Break. Если с первого раза не сработало — подождите 10–20 секунд и нажмите ещё раз: платформа проверяет запрос на прерывание между шагами операции, а не мгновенно.
  3. Проверьте строку состояния внизу: прогресс должен исчезнуть.

Клавиша Esc в конфигураторе длительные операции, как правило, не прерывает. Она закрывает диалоги, но не останавливает уже запущенный перебор.

Где взять Break на ноутбуке

На компактных клавиатурах Break спрятан под Fn. Набор комбинаций зависит от производителя, поэтому пробуйте по очереди:

  • ⌨️ Ctrl+Fn+B — часто встречается на ноутбуках Lenovo и Dell;
  • ⌨️ Ctrl+Fn+Pause или Ctrl+Fn+P — если на какой-то клавише есть подпись Pause;
  • ⌨️ Ctrl+Fn+Insert или Ctrl+Fn+F11/F12 — на части моделей HP и ASUS Break висит на верхнем ряду, смотрите вторые подписи клавиш;
  • 🖥️ экранная клавиатура Windows (osk.exe) — в ней есть клавиша Pause; зажмите физический Ctrl и кликните Pause мышью.

Если вы работаете через RDP, сочетание может перехватываться клиентом удалённого рабочего стола. Проверьте, что в настройках подключения клавиатурные сочетания передаются на удалённый компьютер, иначе Break уйдёт в вашу локальную систему.

Снять процесс 1cv8.exe, если окно не реагирует

Когда клавиатура не помогает, а ЦП и диск стоят, конфигуратор придётся закрыть принудительно.

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

  1. Убедитесь, что никакие операции, кроме поиска, не идут. Если в строке состояния было «Обновление конфигурации базы данных» или «Сохранение» — ждите, сколько бы это ни длилось. Прерванное обновление структуры — уже совсем другая проблема.
  2. В диспетчере задач на вкладке «Подробности» найдите нужный 1cv8.exe. Если процессов несколько, разверните вкладку «Процессы»: там видно, какое окно какому процессу принадлежит.
  3. Нажмите «Снять задачу».
  4. Откройте конфигуратор заново и проверьте, что открывается конфигурация без предупреждений.

Можно то же самое из командной строки, если известен PID:

tasklist /fi "imagename eq 1cv8.exe"
taskkill /pid 12345 /f

Команду taskkill /im 1cv8.exe /f без PID не используйте на общем компьютере или терминальном сервере: она закроет все сеансы 1С всех пользователей.

Особенности клиент-серверной базы

В клиент-серверном варианте снятый процесс оставляет на сервере «висящий» сеанс конфигуратора. Он исчезнет сам по тайм-ауту, но если нужно открыть конфигуратор сразу, удалите сеанс вручную: в консоли администрирования серверов откройте базу → «Сеансы», найдите сеанс с приложением «Конфигуратор» и удалите его.

Из командной строки это делает утилита rac:

rac cluster list
rac session list --cluster=<uuid_кластера>
rac session terminate --cluster=<uuid_кластера> --session=<uuid_сеанса>

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

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

Поиск и зависания при отладке и замере производительности

Часто «завис поиск» на деле означает, что встал не конфигуратор, а отлаживаемый сеанс: код в режиме 1С:Предприятие ушёл в долгий цикл или тяжёлый запрос.

Если зависло приложение под отладкой

  • 🔹 В конфигураторе в меню «Отладка» есть команда «Прервать». Она останавливает выполнение на текущей строке, и вы увидите, в каком месте крутится код.
  • 🔹 В самом клиенте 1С:Предприятия Ctrl+Break прерывает выполнение клиентского кода и серверного вызова, если тот проверяет прерывание.
  • 🔹 Тяжёлый запрос, который уже ушёл в СУБД, с клиента не прервать. Его снимают удалением сеанса в консоли кластера, как описано выше.
  • 🔹 Команда «Отладка → Завершить отладку» отключает отладчик, но не останавливает зациклившийся процесс приложения.

Окно «Вычислить выражение» и табло

Отладчик подвисает, когда в табло или в окне вычисления выражения (Shift+F9) разворачивают большую коллекцию: таблицу значений на сотни тысяч строк или результат запроса без отбора. Конфигуратор пытается получить и отобразить всё содержимое. Перед разворачиванием смотрите Количество(), а не саму коллекцию.

Замер производительности

Включённый замер («Отладка → Замер производительности») собирает статистику по каждой выполненной строке. На длинной обработке результат получается огромным, и окно с ним открывается минутами. Выключайте замер той же командой сразу после интересующего участка, а не после всей операции.

Большие конфигурации: как искать быстрее и не зависать

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

Сузить область поиска

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

Если ищете по одному модулю, используйте обычный поиск Ctrl+F внутри открытого модуля. Для поиска мест использования объекта есть отдельная команда контекстного меню «Найти ссылки на объект» — она работает быстрее текстового поиска по имени.

Приём практика: искать по выгрузке в файлы

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

"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F"D:\Bases\ERP" /N"Администратор" /P"" /DumpConfigToFiles "D:\cfdump" /Out "D:\cfdump.log"

Номер версии в пути подставьте свой. Для клиент-серверной базы вместо /F указывается /S"сервер\база".

Модули выгружаются в файлы .bsl в кодировке UTF-8. Дальше по ним ищут VS Code (поиск по папке) или ripgrep:

rg -i -n "ЗаполнитьПоОснованию" D:\cfdump -g "*.bsl"

Поиск по десяткам тысяч файлов занимает пару секунд и ничего не вешает. Встроенная findstr с кириллицей в UTF-8 работает плохо, её для этого лучше не брать.

Файловая база на сетевом диске

Конфигуратор читает конфигурацию из файла 1Cv8.1CD. Если база лежит на сетевой папке, каждый поиск гонит по сети сотни мегабайт. Скопируйте базу локально для работы разработчика или переведите её в клиент-серверный вариант. Для файловой базы также помогает «Сжатие таблиц информационной базы» в окне Администрирование → Тестирование и исправление — но ему нужен монопольный доступ, запускайте вне рабочего времени.

Быстрый поиск в большой конфигурации
Выполнено: 0 / 5

Очистка кэша 1С и временных файлов

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

  1. Закройте все окна 1С на этом компьютере — и предприятие, и конфигуратор.
  2. Откройте по очереди папки %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.
  3. Удалите внутри только подпапки с именами вида GUID (a1b2c3d4-…). Файлы ibases.v8i и 1cestart.cfg не трогайте: в них список баз и настройки запуска.
  4. Очистите %TEMP% от файлов, которые система разрешит удалить.
  5. Запустите конфигуратор. Первое открытие будет медленнее: кэш строится заново.

Вместо ручной очистки можно добавить в строку запуска базы параметр /ClearCache — платформа сбросит кэш этой базы при старте.

На терминальном сервере чистите кэш только в профиле своего пользователя и только когда у вас закрыты все сеансы 1С. Удалять кэш других пользователей во время их работы нельзя — сеансы оборвутся с ошибками.

Логи и диагностика, если поиск зависает регулярно

Разовое зависание лечится перезапуском. Если поиск встаёт каждый раз на одном и том же месте, соберите данные для диагностики.

Дамп зависшего процесса

До того как снимать задачу, сохраните её состояние: в диспетчере задач правой кнопкой по 1cv8.exe → «Создать файл дампа». Тот же результат даёт утилита Sysinternals:

procdump -ma 12345 D:\dumps

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

Технологический журнал

Технологический журнал включается файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\. Минимальная настройка для сбора исключений и дампов при падении:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="D:\1C_techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
  <dump create="true" location="D:\1C_dumps" type="3"/>
</config>

Параметр history — сколько часов хранить журнал. После сбора данных файл удалите или переименуйте: журнал быстро занимает место на диске.

Журнал событий Windows

Если конфигуратор не зависает, а закрывается во время поиска, загляните в «Просмотр событий» → «Журналы Windows» → «Приложение». Запись об ошибке приложения 1cv8.exe с именем сбойного модуля подскажет, где копать: модуль антивируса, драйвер видеокарты или сама платформа.

Диагностика: выберите симптом

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

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