Имя: Пароль:
1C
1С v8
СКД внешний набор данных. программное создание ТабДока
0 yavasya
 
07.09.15
12:09
ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ТЗ",ТЗ);

    
   //1.2 определяем набор данных
     НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
    НаборДанных.Имя = "Продажи";
    НаборДанных.ИсточникДанных = ВнешниеНаборыДанных;
//    НаборДанных.АвтоЗаполнениеДоступныхПолей = Истина;
//    
    
    
    
    
   //1.2.1 добавляем поля
    ПолеКонтрагент = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
    ПолеКонтрагент.Заголовок = "КОнтрагент";
    ПолеКонтрагент.ПутьКДанным = "КОнтрагент";
    ПолеКонтрагент.Поле = "КОнтрагент";
    
   //2. создаем настройки для схемы
    НастройкиКомпоновкиДанных = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    
   //2.1 определяем структуру
   //2.1.1 добавляем группировку "Номенклатура"
    ГруппировкаКОнтрагент = НастройкиКомпоновкиДанных.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    ПолеГруппировки = ГруппировкаКОнтрагент.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));    
    ПолеГруппировки.Использование = Истина;
    ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("КОнтрагент");
    //
   //3. компонуем
    КомпНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    КомпНастроек.ЗагрузитьНастройки(НастройкиКомпоновкиДанных);
    НастройкиКомпоновкиДанных = КомпНастроек.ПолучитьНастройки();
    
   //4. готовим макет
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных);
    
   //5. исполняем макет
  ПроцессорКомпоновкиДанных=  Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(Макет,
                                           ВнешниеНаборыДанных);
    
   //6. выводим результат
    ДокументРезультат = Новый ТабличныйДокумент;
     ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    ДокументРезультат.ОтображатьСетку = Ложь;
    ДокументРезультат.ОтображатьЗаголовки = Ложь;
    ДокументРезультат.Показать();
1 Брегорьян
 
07.09.15
12:10
поздравлять?
2 yavasya
 
07.09.15
12:10
НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
    НаборДанных.Имя = "Продажи";
    НаборДанных.ИсточникДанных = ВнешниеНаборыДанных;
3 yavasya
 
07.09.15
12:11
где то здесь ошибка
4 Брегорьян
 
07.09.15
12:12
(3) ну как найдёшь - сигнализируй
5 yavasya
 
07.09.15
12:13
не могу понять как к набору данных дать источник "Внешний набор"
6 yavasya
 
07.09.15
12:14
7 yavasya
 
07.09.15
12:15
8 yavasya
 
07.09.15
12:20
как программно создать отчет ?
9 yavasya
 
07.09.15
12:40
ПолеНабораДанных.ТипЗначения=Тип("СправочникСсылка.Контрагенты")
10 yavasya
 
07.09.15
12:40
здесь на что ругается?
11 yavasya
 
07.09.15
12:42
СхемаКомпоновкиДанных=новый СхемаКомпоновкиДанных;    
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
ИсточникДанных.Имя="ИсточникДанных";
ИсточникДанных.ТипИсточникаДанных="Local";
    
НаборДанныхОбъект = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
НаборДанныхОбъект.ИмяОбъекта="ВнешниеДанные";
НаборДанныхОбъект.Имя = "НаборДанных";
НаборДанныхОбъект.ИсточникДанных = ИсточникДанных.Имя;




//Для каждого Колонка Из ТЗ.Колонки Цикл
        ПолеНабораДанных = НаборДанныхОбъект.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
        ПолеНабораДанных.Поле="Контрагент";
        ПолеНабораДанных.Заголовок="Контрагент";
        ПолеНабораДанных.ПутьКДанным="Контрагент";
       //ПолеНабораДанных.ТипЗначения=Тип("СправочникСсылка.Контрагенты");
//КонецЦикла;
    Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
    Группировка.Использование=Истина;
    
    АвтополеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    АвтополеГруппировки.Использование=Истина;
    АвтоПолеВыбора = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
    АвтоПолеВыбора.Использование=Истина;
   // Для каждого Колонка Из ТЗ.Колонки Цикл
        ПолеВыбора = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
        ПолеВыбора.Использование=Истина;
        ПолеВыбора.Поле = Новый ПолеКомпоновкиДанных("Контрагент");
   // КонецЦикла;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ВнешниеДанные=Новый Структура("ВнешниеДанные",ТЗ);
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеДанные);
    ТабДок=Новый ТабличныйДокумент;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
12 yavasya
 
07.09.15
13:16
13 yavasya
 
07.09.15
13:17
так получилось , никто не формировал программно с внешним набором данных в скд ?
14 Nuobu
 
07.09.15
13:22
ПолеНабораДанных.ТипЗначения=Тип("СправочникСсылка.Контрагенты")
Новый ОписаниеТипов("СправочникСсылка.Контрагенты")
15 yavasya
 
07.09.15
13:40
можете подсказать почему группировка не включается?  мне нужна иерархия
16 yavasya
 
07.09.15
17:35
поделитесь пожалуйста кодом или примером отчета
2 + 2 = 3.9999999999999999999999999999999...