При эксплуатации информационных баз 1С (особенно в файловом варианте или при работе через веб-сервер) администраторы часто сталкиваются с аномальным поведением каталога 1Cv8FTxt. В норме эта папка содержит файлы полнотекстового поиска, но в случае сбоя количество файлов с расширением .dat может достигать десятков тысяч. Рассмотрим природу этой проблемы, проанализируем причины возникновения и разберем по шагам методы ее решения.
Для начала разберем архитектуру работы системы. Каталог 1Cv8FTxt — это специализированное хранилище данных службы полнотекстового поиска (ПП). В этой папке 1С хранит поисковые индексы, которые позволяют пользователям мгновенно находить нужные данные в документах, справочниках и регистрах через строку глобального поиска.
Рассмотрим основные типы файлов, которые мы можем там встретить:
dataWeights.dat — отвечает за «веса» слов. Эти данные используются для ранжирования результатов: система понимает, какой документ более релевантен запросу пользователя.recordsWithDocIds.dat — связующее звено между внутренними уникальными идентификаторами 1С и записями в поисковом индексе.sepCorrespondenceDictIndexing.dat — словари соответствий, которые помогают поиску учитывать морфологию языка и правильно обрабатывать разделители.В штатном режиме работы файлы с цифровыми префиксами (например, 35992373_dataWeights.dat) являются временными сегментами. Они создаются, когда в базу вносятся новые данные, и система готовит их к включению в общий индекс.
Проанализируем ситуацию: в норме механизм ПП работает по принципу «инкубации». Изменения сначала записываются в «дополнительный индекс» (те самые мелкие файлы), а затем регламентное задание Слияние индекса полнотекстового поиска объединяет их с «основным индексом». Если вы видите 60 000 – 80 000 таких файлов, значит, механизм финализации сломан.
Разберем основные факторы, блокирующие слияние:
Если ТиИ (Тестирование и исправление) не помогает, наиболее эффективным методом будет радикальная очистка и повторное построение структуры данных. Рассмотрим этот процесс по шагам:
Шаг 1: Подготовка. Необходимо завершить все активные сеансы пользователей и остановить службу сервера 1С (или остановить веб-сервер, если база файловая и работает через него) — для этого подойдёт обработка принудительного завершения сеансов пользователей. Это критически важно, так как при активных сеансах удаление файлов вызовет ошибку Ошибка доступа к файлу индекса.
Шаг 2: Физическое удаление. Перейдем в каталог информационной базы и полностью удалим папку 1Cv8FTxt. Не бойтесь этого действия — это не приведет к потере данных учета, пострадает только поисковый индекс, который мы сейчас восстановим.
Шаг 3: Настройка в программе. Запустим 1С в режиме «Предприятие» под пользователем с правами администратора. Перейдем в раздел Администрирование — Общие настройки — Полнотекстовый поиск.
Шаг 4: Обновление индекса. Выполним следующие действия:
В процессе обновления вы заметите, что в новой папке 1Cv8FTxt снова начнут появляться файлы с цифровыми префиксами. Это нормально. После завершения процесса они должны исчезнуть, оставив только основные файлы индекса.
Если после ручной очистки файлы со временем начинают копиться снова, проанализируем работу фоновых задач. Посмотрим на список регламентных заданий через консоль или в разделе администрирования — для этого подойдёт консоль управления сеансами и регламентными заданиями.
Нас интересуют два задания:
Обновление индекса полнотекстового поиска — оно создает те самые мелкие файлы.Слияние индекса полнотекстового поиска — оно их «схлопывает».Рекомендации по настройке: Часто в типовых конфигурациях (БП 3.0, УНФ) задание слияния настроено на запуск каждую минуту. При большом объеме данных это может вызвать конфликты. Попробуем изменить расписание слияния на интервал раз в 30-60 минут. Это даст системе время корректно завершить предыдущую операцию записи и освободить файлы.
Если вам необходимо управлять процессом программно (например, в рамках своей доработки), мы можем использовать объект ПолнотекстовыйПоиск. Рассмотрим пример кода для запуска обновления индекса:
Процедура ОбновитьИндексПоиска()
Если ПолнотекстовыйПоиск.ПолучитьРежимУстановкиОбновления() = РежимУстановкиОбновленияПолнотекстовогоПоиска.НеОбновлять Тогда
Возврат;
КонецЕсли;
// Запускаем обновление индекса (инкрементальное)
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Истина);
// Запускаем слияние индексов
ПолнотекстовыйПоиск.ОбновитьИндекс(Истина, Ложь);
КонецПроцедуры
В данном примере первый вызов метода ОбновитьИндекс с параметрами (Ложь, Истина) инициирует добавление новых данных, а второй вызов с параметрами (Истина, Ложь) запускает процесс слияния сегментов.
Чтобы проблема не повторилась, выполним следующие настройки инфраструктуры:
1Cv8FTxt в рабочем каталоге кластера (для клиент-серверной) в исключения сканирования.IUSR или IIS_IUSRS имеет права «Полный доступ» на папку базы.Полнотекстовый поиск данных. Это не только решит проблему с файлами, но и существенно ускорит работу системы, так как освободятся ресурсы на запись данных.Подведем итог: появление тысяч файлов .dat — это симптом «зависания» процесса слияния индексов. Регулярный мониторинг состояния регламентных заданий и правильная настройка прав доступа позволят вам избежать деградации производительности дисковой подсистемы — для этого есть система мониторинга регламентных заданий.