|
Получение данных из отбора построителя отчета | ☑ | ||
---|---|---|---|---|
0
Mr Man
14.01.16
✎
17:48
|
УПП 1.3. Есть справочник ИсточникиДанныхДляРасчетовБюджетирования. Как получить данные из вкладки "Отборы"?
По ходу хранение этих отборов реализовано через построитель отчета. Как его получить данные из него, шагая по элементам справочника? |
|||
1
Mr Man
15.01.16
✎
13:14
|
Может кому то пригодится, решил так:
Если НЕ ЭлСпр.ЭтоГруппа Тогда СохраненнаяНастройка = ЭлСпр.НастройкиПостроителя.Получить(); ПостроительОтчета = Новый ПостроительОтчета(); ПостроительОтчета.Текст="ВЫБРАТЬ | СУММА(ТаблицаРегистра.СуммаОборот) КАК СуммаОборот, | СУММА(ТаблицаРегистра.СуммаУпрОборот) КАК СуммаУпрОборот |{ВЫБРАТЬ | ТаблицаРегистра.БанковскийСчетКасса.* КАК БанковскийСчетКасса, | ТаблицаРегистра.ВидДенежныхСредств.* КАК ВидДенежныхСредств, | ТаблицаРегистра.ПриходРасход.* КАК ПриходРасход, | ТаблицаРегистра.СтатьяДвиженияДенежныхСредств.* КАК СтатьяДвиженияДенежныхСредств, | ТаблицаРегистра.ДокументДвижения.* КАК ДокументДвижения, | ТаблицаРегистра.Контрагент.* КАК Контрагент, | ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ТаблицаРегистра.Сделка.* КАК Сделка, | ТаблицаРегистра.Проект.* КАК Проект, | ТаблицаРегистра.ДокументПланированияПлатежа.* КАК ДокументПланированияПлатежа, | ТаблицаРегистра.ДокументРасчетовСКонтрагентом.* КАК ДокументРасчетовСКонтрагентом, | ТаблицаРегистра.Организация.* КАК Организация, | ТаблицаРегистра.Период} |ИЗ | РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ТаблицаРегистра |{ГДЕ | ТаблицаРегистра.БанковскийСчетКасса.* КАК БанковскийСчетКасса, | ТаблицаРегистра.ВидДенежныхСредств.* КАК ВидДенежныхСредств, | ТаблицаРегистра.ПриходРасход.* КАК ПриходРасход, | ТаблицаРегистра.СтатьяДвиженияДенежныхСредств.* КАК СтатьяДвиженияДенежныхСредств, | ТаблицаРегистра.ДокументДвижения.* КАК ДокументДвижения, | ТаблицаРегистра.Контрагент.* КАК Контрагент, | ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ТаблицаРегистра.Сделка.* КАК Сделка, | ТаблицаРегистра.Проект.* КАК Проект, | ТаблицаРегистра.ДокументПланированияПлатежа.* КАК ДокументПланированияПлатежа, | ТаблицаРегистра.ДокументРасчетовСКонтрагентом.* КАК ДокументРасчетовСКонтрагентом, | ТаблицаРегистра.Организация.* КАК Организация, | ТаблицаРегистра.Период}"; ПостроительОтчета.ЗаполнитьНастройки(); ПостроительОтчета.УстановитьНастройки(СохраненнаяНастройка.НастройкиПостроителя,Истина,Ложь,Истина,Истина); //находим поле СтатьяДвиженияДенежныхСредств++ ПерезаписьВХран = Ложь; Если ПостроительОтчета.Отбор.Количество() <> 0 Тогда Для каждого СТрОтбора Из ПостроительОтчета.Отбор Цикл Если ТипЗнч(СТрОтбора.Значение) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств") Тогда Если ЗначениеЗаполнено(СТрОтбора.Значение.Код) Тогда прав = Сред(СТрОтбора.Значение.Код,2,СтрДлина(СТрОтбора.Значение.Код)); КодНовРод = ?(найти("0123456789",Сред(СТрОтбора.Значение.Код,1,1))> 0, НовСимвДляЦ + прав, НовСимвДляБ + прав); Иначе КодНовРод = ""; КонецЕсли; НайдСпр_Статей = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду(КодНовРод); СТрОтбора.Значение = ?(НайдСпр_Статей = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка(),СТрОтбора.Значение, НайдСпр_Статей); ПерезаписьВХран = Истина; КонецЕсли; КонецЦикла; КонецЕсли; //находим поле СтатьяДвиженияДенежныхСредств++-- Если ПерезаписьВХран Тогда СтруктураНастройки=Новый Структура; СтруктураНастройки.Вставить("НастройкиПостроителя",ПостроительОтчета.ПолучитьНастройки(Истина,Ложь,Истина,Истина)); СтруктураНастройки.Вставить("ПараметрыПостроителя",ПостроительОтчета.Параметры); ХранилищеДанных = Новый ХранилищеЗначения(СтруктураНастройки); ЭлСпр.НастройкиПостроителя=ХранилищеДанных; КонецЕсли; //СтатьяДвиженияДенежныхСредств-- КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |