Имя: Пароль:
1C
1С v8
Программные настройки отбора СКД
,
0 KizerSoze
 
18.11.13
01:59
Здравствуйте,
Мучаюсь с программным формированием отчета СКД.
Пытаюсь программно задать отбор - не получается.
Вот код.

СхемаКомпановкиДанных=ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки=СхемаКомпановкиДанных.НастройкиПоУмолчанию;
    Настройки.Отбор.Элементы.Очистить();
    
    Отбор = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидЗанятости"));
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.ПравоеЗначение = Перечисления.ВидыЗанятостиВОрганизации.Совместительство;
    Отбор.Использование = Истина;
    
Проблема в том, что не заполняется левое значение в отборе. "КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора" почему то не содержат элементов. Предполагаю, что для решения задачи нужно понять, чем определяется наличие элементов в доступных полях отбора.
1 Сметанин
 
18.11.13
05:51
ПолеВидЗанятости = Новый ПолеКомпоновкиДанных("ВидЗанятости");
    Для каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
        Если Элемент.ЛевоеЗначение = ПолеВидЗанятости Тогда
            ЭлементОтбора = Элемент;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если ЭлементОтбора = Неопределено Тогда
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    КонецЕсли;
Как-то так
2 Wobland
 
18.11.13
06:30
правильно говоить "кампановка"
3 KizerSoze
 
18.11.13
10:13
спасибо, вечером протестирую.