Администрирование · 9 мин
Ошибка «bad adaptive filter value» в 1С: причины и способы исправления
Ошибка bad adaptive filter value в 1С на PostgreSQL: почему возникает при полнотекстовом поиске, как исправить индекс, настроить конфигурацию и не потерять данные.
Ошибка «bad adaptive filter value» возникает в связке 1С:Предприятие с СУБД PostgreSQL, как правило, в момент выполнения полнотекстового поиска по базе. Пользователь вводит запрос в строку поиска, а вместо результатов получает сообщение об ошибке СУБД, при этом остальная работа базы — проведение документов, отчёты — обычно продолжается нормально. Это указывает на проблему именно в механизме полнотекстового индекса, а не в данных учёта.
Технически ошибка связана с некорректным значением, которое PostgreSQL получает при обращении к индексу полнотекстового поиска. Чаще всего причины — повреждённый или рассинхронизированный полнотекстовый индекс 1С, устаревшая или несовместимая версия PostgreSQL, либо сбой, произошедший во время фонового обновления индекса (например, при аварийной остановке сервера).
Хорошая новость: ошибка не разрушает учётные данные. Полнотекстовый индекс — это служебная структура, которую можно полностью пересоздать без потери информации. Однако действия по перестроению индекса и обновлению СУБД нужно выполнять аккуратно и обязательно после резервного копирования.
Что означает ошибка и когда она появляется
Сообщение «bad adaptive filter value» — это ошибка уровня СУБД, которую 1С транслирует пользователю. Она появляется при обращении к полнотекстовому индексу: при поиске по документам, справочникам, при работе механизмов, использующих полнотекстовый поиск (например, поиск по истории переписки или по данным формы). В файловом варианте базы эта ошибка практически не встречается — она характерна именно для клиент-серверного режима с PostgreSQL.
Типичные сценарии появления: поиск перестаёт работать внезапно после сбоя питания или перезапуска сервера СУБД; ошибка возникает только на определённых поисковых запросах; поиск не работает ни у одного пользователя, хотя раньше работал стабильно. Реже ошибка проявляется после обновления платформы 1С или самой СУБД.
Проверьте, работают ли документы и отчёты — если да, данные целы
Смотрите настройки индекса и журнал PostgreSQL
Планируйте полное перестроение индекса
Сверьте версии платформы 1С и PostgreSQL
Первичная диагностика перед исправлением
Прежде чем что-либо перестраивать, зафиксируйте условия воспроизведения ошибки. Уточните: возникает ли она на любом поисковом запросе или только на конкретных словах; появляется ли у всех пользователей; работает ли поиск сразу после перезапуска службы сервера 1С и PostgreSQL. Эта информация поможет отличить повреждение индекса от проблемы с конкретными данными.
Проверьте журнал регистрации 1С и лог-файлы PostgreSQL за момент возникновения ошибки — там обычно есть расширенное описание с указанием таблицы или контекста запроса. Также убедитесь, что на диске сервера СУБД достаточно свободного места: переполнение диска во время индексации — частая первопричина повреждения индекса.
Способ 1. Перестроение полнотекстового индекса
Основной и самый эффективный способ — очистить и заново построить полнотекстовый индекс средствами самой 1С. Это безопасная операция для учётных данных: пересоздаётся только служебный поисковый индекс.
Для этого запустите конфигуратор под учётной записью с полными правами, откройте меню «Администрирование» → «Полнотекстовый поиск». Сначала выполните «Очистить индекс», дождитесь завершения операции, затем нажмите «Обновить индекс» и дождитесь полного построения. На больших базах процесс идёт долго — не прерывайте его и не перезапускайте сервер во время индексации.
- 1Сделайте резервную копию базы (выгрузка .dt или бэкап PostgreSQL)
- 2Откройте конфигуратор: Администрирование → Полнотекстовый поиск
- 3Выполните «Очистить индекс» и дождитесь завершения
- 4Выполните «Обновить индекс» и дождитесь полного построения
- 5Проверьте поиск в пользовательском режиме на нескольких запросах
Если в базе настроено регламентное задание автоматического обновления индекса, после ручного перестроения проверьте, что задание выполняется без ошибок. Сбойное регламентное задание может снова привести индекс в неконсистентное состояние.
Способ 2. Проверка версий платформы и PostgreSQL
Если перестроение индекса не помогло или ошибка вернулась через некоторое время, проверьте совместимость версий. Ошибки подобного рода фиксировались на отдельных сборках PostgreSQL, поэтому важно использовать сборку, рекомендованную для работы с 1С, и актуальную версию платформы 1С:Предприятие.
Уточните текущую версию PostgreSQL на сервере и сравните её с системными требованиями вашей версии платформы 1С. Если версия СУБД устарела, запланируйте обновление: сделайте бэкап, установите новую версию PostgreSQL, выполните миграцию кластера и после этого снова полностью перестройте полнотекстовый индекс. Обновление СУБД — операция с риском, её стоит выполнять на тестовой копии, если у вас нет опыта подобных работ.
Способ 3. Тестирование и исправление информационной базы
Когда индекс перестроен, версии совместимы, а ошибка сохраняется, стоит проверить целостность самой базы. В конфигураторе доступен механизм «Администрирование» → «Тестирование и исправление»: запустите проверку логической и ссылочной целостности в режиме «Только проверка», чтобы сначала оценить масштаб проблем без изменения данных.
Дополнительно для базы на PostgreSQL имеет смысл выполнить обслуживание средствами СУБД: проверку целостности индексов и, при необходимости, переиндексацию. Эти операции выполняются администратором СУБД и требуют монопольного доступа или остановки работы пользователей.
Если ошибка возникает только на запросах с определёнными символами или очень длинных строках, проверьте, не вводят ли пользователи спецсимволы. Иногда помогает временное ограничение длины поискового запроса до выяснения причины.
Когда самостоятельного исправления недостаточно
Есть ситуации, в которых продолжать эксперименты на рабочей базе опасно: ошибка сопровождается другими сбоями СУБД, в логах PostgreSQL есть сообщения о повреждении страниц данных, база падала несколько раз подряд. В таких случаях правильная последовательность — остановить работу, снять бэкап на уровне файловой системы и привлечь специалиста по администрированию 1С и PostgreSQL.
Не пытайтесь вручную удалять или править таблицы индексов в базе PostgreSQL без понимания их структуры: это может привести к невозможности запуска базы. Все манипуляции с полнотекстовым поиском безопаснее выполнять штатными средствами 1С.
Профилактика повторного появления ошибки
Чтобы ошибка не вернулась, настройте регулярное регламентное обновление полнотекстового индекса в нерабочие часы и контролируйте успешность его выполнения через журнал регистрации. Следите за свободным местом на дисках сервера СУБД и настройте оповещения о его нехватке.
Также поддерживайте актуальность платформы 1С и сборки PostgreSQL, используйте источник бесперебойного питания на сервере и регламентируйте корректное завершение работы служб при обслуживании. Регулярные бэкапы — обязательное условие: они превращают любую подобную ошибку из аварии в плановую задачу восстановления.
Что важно запомнить
Ошибка «bad adaptive filter value» — это проблема полнотекстового индекса в связке 1С и PostgreSQL, а не учётных данных. Основное решение — очистка и полное перестроение индекса в конфигураторе после создания резервной копии; при повторении — проверка версий ПО и целостности базы.
Часто задаваемые вопросы
Приведёт ли перестроение полнотекстового индекса к потере данных?
Нет. Индекс — служебная структура для ускорения поиска. Документы, справочники и проводки при его очистке и перестроении не затрагиваются. Резервная копия нужна как стандартная мера предосторожности перед любыми административными операциями.
Сколько времени занимает перестроение индекса?
Зависит от размера базы и производительности сервера: на небольшой базе — минуты, на крупной с миллионами документов — несколько часов. Во время индексации сервер испытывает повышенную нагрузку, поэтому работы лучше планировать на вечер или выходные.
Можно ли временно работать без полнотекстового поиска?
Да. Полнотекстовый поиск можно отключить в настройках, и база продолжит работать: документы, отчёты и обмены функционируют без него. Это разумный временный шаг, пока вы планируете окно обслуживания для перестроения индекса.
Ошибка появляется в файловой базе 1С — это то же самое?
В файловом режиме такая формулировка практически не встречается, поскольку она относится к ответу PostgreSQL. Если подобная ошибка есть в файловой базе, в первую очередь выполните тестирование и исправление, а также проверьте целостность файла базы и диска.
Поможет ли простой перезапуск сервера 1С?
Перезапуск может временно устранить симптом, если проблема была в зависшем фоновом задании индексации, но повреждённый индекс он не исправит. Если после перезапуска ошибка возвращается, требуется полное перестроение индекса.
Нужно ли обновлять платформу 1С для исправления ошибки?
Обновление платформы оправдано, если перестроение индекса не помогло и версия платформы заметно устарела относительно используемой сборки PostgreSQL. Сначала проверьте совместимость версий по системным требованиям и протестируйте обновление на копии базы.