Можно ли программно создать отбор для правила как на картинке My Webpage
---
Пример есть таблица или можете запросом, необходимо зарегистрировать к обмену в правилах ОС

```1c
    Обработина = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    Обработина.РежимОбмена = "Выгрузка";
    Обработина.ИмяФайлаПравилОбмена = "Правила Основных средств.xml";
    Обработина.ИмяФайлаОбмена= "ВыгрузкаОС.xml";
    Обработина.ЗагрузитьПравилаОбмена();
    СписокОС = Новый СписокЗначений;
    СписокОС.Очистить();
    //далее у нас то что записывает в список значений
    //цикл или метод выгрузка у объекта
    // по факту сейчас это делаю в консоли запросов и поэтому через цикл как там делается по умолчанию
    Для каждого СтрокаЗапроса из РезультатТаблица Цикл
    ОбработкаПрерыванияПользователя();
    ТекПозиция = ТекПозиция + 1;
    Состояние("Выполнено " + Окр(ТекПозиция / РезультатТаблица.Количество() * 100) + "%");
    //СтрокаЗапроса.Ссылка
    //СтрокаЗапроса.Код
    СписокОС.Добавить(СтрокаЗапроса.ОС.Ссылка);
    КонецЦикла;

    //обработаем сами правила и загоним туда наш отбор
    Для каждого стрП из Обработина.ТаблицаПравилВыгрузки.Строки[0].строки Цикл
    сообщить(СтрП.Имя);
    если СтрП.Имя = "ОсновныеСредства" Тогда
    //нужно
    ТекущееПВД = СтрП ;
    СтрП.Включить = истина;
    сообщить(ТекущееПВД.имяОбъектаДляЗапроса);
    КонецЕсли;
    КонецЦикла;

    //установим отбор для выгрузки
    Построитель = Новый ПостроительОтчета;
    Построитель.Текст =
    "ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
    |
    |
    |{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
    Отбор = Построитель.Отбор;
    Отбор.Добавить("Справочник_ОсновныеСредства");
    Отбор["Справочник_ОсновныеСредства"].Использование = истина;
    Отбор["Справочник_ОсновныеСредства"].ВидСравнения = ВидСравнения.ВСписке;
    Отбор["Справочник_ОсновныеСредства"].Значение = СписокОС;
    Построитель.ПолучитьНастройки();
    ТекущееПвд.ИспользоватьОтбор = Истина;
    ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    ТекущееПВД.ИспользоватьОтбор = ИСТИНА;

    Обработина.ПолучитьФорму("Форма").Открыть();
```

//итого по факту мне открылась обработку с правила загруженными и заполненным отбором
---
Пока я пытаюсь так:

```1c
    Процедура ОбойтиУровеньДерева(Строки)
    Для каждого Строка из Строки Цикл
    //что-то делаем со строкой, например:
    Сообщить(Строка.Имя + " " + Строка.Наименование);
    Если Строка.Имя = "АвансовыйОтчет" Тогда
    ПостроительОтчета.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | АвансовыйОтчет.Ссылка КАК Ссылка
    |ИЗ
    | Документ.АвансовыйОтчет КАК АвансовыйОтчет
    |{ГДЕ
    | АвансовыйОтчет.Ссылка.* КАК АвансовыйОтчет_Номер}";
    ПостроительОтчета.Отбор.Добавить("Документ_АвансовыйОтчет.Номер");
    ПостроительОтчета.Отбор[0].ВидСравнения = ВидСравнения.ВСписке;
    СЗ = Новый СписокЗначений;
    СЗ.Вставить(0, Документы.АвансовыйОтчет.НайтиПоНомеру("00000000003"));
    СЗ.Вставить(1, Документы.АвансовыйОтчет.НайтиПоНомеру("00000000004"));
    ПостроительОтчета.Отбор[0].Значение = СЗ;
    ПостроительОтчета.Отбор[0].Использование = Истина;
```
---
но получаю ошибку: скрин ошибки
---
Т.е. 1С обругала строку:

```1c
    ПостроительОтчета.Отбор.Добавить("Документ_АвансовыйОтчет.Номер");
```

с текстом ошибки:
{ВнешняяОбработка.УниверсальныйОбменДаннымиXML.Форма.Форма.Форма(1133)}: Ошибка при вызове метода контекста (Добавить)
   ПостроительОтчета.Отбор.Добавить("Документ_АвансовыйОтчет.Номер");
по причине:
Недопустимое значение параметра (параметр номер '1')
---
Ну как вариант в запросе у вас КАК АвансовыйОтчет_Номер, а вы пытаетесь добавить "Документ_АвансовыйОтчет.Номер" . Почему то я думаю, что они должны совпадать
---
Я взял из якобы работающего примеры из интернета, да ив СП пишется, метод Отбор.Добавить() требует только имя (то бишь строковое значение)
---
Пример есть таблица или можете запросом, необходимо зарегистрировать к обмену в правилах ОС

```1c
    Обработина = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    Обработина.РежимОбмена = "Выгрузка";
    Обработина.ИмяФайлаПравилОбмена = "Правила Основных средств.xml";
    Обработина.ИмяФайлаОбмена= "ВыгрузкаОС.xml";
    Обработина.ЗагрузитьПравилаОбмена();
    СписокОС = Новый СписокЗначений;
    СписокОС.Очистить();
    //далее у нас то что записывает в список значений
    //цикл или метод выгрузка у объекта
    // по факту сейчас это делаю в консоли запросов и поэтому через цикл как там делается по умолчанию
    Для каждого СтрокаЗапроса из РезультатТаблица Цикл
    ОбработкаПрерыванияПользователя();
    ТекПозиция = ТекПозиция + 1;
    Состояние("Выполнено " + Окр(ТекПозиция / РезультатТаблица.Количество() * 100) + "%");
    //СтрокаЗапроса.Ссылка
    //СтрокаЗапроса.Код
    СписокОС.Добавить(СтрокаЗапроса.ОС.Ссылка);
    КонецЦикла;

    //обработаем сами правила и загоним туда наш отбор
    Для каждого стрП из Обработина.ТаблицаПравилВыгрузки.Строки[0].строки Цикл
    сообщить(СтрП.Имя);
    если СтрП.Имя = "ОсновныеСредства" Тогда
    //нужно
    ТекущееПВД = СтрП ;
    СтрП.Включить = истина;
    сообщить(ТекущееПВД.имяОбъектаДляЗапроса);
    КонецЕсли;
    КонецЦикла;

    //установим отбор для выгрузки
    Построитель = Новый ПостроительОтчета;
    Построитель.Текст =
    "ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
    |
    |
    |{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
    Отбор = Построитель.Отбор;
    Отбор.Добавить("Справочник_ОсновныеСредства");
    Отбор["Справочник_ОсновныеСредства"].Использование = истина;
    Отбор["Справочник_ОсновныеСредства"].ВидСравнения = ВидСравнения.ВСписке;
    Отбор["Справочник_ОсновныеСредства"].Значение = СписокОС;
    Построитель.ПолучитьНастройки();
    ТекущееПвд.ИспользоватьОтбор = Истина;
    ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    ТекущееПВД.ИспользоватьОтбор = ИСТИНА;

    Обработина.ПолучитьФорму("Форма").Открыть();
```

//итого по факту мне открылась обработку с правила загруженными и заполненным отбором
---
Класс! Буду изучать!
---
//установим отбор для выгрузки
      ......................................
Огромное СПАСИБО вам!!!
Благодаря вашему коду у меня получилось, и теперь работающий код выглядит так:

```1c
    Если СтрокаП.Имя = "АвансовыйОтчет" Тогда
    СтрокаП.Включить = Истина;
    СЗ = Новый СписокЗначений;
    СЗ.Вставить(0, Документы.АвансовыйОтчет.НайтиПоНомеру("00000000003"));
    СЗ.Вставить(1, Документы.АвансовыйОтчет.НайтиПоНомеру("00000000004"));
    //установим отбор для выгрузки
    Построитель = Новый ПостроительОтчета;
    Построитель.Текст =
    "ВЫБРАТЬ Разрешенные _.* ИЗ " + СтрокаП.ИмяОбъектаДляЗапроса + " КАК _
    |
    |
    |{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(СтрокаП.ИмяОбъектаДляЗапроса, ".", "_") + "}";
    Отбор = Построитель.Отбор;
    ИмяОтбора = СтрЗаменить(СтрокаП.ИмяОбъектаДляЗапроса, ".", "_");
    Отбор.Добавить(ИмяОтбора);
    Отбор[ИмяОтбора].Использование = истина;
    Отбор[ИмяОтбора].ВидСравнения = ВидСравнения.ВСписке;
    Отбор[ИмяОтбора].Значение = СЗ;
    Построитель.ПолучитьНастройки();
    СтрокаП.ИспользоватьОтбор = Истина;
    СтрокаП.НастройкиПостроителя = Построитель.ПолучитьНастройки();
    СтрокаП.ИспользоватьОтбор = ИСТИНА;
```