Имя: Пароль:
1C
1С v8
Документ. СКД. Отбор на форму.
,
0 024410
 
28.06.14
16:22
Добрый день!
Такая ситуация:

Есть документ, у него есть макет - СКД.
Задача вывести на форму документа отборы этой СКД.

Вроде все перепробовал... результата 0. Что я делаю не так?

[CODE]

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

    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(СписокНоменклатуры);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

    ЭлементыФормы.СписокНоменклатуры.СоздатьКолонки();

[/CODE]

ОтборСКД = на форме ТП с типом отбор.
1 barrgand
 
28.06.14
16:41
(0) ОтборСКД - ТП с типом отбор компоновщика настроек?
2 barrgand
 
28.06.14
16:50
(0) В общем надо делать так:

КомпоновщикНастроек делаешь реквизитом формы или документа с типом КомпоновщикНастроекКомпоновкиДанных. У ОтборСКД данные выбераешь КомпоновщикНастроек.Настройки.Отбор.

Далее при открытии формы инициализируешь компоновщик:

СхемаКомпоновкиДанных = ПолучитьМакет("СКД_ТаблицаНоменклатуры");
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
3 024410
 
28.06.14
16:56
Точно!
Получилось, СПС!