Полнотекстовый поиск данных (ППД) — это один из важнейших механизмов в экосистеме решений 1С, особенно в таких документоориентированных системах, как 1С:Документооборот. Он позволяет пользователям мгновенно находить нужные файлы, карточки документов, задачи и бизнес-процессы по ключевым словам. Однако на практике администраторы часто сталкиваются с крайне неприятной проблемой: при попытке выполнить поиск с использованием двух и более отборов (например, по типам документов) система намертво зависает или выполняет операцию часами.
В этой статье мы подробно проанализируем причины этой проблемы, разберем список известных критических ошибок технологической платформы 1С, связанных с ППД, и по шагам восстановим быструю и стабильную работу поискового механизма.
Если полнотекстовый поиск быстро и хорошо ищет без отборов или только по одному условию, но зависает при усложнении запроса, в первую очередь необходимо обратить внимание на версию используемой технологической платформы. В истории развития 1С v8.3 механизм ППД неоднократно подвергался доработкам, которые сопровождались критическими ошибками индексации и распределения памяти.
Проанализируем ключевые ошибки платформы из официального багтрекера 1С, которые напрямую вызывают зависание и падение рабочих процессов:
rphost или зависанию всей программы.docIdCompTempMain.dat и docIdCompTemp.dat непрерывно растут до десятков гигабайт, забивая свободное дисковое пространство.Если ваша конфигурация работает на платформе версии 8.3.15 или ранних сборках 8.3.16/8.3.17, зависания при сложном поиске — это закономерный результат системных недоработок движка ППД.
Для долгосрочного решения проблемы необходимо выполнить комплекс технологических работ по обновлению платформы и сбросу кэша поиска. Разберем этот процесс по шагам:
C:\Program Files\1cv8\srvinfo\reg_1541\). Найдем папку с идентификатором вашей информационной базы и внутри неё перейдем в каталог 1Cv8FTxt. Полностью очистим все файлы из этой папки (файлы с расширениями *.bin, *.dat и др.).В "1С:Документообороте" основной объем поискового индекса формируется за счет присоединенных файлов (сканы, документы Microsoft Word, таблицы Excel, PDF-файлы). Попытка проиндексировать файлы огромного размера приводит к мгновенному исчерпанию оперативной памяти рабочим процессом 1С.
Рассмотрим, как настроить разумные лимиты:
Еще одна скрытая причина мертвых зависаний кроется в неправильной конфигурации среды выполнения для извлечения текстов из файлов. Проанализируем настройки операционной системы внутри формы управления поиском:
В настройках извлечения текста присутствует переключатель: "Все рабочие станции работают под управлением ОС Windows" или "Одна или несколько рабочих станций работают под управлением ОС Linux". Если этот флаг установлен некорректно (например, у вас чисто виндовое окружение, но выбран Linux, или наоборот), фоновое задание по извлечению текстовой подложки из файлов зависает в бесконечном цикле ожидания библиотек ОС. Это намертво блокирует общий процесс обновления поискового индекса. Установите переключатель в строгое соответствие с вашей инфраструктурой.
По умолчанию в типовых конфигурациях 1С настроены два регламентных задания: ОбновлениеИндексаППД и СлияниеИндексаППД. Их стандартное расписание часто не подходит для высоконагруженных систем:
Чтобы снизить физический размер файлов индекса (index*.bin), проведем аудит метаданных нашей конфигурации. По умолчанию свойство "Полнотекстовый поиск" включено для большинства справочников и документов.
Проанализируем структуру данных через Конфигуратор:
Такой подход позволяет сократить размер поискового индекса в несколько раз, что прямо пропорционально увеличит скорость работы по критически важным объектам (карточкам договоров, задач и присоединенным файлам).
Если вы обновили платформу до версии 8.3.22 и выше, крайне рекомендуется рассмотреть переход на обновленный механизм — Полнотекстовый поиск версии 2. Фирма "1С" кардинально переработала поисковый движок, исправив фундаментальные архитектурные проблемы предыдущей версии.
Основные преимущества использования ППД v2:
Важная особенность внедрения: Для работы ППД v2 в клиент-серверном варианте на сервере приложений 1С обязательно должна быть развернута и настроена среда выполнения Java (JRE). Переключение на новую версию выполняется в настройках администрирования ППД после монопольной очистки старого индекса.
В редких случаях, когда очистка индекса помогает лишь на короткое время, а затем поиск снова начинает вешать систему, проблема может быть вызвана нарушением физической или логической целостности таблиц СУБД, из которых ППД пытается прочитать данные для индексации.
При повреждении страниц данных стандартное "Тестирование и исправление" (ТИИ) средствами 1С может завершаться аварийно или не находить ошибок. Для регулярного профилактического обслуживания и автоматизации архивирования и тестирования баз 1С по расписанию удобно использовать специализированные утилиты. В такой ситуации системному администратору необходимо выполнить проверку базы на стороне SQL-сервера.
Рассмотрим пример команды для MS SQL Server, запускаемой через SQL Server Management Studio (SSMS):
-- Переводим базу данных в режим одного пользователя для безопасного исправления
ALTER DATABASE [Имя_Вашей_Базы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- Запускаем детальную проверку физической и логической целостности с исправлением ошибок
DBCC CHECKDB ([Имя_Вашей_Базы], REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO
-- Возвращаем базу данных в многопользовательский режим
ALTER DATABASE [Имя_Вашей_Базы] SET MULTI_USER;
GO
После успешного исправления ошибок на уровне СУБД необходимо заново выполнить процедуру очистки и полного обновления поискового индекса 1С, описанную в Шаге 1.
Соблюдение этого комплексного подхода позволит вам навсегда избавиться от зависаний полнотекстового поиска, снизить нагрузку на серверное оборудование и обеспечить пользователям комфортную и быструю работу со всеми корпоративными данными.