Почему в папке 1Cv8FTxt создаются десятки тысяч файлов и как это исправить

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При эксплуатации информационных баз 1С (особенно в файловом варианте или при работе через веб-сервер) администраторы часто сталкиваются с аномальным поведением каталога 1Cv8FTxt. В норме эта папка содержит файлы полнотекстового поиска, но в случае сбоя количество файлов с расширением .dat может достигать десятков тысяч. Рассмотрим природу этой проблемы, проанализируем причины возникновения и разберем по шагам методы ее решения.

Что такое папка 1Cv8FTxt и для чего она нужна

Для начала разберем архитектуру работы системы. Каталог 1Cv8FTxt — это специализированное хранилище данных службы полнотекстового поиска (ПП). В этой папке 1С хранит поисковые индексы, которые позволяют пользователям мгновенно находить нужные данные в документах, справочниках и регистрах через строку глобального поиска.

Рассмотрим основные типы файлов, которые мы можем там встретить:

В штатном режиме работы файлы с цифровыми префиксами (например, 35992373_dataWeights.dat) являются временными сегментами. Они создаются, когда в базу вносятся новые данные, и система готовит их к включению в общий индекс.

Выясним причину: почему файлов становится слишком много

Проанализируем ситуацию: в норме механизм ПП работает по принципу «инкубации». Изменения сначала записываются в «дополнительный индекс» (те самые мелкие файлы), а затем регламентное задание Слияние индекса полнотекстового поиска объединяет их с «основным индексом». Если вы видите 60 000 – 80 000 таких файлов, значит, механизм финализации сломан.

Разберем основные факторы, блокирующие слияние:

  1. Блокировки со стороны антивируса. Программное обеспечение безопасности может сканировать временный файл в тот момент, когда 1С пытается его прочитать для слияния или удалить. Процесс прерывается, а файл остается «висеть» в системе.
  2. Проблемы прав доступа. Особенно актуально для веб-серверов (IIS или Apache). Учетная запись, под которой запущен пул приложений, может иметь права на создание файлов, но не иметь прав на их удаление или модификацию.
  3. Ошибки платформы. В некоторых релизах платформы (например, ветки 8.3.18–8.3.20) наблюдались утечки дескрипторов файлов. Система открывает файл, но не закрывает его, из-за чего последующее удаление становится невозможным.
  4. Битый индекс. Если структура основного индекса повреждена, фоновое задание слияния может аварийно завершаться при каждой попытке обработки новых данных — решить проблему поможет система мониторинга и отправки алертов в Telegram.

Способ 1: Полное пересоздание индекса (Рекомендуемый)

Если ТиИ (Тестирование и исправление) не помогает, наиболее эффективным методом будет радикальная очистка и повторное построение структуры данных. Рассмотрим этот процесс по шагам:

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

Шаг 2: Физическое удаление. Перейдем в каталог информационной базы и полностью удалим папку 1Cv8FTxt. Не бойтесь этого действия — это не приведет к потере данных учета, пострадает только поисковый индекс, который мы сейчас восстановим.

Шаг 3: Настройка в программе. Запустим 1С в режиме «Предприятие» под пользователем с правами администратора. Перейдем в раздел Администрирование — Общие настройки — Полнотекстовый поиск.

Шаг 4: Обновление индекса. Выполним следующие действия:

  1. Снимем флаг Полнотекстовый поиск данных.
  2. Нажмем кнопку Очистить индекс (если она доступна).
  3. Снова установим флаг Полнотекстовый поиск данных.
  4. Нажмем Обновить индекс.

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

Способ 2: Настройка регламентных заданий

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

Нас интересуют два задания:

Рекомендации по настройке: Часто в типовых конфигурациях (БП 3.0, УНФ) задание слияния настроено на запуск каждую минуту. При большом объеме данных это может вызвать конфликты. Попробуем изменить расписание слияния на интервал раз в 30-60 минут. Это даст системе время корректно завершить предыдущую операцию записи и освободить файлы.

Программное управление индексом

Если вам необходимо управлять процессом программно (например, в рамках своей доработки), мы можем использовать объект ПолнотекстовыйПоиск. Рассмотрим пример кода для запуска обновления индекса:


Процедура ОбновитьИндексПоиска()
    Если ПолнотекстовыйПоиск.ПолучитьРежимУстановкиОбновления() = РежимУстановкиОбновленияПолнотекстовогоПоиска.НеОбновлять Тогда
        Возврат;
    КонецЕсли;

    // Запускаем обновление индекса (инкрементальное)
    ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Истина);
    
    // Запускаем слияние индексов
    ПолнотекстовыйПоиск.ОбновитьИндекс(Истина, Ложь);
КонецПроцедуры

В данном примере первый вызов метода ОбновитьИндекс с параметрами (Ложь, Истина) инициирует добавление новых данных, а второй вызов с параметрами (Истина, Ложь) запускает процесс слияния сегментов.

Дополнительные меры предосторожности

Чтобы проблема не повторилась, выполним следующие настройки инфраструктуры:

Подведем итог: появление тысяч файлов .dat — это симптом «зависания» процесса слияния индексов. Регулярный мониторинг состояния регламентных заданий и правильная настройка прав доступа позволят вам избежать деградации производительности дисковой подсистемы — для этого есть система мониторинга регламентных заданий.

← На главную