Имя: Пароль:
1C
1С v8
СКД: Нужна помощь по программному добавлению группировки в открываемый отчет.
0 Перелетный косяк
 
28.01.13
21:54
Помогите плиз. С СКД практически не знаком. (:
Нужно добавить в открываемый программно отчет:
1.    отбор по элементу
2.    еще один - нижний - уровень группировки по документу

Конфа – Розница 1.0.17

С отбором справился:
ОтчетВедомостьТОваровНаСкладах = Отчеты.ВедомостьТоваровНаСкладах.Создать();
Форма_ОтчетВедомостьТОваровНаСкладах = ОтчетВедомостьТОваровНаСкладах.ПолучитьФорму();
КомпоновщикНастроек = ОтчетВедомостьТОваровНаСкладах.КомпоновщикНастроек;
Настройки = КомпоновщикНастроек.Настройки;

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


С группировкой не получается (:, не хватает знания матчасти.

Пытался через типовые:
   ТиповыеОтчеты.ДобавитьГруппировку(КомпоновщикНастроек, Новый ПолеКомпоновкиДанных("ДокументДвижения"), Истина);
   ТиповыеОтчеты.ИнициализацияТиповогоОтчета(ОтчетВедомостьТОваровНаСкладах);
   
В интерактивной настройке по умолчанию группировки «номенклатура» и «Характеристики», а когда идешь отладчиком – только какая-то странная группировка «Организации».

Понимаю, что надо подтягивать матчасть и читать Хрусталеву, но времени нет.., как всегда все надо было вчера
1 France
 
28.01.13
21:56
Брать типовой и хватит горы сворачивать
2 Перелетный косяк
 
28.01.13
22:05
(1) В типовой рознице подобных примеров нет
в типовой УТ 10.3 все замучено через "универсальный отчет"
3 rphosts
 
28.01.13
22:37
группировка что-то типа такого:

  Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
   Группировка.Использование = Истина;
   ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    ПолеГруппировки.Использование = Истина;
    ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Пользователь");
   АвтоПоле = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбраноеПолеКомпоновкиДанных"));
    АвтоПоле.Использование = Истина;
     ДетальныеЗаписи = Группировка.Структура.Добавить(Тип(ГруппировкаКомпоновкиДанных"));
     ДетальныеЗаписи. Использование = Истина;
      АвтоПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("АвтоВыбраноеПолеКомпоновкиДанных"));
      АвтоПоле.Использование = Истина;
4 Перелетный косяк
 
28.01.13
22:46
(3) ноль эффекта
выводит с 2 группировками по умолчанию "ном"&"хар-ки"
5 Перелетный косяк
 
28.01.13
22:47
может нужно не Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")) а работать с существующим элементом структуры?
6 Classic
 
28.01.13
22:47
(0)
Тебе чисто универсально надо, или два/три варианта?
7 rphosts
 
28.01.13
22:49
(5)как вариант снести всё нафиг и сверстать свой макет полностью програмно
8 Перелетный косяк
 
28.01.13
22:50
(6) мне бы чтоб работало.. хоть как
разбираться буду потом
9 Classic
 
28.01.13
22:51
(8)
На вопрос ты не ответил
10 Перелетный косяк
 
28.01.13
22:52
(7) подумывал. только заказчик просил именно открытие типоого отчета с отбором и группировкой. не знаю как отреагирует. там же не только макет, форму рисовать надо, настройки
11 Перелетный косяк
 
28.01.13
22:53
(9) мне любое решение подойдет
если решений будет несколько - только лучше, может вникну в чем соль
12 Classic
 
28.01.13
23:01
(11)
Тяжело с тобой.
Тебе надо, чтоб пользователь сам задавал группировки, или в разных случаях использовать разный (но фиксированный) набор группировок?
13 Перелетный косяк
 
28.01.13
23:01
Проблема в том что он выводит не мое "Настройки.Структура",

а то что по умолчанию закреплено в настройке СКД.
что бы ни делал, нифига не меняется(
14 Перелетный косяк
 
28.01.13
23:03
(12) ааа... вот ты про что
мне нужен единственный и конкретный набор полей группировок

Номнклатура
Характеристики
ДокументыДвижения
15 Classic
 
28.01.13
23:05
(14)
Так задай его сразу ручками, в чем проблема?
16 Перелетный косяк
 
28.01.13
23:07
(15) если не получится программно, так и сделаю. но хотелось бы изящно, чтоб не зависеть от корявых ручонок пользователей
17 France
 
28.01.13
23:49
(2) я имел ввиду типовой шаблон СКД..
18 kiruha
 
28.01.13
23:52
ОтчетВедомостьТОваровНаСкладах = Отчеты.ВедомостьТоваровНаСкладах.Создать();
// 1 получаем схему
СхемаКомпоновки=ОтчетВедомостьТОваровНаСкладах .ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");//или как там называется
//2  получаем настройки
Настройки=СхемаКомпоновки.НастройкиПоУмолчанию;
// 3 добавляем группировку
ГруппировкаНоменклатура=Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаНоменклатура.Использование=Истина;
//4 добавляем поля в группировку
ПолеНоменклатуры=ГруппировкаНоменклатура.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеНоменклатуры.Использование=Истина;
// 5. Прописываем путь откуда поле будет брать данные
ПолеНоменклатуры.Поле=Новый ПолеКомпоновкиДанных("Номенклатура")  ;
// 6. Предоставим системе самой автоматически добавить нужные поля в группировку
ВыбранныеПоля=ГруппировкаНоменклатура.Выбор;
ВыбранныеПоляДляНоменклатуры=ВыбранныеПоля.Элементы.Добавить(Тип("АвтовыбранноеПолеКомпоновкиДанных"));
ВыбранныеПоляДляНоменклатуры.Использование=Истина;
// итерация 3-6 для других группировок
//.....
НовыйЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
///
19 К_Дач
 
28.01.13
23:54
Нарисуй еще один вариант настроек, назови его Вариант2 и получай его из коллекции компоновщика в нужных случаях.
20 kiruha
 
29.01.13
00:02
(18)+
//3.5
Настройки.Структура.Очистить();
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.