Почему в 1С после обновления платформы перестал работать поиск и как это исправить

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

Многие системные администраторы и программисты 1С сталкиваются с неприятной ситуацией: после планового обновления платформы до версий 8.3.12, 8.3.13 или выше пользователи начинают жаловаться на некорректную работу поиска. Типичный симптом: поиск по одной или двум буквам выдает результаты, но как только пользователь вводит третий символ, список становится пустым, и система сообщает, что данных не обнаружено. Рассмотрим подробно, почему это происходит, и проанализируем пошаговые инструкции по восстановлению работоспособности системы.

Причина 1: Изменение логики поиска "на лету" в новых версиях платформы

Начиная с версии 8.3.12, компания «1С» существенно переработала внутренние механизмы поиска в динамических списках. Проанализируем ситуацию: раньше поиск работал как простой SQL-фильтр (подобно оператору LIKE). Теперь же система пытается использовать более сложные алгоритмы, напоминающие полнотекстовый поиск, даже если он явно не включен. Выясним причину "порога трех символов": дело в том, что при вводе первых двух знаков система фильтрует данные по началу строки, а при вводе третьего — переключается на поиск по подстроке с использованием внутренних индексов. Если эти индексы повреждены или не актуальны, поиск «ломается».

Решение 1: Управление полнотекстовым поиском данных (ППД)

Первым делом проверим состояние полнотекстового поиска. Часто проблема кроется именно в рассинхронизации индекса после обновления конфигурации или платформы. Выполним следующие действия:

  1. Перейдем в раздел Все функции (в новых версиях — Функции для технического специалиста).
  2. Развернем узел Стандартные и выберем пункт Управление полнотекстовым поиском.
  3. В открывшемся окне посмотрим на статус индекса. Если использование поиска включено, попробуем его обновить.
  4. Если простое обновление не помогает, выполним полную процедуру очистки: нажмем Очистить индекс, а затем Обновить индекс.

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

Решение 2: Тестирование и исправление информационной базы (ТИИ)

Как показывает практика и сообщения пользователей, стандартная процедура Тестирования и исправления часто оказывается самым эффективным средством. Рассмотрим подробнее, какие именно опции нам помогут:

Запустим базу в режиме Конфигуратор, перейдем в меню Администрирование — Тестирование и исправление. Установим следующие флаги:

После завершения процедуры ТИИ во многих случаях поиск по трем и более буквам начинает работать корректно, так как восстанавливаются связи в индексах, на которые опирается новый механизм платформы.

Решение 3: Ошибка составных типов (Bug 30163959)

Проанализируем техническую ошибку, официально зарегистрированную разработчиками 1С. В версиях 8.3.12 и 8.3.13 существовал баг: если колонка в списке (например, "Контрагент") имеет составной тип данных или тип ОпределяемыйТип, поиск по подстроке мог не работать вовсе. Это происходило из-за некорректного построения внутреннего запроса платформой при обращении к нескольким таблицам сразу.

Выясним способы устранения этой проблемы:

Решение 4: Очистка локального кэша

Иногда корень зла кроется не в самой базе, а в локальных файлах на компьютере пользователя. Рассмотрим ситуацию: при обновлении платформы кэш метаданных и настроек динамических списков может содержать устаревшие структуры, которые конфликтуют с новыми алгоритмами поиска.

Разберем шаги по очистке кэша:

  1. Удалим информационную базу из списка в окне запуска 1С.
  2. Добавим её заново (это создаст новый идентификатор и, соответственно, новую папку кэша).
  3. Если это не помогло, вручную удалим папки по адресу: %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8.

Решение 5: Проблемы на старых операционных системах

Обратим внимание на системные требования. Если ваша база работает на Windows Server 2003 или Windows XP (как упоминалось в исходной теме), новые версии платформы могут работать нестабильно. Это связано с использованием библиотек Visual C++, которые в старых ОС могут отрабатывать некорректно. В таких случаях фоновые задания, отвечающие за индексацию, "тихо" аварийно завершаются.

Посмотрим на пример того, как можно проверить работу фоновых заданий программно:


Менеджер = ФоновыеЗадания.ПолучитьФоновыеЗадания();
Для Каждого Задание Из Менеджер Цикл
    Если Задание.ИмяМетода = "ПолнотекстовыйПоискОбновлениеИндекса" Тогда
        Сообщить("Задание: " + Задание.Состояние);
    КонецЕсли;
КонецЦикла;

Если вы видите состояние ЗавершеноАварийно, это явный сигнал к тому, что поиск в списках не будет актуальным, пока не будут устранены системные проблемы или не будет произведен апгрейд ОС.

Практический совет: Использование "Расширенного поиска"

Если проблему не удается решить оперативно, а бухгалтерам нужно работать "здесь и сейчас", обучим их использовать Расширенный поиск. Вместо набора текста в шапке списка, следует нажать комбинацию клавиш Ctrl + F. Откроется классическое окно поиска. В нем можно принудительно указать поиск по конкретной колонке и метод "По началу строки" или "По части строки". Этот механизм работает более прямолинейно и часто спасает в ситуациях, когда "интеллектуальный" поиск платформы дает сбой.

Подводя итог, скажем: проблема поиска в 1С 8.3.12+ — это комплексная ошибка, связанная с переходом на новые алгоритмы индексации. Комплексное применение ТИИ, очистки индекса ППД и последующее обновление платформы до стабильных релизов (ветка 8.3.14 и выше) гарантированно решает этот вопрос.

← На главную