Добрый день. На форме внешней обработки есть ТЧ "Материалы" с реквизитами "Номенклатура", "Характеристика", "Спецификация". Как вызвать форму выбора спецификации с отбором по Номенклатуре и характеристике? У справочника "Спецификации" основное изделие тоже в ТЧ Выходные изделия, в моем случае всегда одно.
ERP 2.4
---
если отбор делать по ТЧ справочника, то примерно:
Запросом получить список значений ссылок спр спец, с отбором по ТЧ, Ном+ХН и вставить в отбор формы выбора
Примерно так, запрос я думаю сами сделаете

```1c
    ТекущиеДанные=Элементы.Материалы.ТекущиеДанные;

    Список=ПолучитьСписок(ТекущиеДанные.Номенклатура,ТекущиеДанные.Характеристика);

    фиксНастройки = Новый НастройкиКомпоновкиДанных;
    Отбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    Отбор.ПравоеЗначение = Список;
    Отбор.Использование = Истина;
    Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ФиксированныеНастройки", фиксНастройки);
    ОткрытьФорму("Справочник.Спец.ФормаВыбора", ПараметрыФормы, Элемент);

    Функция ПолучитьСписок(Номенклатура,Характеристика)
    Запрос=...
    Запрос.УстановитьПараметр
    ....
    Запрос.Текст
    Список=Новый СписокЗначений;
    Список.Загрузить(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
    Возврат Список;
    КонецФункции
```
---
Если ТЧ на форме выведена в виде динамического списка - можно сделать так:

```1c
    &НаСервере
    Процедура УстановитьОтборы()
    Список.Отбор.Элементы.Очистить();
    Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
    Отбор.ПравоеЗначение = НоменклатураДляОтбора;
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.Использование = Истина;

    Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Характеристика");
    Отбор.ПравоеЗначение = ХарактеристикаДляОтбора;
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.Использование = Истина;
    КонецПроцедуры
```

В динамическом списке поля номенклатура и характеристика должны быть выведены на форму и видимые или в свойствах этих колонок должно быть установлено свойство "ИспользоватьВсегда"
---
если отбор делать по ТЧ справочника, то примерно:
Запросом получить список значений ссылок спр спец, с отбором по ТЧ, Ном+ХН и вставить в отбор формы выбора
Примерно так, запрос я думаю сами сделаете

```1c
    ТекущиеДанные=Элементы.Материалы.ТекущиеДанные;

    Список=ПолучитьСписок(ТекущиеДанные.Номенклатура,ТекущиеДанные.Характеристика);

    фиксНастройки = Новый НастройкиКомпоновкиДанных;
    Отбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    Отбор.ПравоеЗначение = Список;
    Отбор.Использование = Истина;
    Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ФиксированныеНастройки", фиксНастройки);
    ОткрытьФорму("Справочник.Спец.ФормаВыбора", ПараметрыФормы, Элемент);

    Функция ПолучитьСписок(Номенклатура,Характеристика)
    Запрос=...
    Запрос.УстановитьПараметр
    ....
    Запрос.Текст
    Список=Новый СписокЗначений;
    Список.Загрузить(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
    Возврат Список;
    КонецФункции
```
---
Функция ПолучитьСписок(Номенклатура,Характеристика)
Запрос=...
Запрос.УстановитьПараметр
....
Запрос.Текст
Список=Новый СписокЗначений;
Список.Загрузить(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
Возврат Список;
КонецФункции
Спасибо. Так работает.

```1c
    //Отбор
    &НаКлиенте
    Процедура МатериалыСпецификацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    ТекущиеДанные=Элементы.Материалы.ТекущиеДанные;

    Список=ПолучитьСписок(ТекущиеДанные.Номенклатура,ТекущиеДанные.Характеристика);

    фиксНастройки = Новый НастройкиКомпоновкиДанных;
    Отбор = фиксНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    Отбор.ПравоеЗначение = Список;
    Отбор.Использование = Истина;
    Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ФиксированныеНастройки", фиксНастройки);
    ОткрытьФорму("Справочник.РесурсныеСпецификации.ФормаВыбора", ПараметрыФормы, Элемент);

    КонецПроцедуры

    &НаСервере
    Функция ПолучитьСписок(Номенклатура,Характеристика)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | РесурсныеСпецификацииВыходныеИзделия.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.РесурсныеСпецификации.ВыходныеИзделия КАК РесурсныеСпецификацииВыходныеИзделия
    |ГДЕ
    | РесурсныеСпецификацииВыходныеИзделия.Номенклатура = &Номенклатура
    | И РесурсныеСпецификацииВыходныеИзделия.Характеристика = &Характеристика";

    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Характеристика", Характеристика);

    Список=Новый СписокЗначений;
    Список.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
    Возврат Список;

    КонецФункции
```

А почему открывается две формы, одна с отбором а другая пустая?
---
```1c
    СтандартнаяОбработка=Ложь;
```