При переносе номенклатуры из устаревших конфигураций, таких как УПП, в современные системы на базе БСП (Библиотека стандартных подсистем), например, 1С:КА 2.4, часто возникает проблема: дополнительные реквизиты не отображаются в карточке номенклатуры или список доступных свойств для добавления в набор оказывается пустым. Давайте разберем, почему это происходит и как это исправить.
Первым делом важно осознать, что в конфигурациях на БСП дополнительные реквизиты и дополнительные сведения — это два разных механизма, работающих на основе одного ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Главная ошибка заключается в попытке смешать эти сущности. Если свойство было создано как «Дополнительное сведение», оно не будет доступно для выбора в качестве «Дополнительного реквизита».
Связь между конкретным свойством (элементом ПВХ) и набором номенклатуры не является «жестким» реквизитом самого ПВХ. Эта связь хранится в РегистрСведений.НаборыДополнительныхРеквизитовИСведений. Именно этот регистр определяет, какие именно свойства будут отображаться в карточке определенного вида номенклатуры.
Если при нажатии кнопки «Добавить из другого набора» вы видите пустой список, выполните следующие шаги для анализа:
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения и убедитесь, что флаг ЭтоДополнительноеСведение установлен корректно. Если свойство должно быть реквизитом, этот признак должен быть равен Ложь.НаборСвойств у элемента ПВХ. Если он пуст, система не знает, к какому «контейнеру» привязать это свойство.РегистрСведений.НаборыДополнительныхРеквизитовИСведений. Проверьте, существуют ли записи, связывающие ваш вид номенклатуры с нужным свойством.Существует несколько способов решения задачи, от штатных до принудительных.
Если данные перенесены корректно, убедитесь, что свойство не помечено как «Сведение». Если это реквизит, зайдите в нужный вид номенклатуры, нажмите «Добавить из другого набора». Если список пуст, значит свойство не зарегистрировано в регистре для данного набора. В таком случае рекомендуется создать новое свойство напрямую в нужном наборе, чтобы система автоматически сформировала записи в РегистрСведений.НаборыДополнительныхРеквизитовИСведений.
Если свойств много и переносить их вручную долго, мы можем воспользоваться программным способом. Для этого необходимо создать запись в регистре сведений. Рассмотрим пример того, как это выглядит логически:
// Пример логики добавления свойства в набор через регистр сведений
НаборЗаписи = РегистрыСведений.НаборыДополнительныхРеквизитовИСведений.СоздатьМенеджерЗаписи();
НаборЗаписи.Свойство = СсылкаНаВашеСвойство;
НаборЗаписи.Набор = СсылкаНаВашВидНоменклатуры;
НаборЗаписи.Записать();
Этот метод позволяет принудительно «подружить» свойство с видом номенклатуры, минуя ограничения интерфейса выбора.
При миграции данных из старых систем важно помнить об основных правилах:
ЭтоДополнительноеСведение в конфигураторе или через отладчик перед началом работы с массовым изменением данных.Справочник.Номенклатура.Общие. Это избавит вас от необходимости добавлять его в каждый вид по отдельности.Если после выполнения этих действий проблема сохраняется, скорее всего, нарушена структура метаданных самого ПланВидовХарактеристик, и в этом случае может потребоваться помощь разработчика для сверки объектов с типовой конфигурацией 1С:КА 2.4.