Тип: ИспользованиеОбщегоРеквизита. Варианты значения свойства Использование в составе общего реквизита.
Полное описание, параметры и ограничения
ПеречислимыеСвойстваОбъектовМетаданных.ИспользованиеОбщегоРеквизита (MetadataObjectEnumeratedProperties.CommonAttributeUse)
ПеречислимыеСвойстваОбъектовМетаданных (MetadataObjectEnumeratedProperties)
ИспользованиеОбщегоРеквизита (CommonAttributeUse)
Доступен, начиная с версии 8.3.7.
Использование:
Только чтение.
Описание:
Тип: ИспользованиеОбщегоРеквизита.
Варианты значения свойства Использование в составе общего реквизита.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Изменение свойства на клиенте может потребовать обращения к серверу.
См. также:
ЭлементСоставаОбщегоРеквизита, свойство Использование
Использование в версии:
Доступен, начиная с версии 8.3.7.
Методическая информация
Практические примеры
Отделить автоматическое использование общего реквизита от явного состава
ОбластьДанныхОсновныеДанные имеет автоматическое использование. Для Номенклатуры сначала ищем явную настройку, а отсутствие записи не объявляем отсутствием общего реквизита.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Варианты = Метаданные.СвойстваОбъектов;
Описание = Метаданные.ОбщиеРеквизиты.Найти("ОбластьДанныхОсновныеДанные");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует ОбщиеРеквизиты.ОбластьДанныхОсновныеДанные";
КонецЕсли;
Номенклатура = Метаданные.Справочники.Найти("Номенклатура");
Если Номенклатура = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Справочники.Номенклатура";
КонецЕсли;
Сообщить(Описание.АвтоИспользование = Варианты.АвтоИспользованиеОбщегоРеквизита.Использовать);
Настройка = Описание.Состав.Найти(Номенклатура);
Если Настройка = Неопределено Тогда
Сообщить("Явной настройки Номенклатуры нет; учитывайте АвтоИспользование, не объявляйте реквизит отсутствующим");
Иначе
Сообщить(Настройка.Метаданные = Номенклатура);
Если Настройка.Использование = Варианты.ИспользованиеОбщегоРеквизита.Авто Тогда
Сообщить("Явный элемент состава наследует автоматическую настройку");
ИначеЕсли Настройка.Использование = Варианты.ИспользованиеОбщегоРеквизита.Использовать Тогда
Сообщить("Для объекта явно включено использование");
ИначеЕсли Настройка.Использование = Варианты.ИспользованиеОбщегоРеквизита.НеИспользовать Тогда
Сообщить("Для объекта явно выключено использование");
Иначе
ВызватьИсключение "Неизвестный вариант использования общего реквизита";
КонецЕсли;
Сообщить("Тип условия разделения элемента: " + Строка(ТипЗнч(Настройка.УсловноеРазделение)));
КонецЕсли;Разбор по шагам
АвтоИспользование всего общего реквизита и Использование конкретного элемента состава имеют разные контейнеры вариантов.
Найти получает объект метаданных Номенклатуры. Состав может содержать только явные настройки, поэтому отсутствие обрабатывается отдельной веткой.
В найденном элементе проверяется владелец, затем различаются Авто, Использовать, НеИспользовать. Одного числового/строкового сравнения нет.
УсловноеРазделение элемента диагностируется по типу, не вызывается как константа и не изменяется.
Как проверить результат
Первое сравнение Истина по XML. Затем либо понятное отсутствие явного элемента, либо его фактическое правило.
Никакой флаг использования или параметр сеанса не изменён.
Ожидаемый результат
Отсутствие явного элемента состава не стало ложным выводом об отсутствии общего реквизита.
На что обратить внимание
Не объединяйте АвтоИспользование и Использование в одно перечисление.
Результат не доказывает доступ конкретного пользователя к данным.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.