Как исправить ошибку Поле объекта не обнаружено (Свойства_ИспользоватьСвойства) при копировании справочника в 1С

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

При разработке в среде 1С:Предприятие, особенно в конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), таких как «1С:Розница», «1С:Управление торговлей» или «1С:ERP», программисты часто сталкиваются с необходимостью создания нового справочника на основе существующего. Казалось бы, самый простой путь — это копирование объекта в конфигураторе. Однако после переименования и попытки открыть форму нового справочника (например, созданного на базе «Физические лица»), система выдает критическую ошибку: «Поле объекта не обнаружено (Свойства_ИспользоватьСвойства)».

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

Почему возникает ошибка Свойства_ИспользоватьСвойства

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

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

Шаг 1. Регистрация в общем модуле УправлениеСвойствамиПереопределяемый

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

Проанализируем необходимые действия:

  1. Откроем конфигуратор и найдем общий модуль УправлениеСвойствамиПереопределяемый.
  2. Найдем в нем процедуру ПриОпределенииОбъектовСДополнительнымиРеквизитамиИСведениями.
  3. Добавим наш справочник в массив объектов.

Рассмотрим пример кода, который должен появиться в этой процедуре:


Процедура ПриОпределенииОбъектовСДополнительнымиРеквизитамиИСведениями(Объекты) Экспорт
    
    // Добавляем наш новый справочник в список разрешенных
    Объекты.Добавить(Метаданные.Справочники.Покупатели);
    
КонецПроцедуры

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

Шаг 2. Настройка Плана видов характеристик

Хотя мы зарегистрировали объект в коде, система должна понимать, какие именно наборы свойств к нему относятся. Для этого выполним следующие действия:

  1. Найдем в дереве метаданных План видов характеристик «ДополнительныеРеквизитыИСведения».
  2. Проверим свойство Тип значения характеристик. Убедимся, что в список типов включена ссылка на наш новый справочник СправочникСсылка.Покупатели.
  3. Также проверим справочник НаборыДополнительныхРеквизитовИСведений. В его владельцах (в типах реквизитов или в настройках ПВХ) также должна быть связь с нашим объектом.

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

Шаг 3. Включение в подписки на события

При копировании справочника «Физические лица» новый справочник не наследует подписки на события. Это критически важно, так как именно подписки отвечают за запись дополнительных сведений в базу данных при сохранении элемента.

Проанализируем ситуацию и выполним поиск:

  1. В конфигураторе перейдем в ветку Общие -> Подписки на события.
  2. Нам нужно найти все подписки, где в качестве источника указан Справочник.ФизическиеЛица. Обычно они называются ЗаписатьДополнительныеРеквизиты..., ПроверитьЗаполнение... и так далее.
  3. Откроем каждую такую подписку и в списке Источник установим галочку напротив нашего нового справочника Справочник.Покупатели.

Важно: Особое внимание уделите подпискам, связанным с контактной информацией, если вы планируете хранить адреса и телефоны в новом справочнике.

Шаг 4. Настройка модуля менеджера и форм

Посмотрим на модуль менеджера исходного справочника. Часто там содержатся процедуры-обработчики, которые БСП вызывает для настройки поведения свойств. Проверьте наличие процедуры ПриОпределенииНастроекСвойств. Если вы скопировали код, убедитесь, что в нем нет жестких ссылок на старое имя справочника.

Также разберем код формы. В процедуре ПриСозданииНаСервере обязательно должен присутствовать вызов инициализации:


// Пример стандартного вызова БСП в форме элемента
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, Объект);

Если вы удалили этот вызов или закомментировали его, пытаясь избавиться от ошибки, — верните его на место. После выполнения Шага 1 этот метод отработает корректно и создаст все необходимые реквизиты формы (включая тот самый Свойства_ИспользоватьСвойства).

Шаг 5. Работа с контактной информацией (если требуется)

Поскольку справочник «Физические лица» всегда содержит контактную информацию, ваш новый справочник «Покупатели», скорее всего, тоже в ней нуждается. Чтобы она заработала, нужно проделать действия, аналогичные регистрации свойств:

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

Резюме решения

Подведем итог нашего исследования. Ошибка Свойства_ИспользоватьСвойства — это лишь симптом того, что новый объект не интегрирован в экосистему БСП. Для исправления ситуации мы:

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

← На главную