Имя: Пароль:
1C
 
СКД. Добавить/удалить группировку в отчет программно
0 Ёхан Палыч
 
10.10.08
12:42
Можно это ли это сделать и когда?
1 Ёхан Палыч
 
10.10.08
12:51
Как можно программно добавить новую группировку, новую таблицу? Или изменить существующие?
2 kz
 
10.10.08
12:57
можно, в СП все есть
3 Ёхан Палыч
 
10.10.08
13:00
смотрел там, что-то туго мне идет.
Подозреваю, что нужно это делать перед компоновкой макета, но через какой объект?
4 Ёхан Палыч
 
10.10.08
13:00
дайте наводку (в смысле направление, а не на водку :-)
5 MoneG
 
10.10.08
13:03
(0) Яндекс рулит :)

ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
ТекНастройкиКомпоновщика.Структура.Очистить();

//добавить группировку

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

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

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

//добавим детальные записи как подгруппу в "Склад". Все отличие только в том, что нет группировки
ДетальныеЗаписи = ГруппировкаПоСкладу.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ДетальныеЗаписи.Имя = "Детальные";
ДетальныеЗаписи.Использование = Истина;
//добавить выводимые поля в детальных записях: Номенклатуру и количество остаток
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));  
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));  
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОстаток");
6 Ёхан Палыч
 
10.10.08
13:08
Во! Самое оно.
Спасибо!