Имя: Пароль:
1C
1С v8
Не полная инициализация "МакетаКомпановкиДанных"
0 Alex_MA
 
15.02.12
14:20
Всем доброго дня!

Есть конструкция:

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Компоновщик.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

возвращает пустой набор данных:
http://gyazo.com/864c7f38151e5271d69fe6e215b6c273

Я ожидал, что он мне вернет набор данных, в котором есть запрос с параметрами. (Т.е. в Компоновщик.Настройки есть определенные отборы)

Что я сделал не так ? Уже не знаю куда копать.
1 Alex_MA
 
15.02.12
14:24
Сначала формирую схему компоновки данных.

СхемаКомпановкиДанных = Новый СхемаКомпоновкиДанных();
   
   ИсточникДанных = СхемаКомпановкиДанных.ИсточникиДанных.Добавить();
   ИсточникДанных.Имя = "ИсточникДанных";
   ИсточникДанных.ТипИсточникаДанных = "Local";
   
   НаборДанныхЗапрос        = СхемаКомпановкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
   НаборДанныхЗапрос.Имя    = "ДанныеДляОтчета";
   НаборДанныхЗапрос.ИсточникДанных = "ИсточникДанных";
   
   СхемаКомпановкиДанных.НаборыДанных.ДанныеДляОтчета.АвтоЗаполнениеДоступныхПолей = Истина;
   
   Если СтруктураНастроек.КомпановкаОтчета.Свойство("ПолныеДанные") Тогда
       
       НаборДанныхЗапрос.Запрос = "ВЫБРАТЬ
                                  |    НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ) КАК ДатаПонедельник,
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 1) КАК ДатаВторник,
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 2) КАК ДатаСреда,
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 3) КАК ДатаЧетверг,
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 4) КАК ДатаПятница,
                                  |    СУММА(ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПонедельникВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ) КАК ПонедельникКоличество,
                                  |    СУММА(ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ВторникВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ) КАК ВторникКоличество,
                                  |    СУММА(ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.СредаВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ) КАК СредаКоличество,
                                  |    СУММА(ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ЧетвергВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ) КАК ЧетвергКоличество,
                                  |    СУММА(ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПятницаВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ) КАК ПятницаКоличество,
                                  |    СУММА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПонедельникМощность) КАК ПонедельникМощность,
                                  |    СУММА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ВторникМощность) КАК ВторникМощность,
                                  |    СУММА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.СредаМощность) КАК СредаМощность,
                                  |    СУММА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ЧетвергМощность) КАК ЧетвергМощность,
                                  |    СУММА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПятницаМощность) КАК ПятницаМощность,
                                  |    СУММА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПонедельникМощность + vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ВторникМощность + vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.СредаМощность + vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ЧетвергМощность + vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПятницаМощность) КАК ОбщаяМощностьОграничения,
                                  |    СУММА(ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПонедельникВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ + ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ВторникВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ + ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.СредаВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ + ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ЧетвергВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ + ВЫБОР
                                  |            КОГДА vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ПятницаВремя <> """"
                                  |                ТОГДА 1
                                  |            ИНАЧЕ 0
                                  |        КОНЕЦ) КАК ОбщееКоличествоОграничений,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ГруппаПотребителей,
                                  |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ДоговорКонтрагента.Владелец) КАК ОбщееКоличествоКонтрагентов,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Организация,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ДоговорКонтрагента,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ВидОграничения,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ТочкаПоставки,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.СетеваяОрганизация,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Неделя
                                  |ИЗ
                                  |    РегистрСведений.vscГрафикиПланФактныхОтключенийПотребителей.СрезПоследних(&Дата, ) КАК vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних
                                  |ГДЕ
                                  |    КОНЕЦПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ) = КОНЕЦПЕРИОДА(&Дата, НЕДЕЛЯ)
                                  |
                                  |СГРУППИРОВАТЬ ПО
                                  |    НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ),
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 1),
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 2),
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 3),
                                  |    ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Период, НЕДЕЛЯ), ДЕНЬ, 4),
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ГруппаПотребителей,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Организация,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ДоговорКонтрагента,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ВидОграничения,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.ТочкаПоставки,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.СетеваяОрганизация,
                                  |    vscГрафикиПланФактныхОтключенийПотребителейСрезПоследних.Неделя";                    

затем

// Подготовка компоновщика макета компоновки данных.
   Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
   Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   Компоновщик.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   Компоновщик.Настройки.Отбор.Элементы.Очистить();
   
   // Отбор компоновщика настроек.
   Если СтруктураНастроек.КомпоновщикНастроек <> Неопределено Тогда
       vscФункцииОтчетовКлиентСервер.СкопироватьЭлементы(Компоновщик.Настройки.Отбор, СтруктураНастроек.КомпоновщикНастроек.Настройки.Отбор);
   КонецЕсли;
   
   // Выбранные поля компоновщика настроек.
   Для Каждого ОбязательноеПоле Из СтруктураНастроек.ОбязательныеПоля Цикл
       ПолеСКД = НайтиПолеСКДПоПолномуИмени(Компоновщик.Настройки.Выбор.ДоступныеПоляВыбора.Элементы, ОбязательноеПоле);
       Если ПолеСКД <> Неопределено Тогда
           ВыбранноеПоле = Компоновщик.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
           ВыбранноеПоле.Поле = ПолеСКД.Поле;
       КонецЕсли;
   КонецЦикла;
   
   // Заполнение параметров.
   УстановитьЗначениеПараметраСКД(Компоновщик, "Дата", СтруктураНастроек.ПараметрыДанных.Дата);
   
   // Компоновка макета компоновки данных.
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Компоновщик.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
2 Alex_MA
 
15.02.12
16:02
апну
AdBlock убивает бесплатный контент. 1Сергей