Что делать, если поиск в конфигураторе 1С 8.3 завис
Содержание
Частый миф: что запущенный в конфигураторе поиск «вешает базу» и выкидывает всех пользователей. Это не так. Глобальный поиск и поиск ссылок на объект только читают конфигурацию, монопольный доступ им не нужен — остальные спокойно продолжают работать в «Предприятии». Прервать сам поиск можно штатно: в окне хода поиска нажмите кнопку отмены или Esc, а панель «Результаты поиска» внизу экрана просто закройте.
Другое дело, если конфигуратор перестал отвечать совсем. Тогда есть два варианта: либо он всё ещё ищет (поиск ссылок по большой типовой конфигурации идёт минутами), либо действительно завис. Ниже — как отличить одно от другого и как безопасно завершить процесс 1cv8.exe, не повредив базу и не потеряв правки в модулях.
Почему поиск подвисает и какой он бывает
В конфигураторе 8.3 два разных поиска, и ведут они себя по-разному.
- 🔎 Глобальный поиск — ищет строку по текстам всей конфигурации (модули, формы, макеты, свойства объектов). Вызывается из главного меню
Правка → Глобальный поиск. - 🔗 Поиск ссылок на объект — показывает, где используется конкретный справочник, документ, реквизит. Вызывается из контекстного меню объекта в дереве конфигурации командой
Поиск ссылок на объект.
Второй тяжелее. Чтобы собрать все ссылки, платформа перебирает метаданные целиком, и на типовой «Бухгалтерии предприятия» или ЗУП с тысячами объектов это занимает заметное время. Само по себе это не зависание.
Отдельно стоит поиск внутри одного модуля по Ctrl+F — он работает по открытому тексту, срабатывает мгновенно и зависнуть не может. Проблемы бывают именно с двумя «тяжёлыми» видами поиска по всей конфигурации:
| Вид поиска | Где ищет | Скорость | Как прервать |
|---|---|---|---|
В тексте модуля (Ctrl+F) | Открытый модуль | Мгновенно | Закрыть панель, Esc |
| Глобальный поиск | Все тексты конфигурации | Секунды-минуты | Esc, кнопка отмены |
| Поиск ссылок на объект | Все метаданные | Минуты на крупной базе | Esc, кнопка отмены |
Если тормозит Ctrl+F — дело не в поиске, а в самом конфигураторе или машине. Прерывать в этом случае нечего.
Отчего поиск действительно затягивается или замирает:
- 📂 Файловая база на сетевом диске. Чтение конфигурации идёт по сети — медленно и с рывками. Самая частая причина «вечного» поиска.
- 🐢 Короткая строка поиска. Поиск одной-двух букв даёт тысячи совпадений, и заполнение результатов тормозит интерфейс.
- 🛡️ Антивирус проверяет обращения к файлу базы и к временным файлам платформы.
- 💾 Нехватка оперативной памяти — конфигуратор уходит в своп.
- ⏳ Фоновая операция. Если параллельно идёт сравнение/объединение или обновление, поиск ждёт.
Откуда берётся миф про «блокировку базы»? Монопольный доступ конфигуратору действительно нужен — но для других операций: обновления структуры базы данных (реструктуризации), загрузки конфигурации из файла, загрузки .dt, тестирования и исправления. Вот эти действия требуют, чтобы все вышли. Поиск к ним не относится: он читает конфигурацию и никого не выгоняет. Поэтому искать можно спокойно в рабочее время, а прерванный поиск не оставляет базу в «подвешенном» состоянии.
Как остановить поиск штатными средствами
Пока конфигуратор отвечает, завершать процесс не нужно — поиск останавливается обычными средствами.
- В окне хода поиска нажмите кнопку отмены или клавишу
Esc. Платформа прервёт операцию и вернёт управление. - Если результаты уже выводятся в панель «Результаты поиска» внизу экрана — закройте эту панель крестиком. Наполнение прекратится.
- Если окна хода нет, а индикатор в строке состояния ещё движется — дождитесь конца этапа и нажмите
Esc; реакция появится в паузе между порциями данных.
Отмена не откатывает уже найденное: то, что успело попасть в «Результаты поиска», останется в панели. Это удобно — иногда нужное вхождение уже в списке, и ждать полный проход незачем. Прервали, посмотрели верхние результаты, перешли к объекту двойным щелчком по строке.
После отмены конфигуратор остаётся в рабочем состоянии: ничего перезапускать не надо. Повторите поиск с более точной строкой или в нужной ветке дерева.
У глобального поиска есть параметры, которые заметно сужают выборку и ускоряют вывод: «учитывать регистр», «слово целиком», а также выбор, где искать — в текстах модулей, в свойствах объектов, в макетах. Чем уже область и строже условие, тем короче список совпадений и тем реже поиск подвисает на выводе результатов. Если вы раз за разом отменяете «утонувший» поиск, первым делом ужесточите эти условия, а не ищите кнопку остановки.
Не торопитесь снимать процесс при первом же замирании курсора. Поиск ссылок по большой конфигурации может «молчать» минуту-две — это ещё не зависание. Сначала убедитесь, что он действительно встал (см. следующий раздел), и лишь потом завершайте.
Если конфигуратор завис: завершаем процесс
Когда Esc не помогает, окно побелело и в заголовке висит «Не отвечает» — нужно понять, завис процесс или просто занят.
Откройте диспетчер задач (Ctrl+Shift+Esc), вкладка «Процессы», и посмотрите на 1cv8.exe:
- если процесс грузит процессор (несколько процентов CPU то растёт, то падает) — он работает, поиск идёт, снимать рано;
- если нагрузка нулевая несколько минут подряд, а окно не откликается — конфигуратор завис, можно завершать.
Для завершения выделите 1cv8.exe (в подробностях у него будет видно, что это конфигуратор нужной базы) и нажмите «Снять задачу».
Снятие процесса закрывает конфигуратор аварийно. Несохранённые правки в модулях, формах и макетах пропадут — платформа не успеет их записать. Поэтому до жёсткого завершения, если окно хоть немного отзывается, попробуйте сохранить (Ctrl+S).
Важный момент в вашу пользу: сам поиск ничего не пишет в базу. Он только читает конфигурацию, поэтому аварийное завершение во время поиска не повреждает базу данных и саму конфигурацию — теряются лишь ваши несохранённые изменения, если они были.
Отсюда простое правило на будущее: перед запуском долгого поиска по большой конфигурации сохраните правки (Ctrl+S). Конфигуратор не ведёт автосохранение открытых модулей, так что единственная реальная потеря при жёстком завершении — это несохранённый код. Если перед поиском вы всё записали, снятие процесса не стоит вам ничего, кроме повторного открытия базы.
В клиент-серверном варианте снятый на клиенте конфигуратор может оставить «висящий» сеанс в кластере. Клиент конфигуратора снят, а сеанс на сервере ещё числится активным и может держать объекты. Посмотреть и завершить сеансы можно через консоль администрирования серверов либо утилитой rac: список сеансов выводит rac session list (полный перечень команд — rac help). Найдите в списке свой сеанс конфигуратора по имени пользователя и приложению и завершите его. Как правило, кластер и сам закрывает такие сеансы по тайм-ауту, так что торопиться с ручным снятием не обязательно.
Что проверить после аварийного завершения
Раз поиск работает только на чтение, после снятия процесса конфигурация и база остаются целыми. Специальной «починки» не требуется, но пара проверок не помешает.
- 🔁 Откройте базу заново в конфигураторе. Если открылась и дерево конфигурации на месте — всё в порядке.
- ✍️ Проверьте последние правки. Всё, что вы меняли после предыдущего сохранения, потеряно — сверьтесь с тем, что помните, и внесите заново.
- 🔒 Файловая база: убедитесь, что рядом с
1Cv8.1CDне остался чужой блокирующий сеанс. Если база «занята», но все вышли — закройте все клиенты и откройте снова. - 🖥️ Клиент-серверная база: проверьте, не остался ли ваш сеанс конфигуратора в списке сеансов кластера, и при необходимости завершите его.
Анализировать технологический журнал или журнал регистрации тут обычно незачем: операции поиска в журнал регистрации не попадают, а техножурнал ведётся, только если вы его специально включили через logcfg.xml. Для разовой ситуации с зависшим поиском это лишнее.
Как ускорить поиск и не доводить до зависания
Проще предотвратить зависание, чем прерывать. Несколько приёмов, которые реально ускоряют поиск по типовым конфигурациям.
- 📍 Сужайте область. Перед глобальным поиском выделите в дереве нужную ветку (конкретную подсистему, документ, общий модуль) — платформа ищет в пределах выделенного, а не по всей конфигурации.
- ✏️ Задавайте точную строку. Ищите осмысленный фрагмент (имя процедуры, реквизита), а не две буквы. Чем длиннее и уникальнее строка, тем меньше совпадений и быстрее вывод.
- 💻 Работайте с локальной базой. Файловую базу с сетевой папки скопируйте на локальный диск и ищите в копии — это убирает главный тормоз.
- 🧹 Освободите память. Закройте лишние приложения и вторые окна конфигуратора; при нехватке RAM поиск по большой конфигурации уходит в своп.
- 🛡️ Добавьте исключения в антивирус для каталога базы и каталога временных файлов платформы — проверка каждого обращения заметно замедляет чтение.
- 🧾 Чистите панель результатов. «Результаты поиска» копят вхождения от нескольких запросов подряд. Когда там накапливаются сотни строк, перерисовка панели тормозит интерфейс и создаёт ощущение зависания. Закрывайте панель перед новым большим поиском.
Поиск ссылок на объект почти всегда быстрее глобального текстового поиска, когда задача — найти использование конкретного объекта. Начинайте с него, а не с поиска строки по всей конфигурации.
Чем ещё искать код, кроме встроенного поиска
Если встроенный поиск стабильно упирается в размер конфигурации, его можно обойти.
- 📤 Выгрузка конфигурации в файлы. Команда
Конфигурация → Выгрузить конфигурацию в файлысохраняет модули и формы как обычные текстовые файлы на диск. По ним ищет любой внешний редактор или файловый поиск — быстро и без нагрузки на платформу. Это удобно для разового поиска по коду «грепом». - 🧰 1C:EDT — отдельная среда разработки на базе Eclipse. Поиск по проекту в ней работает по индексу и на больших конфигурациях ощущается шустрее встроенного. Подходит тем, кто уже ведёт разработку в EDT.
- 🔗 Точечный поиск ссылок вместо глобального — когда нужно понять, где используется объект, команда
Поиск ссылок на объектдаёт готовый результат без перебора всех текстов.
У выгрузки в файлы есть приятный побочный эффект: по текстам можно искать сложные шаблоны — регулярными выражениями, с учётом структуры кода, по нескольким условиям сразу. Встроенный глобальный поиск так не умеет. А после правок конфигурацию можно загрузить обратно командой Конфигурация → Загрузить конфигурацию из файлов.
Выбор зависит от задачи: разово найти строку в коде — проще выгрузить конфигурацию в файлы; постоянно разрабатывать с быстрым поиском — смотреть в сторону EDT; понять использование одного объекта — встроенный поиск ссылок.
Поиск в конфигураторе блокирует работу пользователей?
Можно ли прервать поиск ссылок, не закрывая конфигуратор?
Esc. Конфигуратор остаётся открытым, база — на месте, можно сразу запустить новый поиск.Потеряю ли я конфигурацию, если сниму 1cv8.exe во время поиска?
Как понять, что конфигуратор завис, а не ищет?
1cv8.exe грузит процессор — поиск идёт, подождите. Если нагрузка нулевая несколько минут, а окно не отвечает — завис, можно снимать задачу.Есть ли горячая клавиша, чтобы остановить поиск?
Esc в окне хода поиска. Отдельной «аварийной» клавиши для зависшего конфигуратора нет: в этом случае процесс завершают через диспетчер задач.