Как исправить ошибку «Поле объекта не обнаружено (DisableCompareType)» при подборе товаров в 1С:УТ 11.2?

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

При работе в программе «1С:Управление торговлей», редакция 11.2, пользователи могут столкнуться с неожиданной технической ошибкой при попытке найти товар в форме подбора. Проблема проявляется в момент нажатия кнопки «Найти» или при вводе текста в строку активного поиска. Система выдает сообщение следующего вида: {mngbase/UniversalListFindExt.lf(22)}: Поле объекта не обнаружено (DisableCompareType). Эта ошибка является критической, так как полностью блокирует возможность оперативного подбора товаров в документах реализации, заказов и других ключевых операциях.

В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутренние механизмы платформы «1С:Предприятие» и выработаем пошаговый алгоритм решения проблемы, основываясь на практическом опыте специалистов.

Выясним причину возникновения ошибки

Для начала проанализируем природу ошибки. Путь к файлу UniversalListFindExt.lf указывает на то, что проблема локализована не в программном коде самой конфигурации «Управление торговлей», а во внутреннем ресурсе платформы. Расширение .lf (Layout Form) относится к системным библиотекам управляемого приложения, которые отвечают за стандартные механизмы поиска в динамических списках.

Суть проблемы заключается в том, что при инициализации поиска платформа обращается к коллекции доступных полей (AvailableFields). Для каждого поля она пытается проверить свойство DisableCompareType (отключение выбора типа сравнения). Если в метаданных динамического списка или в описании реквизитов справочника Номенклатура присутствует поле, которое платформа не может корректно интерпретировать (например, из-за повреждения кэша или несовместимости версий), возникает исключение «Поле объекта не обнаружено».

Рассмотрим основные факторы, провоцирующие данное поведение:

Решение 1: Очистка кэша конфигурации

Проанализируем самый простой и быстрый способ, который помогает в большинстве случаев — принудительную очистку временных файлов (кэша). Рассмотрим, как сделать это правильно с помощью параметров запуска.

Выполним следующие шаги:

  1. Закроем все запущенные сеансы работы с информационной базой.
  2. В окне запуска «1С:Предприятия» выделим нужную базу и нажмем кнопку «Изменить».
  3. Перейдем на последнюю закладку настроек, где находится поле «Дополнительные параметры запуска».
  4. Введем в это поле следующую команду: /ClearCache
  5. Нажмем «Готово» и запустим базу.

Параметр /ClearCache заставляет платформу игнорировать существующий кэш клиент-серверных вызовов для данного сеанса и построить его заново. Это устраняет проблемы, связанные с «зависшими» описаниями полей DisableCompareType.

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

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

Важно: Перед выполнением этих действий обязательно создайте резервную копию базы данных!

Разберем этапы ТиИ:

  1. Запустим информационную базу в режиме «Конфигуратор».
  2. Перейдем в меню «Администрирование» — «Тестирование и исправление...».
  3. Установим флажки на следующих пунктах:
    • Реиндексация таблиц информационной базы.
    • Проверка логической целостности информационной базы.
    • Проверка ссылочной целостности информационной базы.
    • Пересчет итогов (опционально, но рекомендуется).
  4. В переключателях действий при наличии ошибок выберем «Очищать объекты» или «Создавать объекты» (в зависимости от вашей политики обслуживания).
  5. Нажмем «Выполнить» и дождемся завершения процесса.

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

Решение 3: Сброс настроек формы и пользователя

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

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

  1. Зайдем в раздел «Администрирование».
  2. Выберем пункт «Настройки пользователей и прав».
  3. Перейдем по гиперссылке «Персональные настройки» — «Очистка настроек».
  4. В открывшемся списке найдем проблемного пользователя.
  5. Развернем список его настроек и найдем те, что относятся к форме подбора товаров (обычно они называются ФормаПодбораТоваров или Справочник.Номенклатура.ФормаВыбора).
  6. Нажмем кнопку «Очистить».

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

Решение 4: Обслуживание полнотекстового поиска

Проанализируем влияние полнотекстового поиска на работу динамических списков. Механизм подбора в УТ 11.2 активно использует индексацию. Если индекс поврежден, обращение к свойству DisableCompareType может происходить по некорректному адресу памяти.

Выполним глубокую очистку индекса:

  1. В режиме «Предприятие» перейдем в «Администрирование» — «Поддержка и обслуживание» — «Управление полнотекстовым поиском».
  2. Нажмем кнопку «Очистить индекс».
  3. После этого нажмем «Обновить индекс».

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

Решение 5: Проверка расширений конфигурации

Если в вашей базе используются расширения, они могут вносить изменения в структуру справочника Номенклатура или в саму форму подбора. Рассмотрим, как это проверить.

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

Резюме

Мы проанализировали сложную техническую ошибку DisableCompareType. Подведем итоги: чаще всего проблема решается очисткой кэша или тестированием базы. Однако, если вы используете очень старую версию УТ 11.2 на платформе 8.3.18 и выше, наиболее надежным решением будет либо обновление конфигурации до актуальной версии (где механизмы поиска переписаны), либо небольшой откат версии платформы до 8.3.12/8.3.14, которые более стабильно работают со старым кодом управляемых форм.

← На главную