При работе в программе «1С:Управление торговлей», редакция 11.2, пользователи могут столкнуться с неожиданной технической ошибкой при попытке найти товар в форме подбора. Проблема проявляется в момент нажатия кнопки «Найти» или при вводе текста в строку активного поиска. Система выдает сообщение следующего вида: {mngbase/UniversalListFindExt.lf(22)}: Поле объекта не обнаружено (DisableCompareType). Эта ошибка является критической, так как полностью блокирует возможность оперативного подбора товаров в документах реализации, заказов и других ключевых операциях.
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутренние механизмы платформы «1С:Предприятие» и выработаем пошаговый алгоритм решения проблемы, основываясь на практическом опыте специалистов.
Для начала проанализируем природу ошибки. Путь к файлу UniversalListFindExt.lf указывает на то, что проблема локализована не в программном коде самой конфигурации «Управление торговлей», а во внутреннем ресурсе платформы. Расширение .lf (Layout Form) относится к системным библиотекам управляемого приложения, которые отвечают за стандартные механизмы поиска в динамических списках.
Суть проблемы заключается в том, что при инициализации поиска платформа обращается к коллекции доступных полей (AvailableFields). Для каждого поля она пытается проверить свойство DisableCompareType (отключение выбора типа сравнения). Если в метаданных динамического списка или в описании реквизитов справочника Номенклатура присутствует поле, которое платформа не может корректно интерпретировать (например, из-за повреждения кэша или несовместимости версий), возникает исключение «Поле объекта не обнаружено».
Рассмотрим основные факторы, провоцирующие данное поведение:
Проанализируем самый простой и быстрый способ, который помогает в большинстве случаев — принудительную очистку временных файлов (кэша). Рассмотрим, как сделать это правильно с помощью параметров запуска.
Выполним следующие шаги:
/ClearCache
Параметр /ClearCache заставляет платформу игнорировать существующий кэш клиент-серверных вызовов для данного сеанса и построить его заново. Это устраняет проблемы, связанные с «зависшими» описаниями полей DisableCompareType.
Если очистка кэша не принесла результата, нам необходимо проверить целостность самой базы данных. Ошибка может быть вызвана нарушением ссылочной целостности или несоответствием таблиц метаданных. Рассмотрим процедуру проведения Тестирования и Исправления.
Важно: Перед выполнением этих действий обязательно создайте резервную копию базы данных!
Разберем этапы ТиИ:
Процедура ТиИ перестраивает индексы и проверяет, чтобы все поля, к которым обращается динамический список формы подбора, существовали физически в таблицах базы данных.
Рассмотрим ситуацию, когда проблема кроется в индивидуальных настройках конкретного сотрудника. Платформа сохраняет состояние форм (ширину колонок, активные поля поиска, отборы) в системных таблицах. Посмотрим, как их очистить.
Пошаговый алгоритм для управляемого интерфейса:
ФормаПодбораТоваров или Справочник.Номенклатура.ФормаВыбора).Также можно проверить, воспроизводится ли ошибка под другим пользователем. Если под новой учетной записью все работает корректно — проблема однозначно в сохраненных настройках.
Проанализируем влияние полнотекстового поиска на работу динамических списков. Механизм подбора в УТ 11.2 активно использует индексацию. Если индекс поврежден, обращение к свойству DisableCompareType может происходить по некорректному адресу памяти.
Выполним глубокую очистку индекса:
В некоторых случаях (для файловых баз) полезно физически удалить папку 1Cv8FTxt из каталога информационной базы (предварительно завершив все сеансы). Платформа пересоздаст ее при следующем запуске и включении поиска.
Если в вашей базе используются расширения, они могут вносить изменения в структуру справочника Номенклатура или в саму форму подбора. Рассмотрим, как это проверить.
Если вы добавили в расширение реквизит, но не обновили динамический список в форме подбора, платформа может «потерять» описание типов этого поля. Попробуйте временно отключить все расширения в меню «Конфигурация» — «Расширения конфигурации» и проверить работу поиска. Если ошибка исчезла, необходимо проанализировать код расширения и убедиться, что все заимствованные поля имеют актуальные свойства.
Мы проанализировали сложную техническую ошибку DisableCompareType. Подведем итоги: чаще всего проблема решается очисткой кэша или тестированием базы. Однако, если вы используете очень старую версию УТ 11.2 на платформе 8.3.18 и выше, наиболее надежным решением будет либо обновление конфигурации до актуальной версии (где механизмы поиска переписаны), либо небольшой откат версии платформы до 8.3.12/8.3.14, которые более стабильно работают со старым кодом управляемых форм.