В процессе обновления конфигураций или внесения изменений в структуру метаданных пользователи часто сталкиваются с ситуацией, когда дополнительные реквизиты в справочниках или документах внезапно становятся неактивными, перечеркиваются или пропадают. Разберем детально, почему это происходит и как вернуть систему в рабочее состояние, не прибегая к радикальным мерам.
Механизм дополнительных реквизитов в современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) опирается на строгую иерархию объектов:
Когда вы случайно удаляете или пересоздаете предопределенный элемент в справочнике НаборыДополнительныхРеквизитовИСведений, связь между существующими данными в объектах и логической структурой свойств разрывается. Система видит запись в табличной части ДополнительныеРеквизиты, но не может сопоставить её с актуальным набором свойств, из-за чего интерфейс помечает их как неактивные или зачеркнутые.
Если вы столкнулись с подобной «потерей» реквизитов, выполним следующие шаги для диагностики и восстановления связей.
Первым делом нам необходимо убедиться, что проблема именно в нарушении ссылок. Сравните проблемный (перечеркнутый) реквизит с корректно работающим. Для диагностики рекомендуем использовать сторонние инструменты, например, 1cAdmin, которые позволяют просматривать внутренние ссылки объектов, не отображаемые в стандартных формах.
Чтобы реквизиты заработали, необходимо обеспечить наличие корректных записей в ключевых таблицах системы. Разберем последовательность проверки для конкретного элемента (например, Номенклатура):
План видов характеристик, который используется как тип значения для доп. реквизитов.НаборСвойств у этого ПВХ — он должен указывать на элемент справочника НаборыДополнительныхРеквизитовИСведений.Номенклатура).ДополнительныеРеквизиты набора свойств должна присутствовать строка с вашим ПВХ.Часто данные остаются в базе, но теряют «владельца». Нам нужно убедиться, что значения свойств привязаны к корректному владельцу:
// Пример проверки владельца свойства
Выборка = Справочники.ЗначенияСвойствОбъектов.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Владелец <> НашПВХ Тогда
// Необходимо исправить владельца, если он был сброшен
КонецЕсли;
КонецЦикла;
Финальный этап — проверка табличной части самого справочника или документа. В каждом элементе (например, в Номенклатуре) должна быть запись, где:
Свойство — это ваш ПВХ.Значение — это соответствующий элемент справочника ЗначенияСвойствОбъектов.Если ссылки были утеряны, их можно восстановить с помощью обработки Групповое изменение реквизитов или путем написания небольшого скрипта, который перепривяжет старые значения к новым корректным элементам наборов.
Чтобы избежать подобных проблем в будущем, придерживайтесь следующих правил:
НаборыДополнительныхРеквизитовИСведений через Конфигуратор или прямое удаление в Предприятии.dt-файл или архив SQL) перед проведением любых обновлений конфигурации или манипуляций с метаданными.Следуя этим шагам, вы сможете восстановить работоспособность интерфейса и вернуть доступ к данным без потери информации. Если после всех манипуляций реквизиты всё ещё зачеркнуты, проверьте, не установлена ли в свойствах набора настройка видимости или доступности для определенных пользователей или профилей доступа.