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