Имя: Пароль:
1C
1С v8
Программно добавить выбранное поле в СКД
0 Neo111
 
01.11.13
17:40
Программно вывожу отчет на СКД.

Группировки добавляются нормально:

    ГруппировкаТов = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    ПолеГруппировки = ГруппировкаТов.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПолеГруппировки.Использование  = Истина;
    ПолеГруппировки.Поле           = Новый ПолеКомпоновкиДанных("Товар");
    ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;
    ГруппировкаТов.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    ГруппировкаТов.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));

При добавлении же выбранных полей в отчет выводятся только поля, являющиеся ресурсами:

    ВыбранноеПоле = КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
    ВыбранноеПоле.Заголовок = "Стоимость";
    ВыбранноеПоле.Использование = Истина;
    ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Стоимость");

Если таким образом в выбранные поля пытаться добавлять не ресурсы (например, измерения или прочие поля, не являющиеся ресурсами), то это эффекта не дает.

Например, вот это не работает:

    ВыбранноеПоле = КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
    ВыбранноеПоле.Заголовок = "ВидТовара";
    ВыбранноеПоле.Использование = Истина;
    ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ВидТовара");

ВидТовара - это выходное поле запроса СКД. Хотя в отладчике в списке выбранных полей оно видно.

Как поправить ситуацию?
1 Neo111
 
01.11.13
17:43
Если отчет выводить не программно, то нужный эффект достигается простым перетаскиванием нужных полей в настройке отчета в список выбранных полей. А программно пока удалось добавить только ресурсы.
2 Neo111
 
05.11.13
10:17
Ап
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.