Определяет, принадлежит ли объект метаданных данной коллекции.
Синтаксис
Содержит(<ОбъектМетаданных>)Полное описание, параметры и ограничения
КоллекцияОбъектовМетаданных.Содержит (MetadataObjectCollection.Contains)
КоллекцияОбъектовМетаданных (MetadataObjectCollection)
Содержит (Contains)
Доступен, начиная с версии 8.0.
Синтаксис:
Содержит(<ОбъектМетаданных>)
Параметры:
<ОбъектМетаданных> (обязательный)
Тип: ОбъектМетаданных: ОпределяемыйТип, ОбъектМетаданных: Куб, ОбъектМетаданных: ТаблицаИзмерения, ОбъектМетаданных: ВнешнийИсточникДанных, ОбъектМетаданных: Поле, ОбъектМетаданных: Таблица, ОбъектМетаданных: HTTPСервис, ОбъектМетаданных: Функция, ОбъектМетаданных: ШаблонURLHTTPСервиса, ОбъектМетаданных: Бот, ОбъектМетаданных: WebSocketКлиент, ОбъектМетаданных: ПланВидовРасчета, ОбъектМетаданных: ПланСчетов, ОбъектМетаданных: БизнесПроцесс, ОбъектМетаданных: Документ, ОбъектМетаданных: ЖурналДокументов, ОбъектМетаданных: Задача, ОбъектМетаданных: ПланВидовХарактеристик, ОбъектМетаданных: ПланОбмена, ОбъектМетаданных: РегистрБухгалтерии, ОбъектМетаданных: РегистрНакопления, ОбъектМетаданных: РегистрРасчета, ОбъектМетаданных: РегистрСведений, ОбъектМетаданных: Справочник, ОбъектМетаданных: ФункциональнаяОпция, ОбъектМетаданных: ПараметрФункциональныхОпций, ОбъектМетаданных: Команда, ОбъектМетаданных: ГруппаКоманд, ОбъектМетаданных: ХранилищеНастроек, ОбъектМетаданных: ОбщаяКоманда, ОбъектМетаданных: ЦветПалитры, ОбъектМетаданных: СервисИнтеграции, ОбъектМетаданных: WebСервис, ОбъектМетаданных: WSСсылка, ОбъектМетаданных: Интерфейс, ОбъектМетаданных: Константа, ОбъектМетаданных: КритерийОтбора, ОбъектМетаданных: Нумератор, ОбъектМетаданных: Обработка, ОбъектМетаданных: ОбщаяКартинка, ОбъектМетаданных: Макет, ОбъектМетаданных: ОбщийМодуль, ОбъектМетаданных: Форма, ОбъектМетаданных: Стиль, ОбъектМетаданных: Язык, ОбъектМетаданных: Отчет, ОбъектМетаданных: ПакетXDTO, ОбъектМетаданных: ПараметрСеанса, ОбъектМетаданных: Перечисление, ОбъектМетаданных: ПодпискаНаСобытие, ОбъектМетаданных: Подсистема, ОбъектМетаданных: Последовательность, ОбъектМетаданных: РегламентноеЗадание, ОбъектМетаданных: Роль, ОбъектМетаданных: ЭлементСтиля, ОбъектМетаданных: Графа, ОбъектМетаданных: Измерение, ОбъектМетаданных: ЗначениеПеречисления, ОбъектМетаданных: ОперацияWebСервиса, ОбъектМетаданных: Перерасчет, ОбъектМетаданных: ПараметрWebСервиса, ОбъектМетаданных: ПризнакУчетаПланаСчетов, ОбъектМетаданных: ПризнакУчетаСубконтоПланаСчетов, ОбъектМетаданных: Реквизит, ОбъектМетаданных: ТабличнаяЧасть, ОбъектМетаданных: Ресурс, ОбъектМетаданных: РеквизитАдресации, ОбъектМетаданных: КаналСервисаИнтеграции, ОбъектМетаданных: ОбщийРеквизит.
Объект метаданных, наличие которого определяется в коллекции.
Возвращаемое значение:
Тип: Булево.
Описание:
Определяет, принадлежит ли объект метаданных данной коллекции.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Составить паспорт конфигурации перед интеграцией
Определяем, с какой конфигурацией работаем, считаем группы метаданных и проверяем поиск справочника по полному имени и по типу ссылки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Сообщить(СтрШаблон("Конфигурация: %1 (%2)", Метаданные.Имя, Метаданные.Синоним));
Сообщить("Версия конфигурации: " + Метаданные.Версия);
Сообщить("Поставщик: " + Метаданные.Поставщик);
Сообщить(Метаданные.РежимСовместимости);
Сообщить(Метаданные.Комментарий);
Сообщить(СтрШаблон("Справочников: %1; документов: %2; регистров сведений: %3; общих модулей: %4",
Метаданные.Справочники.Количество(), Метаданные.Документы.Количество(),
Метаданные.РегистрыСведений.Количество(), Метаданные.ОбщиеМодули.Количество()));
Сообщить(Метаданные.ЕстьИзмененияРасширениямиКонфигурации());
Описание = Метаданные.НайтиПоПолномуИмени("Справочник.Номенклатура");
Если Описание = Неопределено Тогда
Сообщить("Справочник.Номенклатура отсутствует — проверьте выбранную конфигурацию");
Иначе
ПоТипу = Метаданные.НайтиПоТипу(Тип("СправочникСсылка.Номенклатура"));
Сообщить(Описание = ПоТипу);
Сообщить(Метаданные.Справочники.Содержит(Описание));
Индекс = Метаданные.Справочники.Индекс(Описание);
Сообщить(Индекс);
Сообщить(Метаданные.Справочники.Получить(Индекс) = Описание);
КонецЕсли;Разбор по шагам
Читаем имя и версию конфигурации: это не номер версии платформы 1С.
Количество считает описания объектов метаданных, а не количество товаров или документов в базе.
Поиск по полному имени использует Справочник.Номенклатура; по типу — СправочникСсылка.Номенклатура. Это разные строки.
Проверяем принадлежность коллекции и обратный доступ по найденному индексу. При отсутствии справочника не обращаемся к несуществующему типу.
Как проверить результат
Имя и версия совпадают с корневым объектом конфигурации в Конфигураторе, а не с 8.5.1.1343.
В конфигурации с Номенклатурой три сравнения дают Истина; индекс неотрицательный.
Измените полное имя на Справочник.УчебныйОтсутствующий: получите сообщение об отсутствии, а не ошибку обращения к свойству Неопределено.
Ожидаемый результат
Получен паспорт текущей конфигурации и проверена связь описания метаданных с типом ссылки.
На что обратить внимание
Наличие метаданных не доказывает, что текущему пользователю разрешено читать все данные соответствующего объекта.
ЕстьИзмененияРасширениямиКонфигурации сообщает об изменениях структуры расширениями; это не признак ошибки и не проверка бизнес-логики.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Найти главную схему СКД и назначения хранилищ отчёта
Главная схема — описание макета, а хранилища описывают механизм сохранения настроек. Ни выборка остатков, ни чтение пользовательских вариантов не выполняются.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Отчет = Метаданные.Отчеты.Найти("АнализОстатковТоваровОрганизаций");
Если Отчет = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Отчеты.АнализОстатковТоваровОрганизаций";
КонецЕсли;
Обработка = Метаданные.Обработки.Найти("ВводКонтактнойИнформации");
Если Обработка = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Обработки.ВводКонтактнойИнформации";
КонецЕсли;
Схема = Отчет.ОсновнаяСхемаКомпоновкиДанных;
Если Схема = Неопределено Тогда
Сообщить("Основная схема не назначена");
Иначе
Сообщить(Схема.ПолноеИмя());
Сообщить(Отчет.Макеты.Содержит(Схема));
Сообщить(Схема.Имя = "ОсновнаяСхемаКомпоновкиДанных");
КонецЕсли;
Хранилища = Новый Массив;
Хранилища.Добавить(Отчет.ХранилищеВариантов);
Хранилища.Добавить(Отчет.ХранилищеНастроек);
Для Каждого Хранилище Из Хранилища Цикл
Если Хранилище = Неопределено Тогда
Сообщить("Собственное хранилище явно не назначено; изучите стандартный механизм");
Иначе
Сообщить("Назначенное хранилище: " + Хранилище.ПолноеИмя());
КонецЕсли;
КонецЦикла;Разбор по шагам
Получаем описание главного макета и проверяем наличие до чтения имени.
Содержит проверяет принадлежность Макеты; не загружает схему и не формирует отчёт.
Варианты отчёта и пользовательские настройки имеют разные назначения хранилищ.
Неназначенное собственное хранилище не является доказательством потери сохранённых вариантов.
Как проверить результат
По XML оба сравнения схемы Истина: макет принадлежит отчёту и имеет ожидаемое имя.
В XML оба назначения хранилищ пусты; код не обращается к их методам загрузки или сохранения.
Ожидаемый результат
Найдены описание главной схемы и настройки механизмов хранения.
На что обратить внимание
Не применяйте к описанию макета методы СхемаКомпоновкиДанных.
Проверка метаданных не подтверждает, что запросы отчёта быстры или остатки правильны.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.