|
Макет Построителя отчета | ☑ | ||
---|---|---|---|---|
0
antiteror91
05.08.13
✎
13:10
|
Изучаю построитель отчета. Вижу макет в котором есть именованные облости. В предприятии макет красиво заполняется, но есть одно НО. Я не нахожу в конфигураторе где происходит заполнение этих областей, т.е. даже обращения не вижу к этим областям. Подскажите пожалуйста как происходит процесс заполнения макета. Я создал свой макет для моего отчета но не знаю каким образом и какие задать наименование областей чтобы макет заполнялся. Спасибо!
|
|||
1
Михаил Козлов
05.08.13
✎
13:13
|
В зависимости от конфигурации. Обычно в модуле "общего" отчета (УниверсальныйОтчет, ОтчетСписокКроссТаблица, ОтчетОстаткиИОбороты).
|
|||
2
antiteror91
05.08.13
✎
13:17
|
(1) да нет отет сделан вручную: вот что есть в модулях:
СтруктураПредставлениеПолей = Новый Структура("ФизЛицоНаименование,Физлицо,ИмяВидаРасчета,Организация,ПодразделениеОрганизации", "Работник", "Работник", "Вид расчета", "Организация", "Подразделение"); УправлениеОтчетами.ЗаполнитьПредставленияПолей(СтруктураПредставлениеПолей, ПостроительОтчета); ПостроительОтчета.Отбор.Добавить("Организация"); ПостроительОтчета.Отбор.Добавить("ПодразделениеОрганизации"); ПостроительОтчета.ВыводитьОбщиеИтоги = Истина; ПостроительОтчета.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Интерфейс); ПостроительОтчета.Макет = ПолучитьМакет("Макет"); ПостроительОтчета.ИзмеренияСтроки.Добавить("Организация"); ПостроительОтчета.ИзмеренияСтроки.Добавить("ПодразделениеОрганизации"); ПостроительОтчета.ИзмеренияСтроки.Добавить("Физлицо"); ПостроительОтчета.ИзмеренияКолонки.Добавить("Группа"); ПостроительОтчета.ИзмеренияКолонки.Добавить("ИмяВидаРасчета"); ПостроительОтчета.РазмещениеИзмеренийВКолонках = ТипРазмещенияИзмерений.Вместе; ПостроительОтчета.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе; ПустаяСтруктура = Новый Структура; это настроики. текст запроса не представляю. ну и процедура формирования отчета: ДокументРезультат.Очистить(); Макет = ПолучитьМакет("Макет"); ЗаголовокОтчета = Макет.ПолучитьОбласть("Заголовок"); ЗаголовокОтчета.Параметры.Период = "Период: " + ПредставлениеПериода(ДатаНач, ДатаКон, "ФП = Истина"); Если ПостроительОтчета.Отбор.Организация.Использование Тогда ЗаголовокОтчета.Параметры.Организация = "Организация: " + ПостроительОтчета.Отбор.Организация.Значение; КонецЕсли; Если ТолькоЗаголовок Тогда ДокументРезультат.Вывести(ЗаголовокОтчета); Возврат; КонецЕсли; СписокСчетаНалогов = Новый СписокЗначений; СписокСчетаНалогов.Добавить(ПланыСчетов.Хозрасчетный.КДЗПоПФ); СписокСчетаНалогов.Добавить(ПланыСчетов.Хозрасчетный.ОбязательстваПоМедСтрахованию); СписокСчетаНалогов.Добавить(ПланыСчетов.Хозрасчетный.ОбязательстваПоПНФизЛиц); ПостроительОтчета.МакетЗаголовкаОтчета = ЗаголовокОтчета; ПостроительОтчета.Параметры.Вставить("Прием", Перечисления.ПричиныИзмененияСостояния.ПриемНаРаботу); ПостроительОтчета.Параметры.Вставить("НачалоПериода", НачалоДня(ДатаНач)); ПостроительОтчета.Параметры.Вставить("КонецПериода", КонецДня(ДатаКон)); ПостроительОтчета.Параметры.Вставить("ВнутреннееСовместительство", Перечисления.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство); ПостроительОтчета.Параметры.Вставить("парамСписокСчетаНалогов" , СписокСчетаНалогов); ПостроительОтчета.Выполнить(); ПостроительОтчета.ОформитьМакет(); ПостроительОтчета.Вывести(ДокументРезультат); Ширина = ДокументРезультат.ШиринаТаблицы; ВысотаЗаголовка = 4; // удалим из документа итог по строкам - последняя колонка отчета Область = ДокументРезультат.Область(, Ширина, ВысотаЗаголовка + 1, Ширина); ДокументРезультат.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоГоризонтали); Для сч = 1 По Ширина Цикл Если ДокументРезультат.Область(ВысотаЗаголовка + 1, сч, ВысотаЗаголовка + 1, сч).Текст = "Я" Тогда // удалим из документа колонку "Я", соответствующую виртуальному виду расчета "Конечное сальдо" Область = ДокументРезультат.Область(, сч + 1, ВысотаЗаголовка + 1, сч + 1); Область.Разгруппировать(); Область = ДокументРезультат.Область(, сч, ВысотаЗаголовка + 1, сч); Область.Разгруппировать(); Область = ДокументРезультат.Область(, сч, ВысотаЗаголовка + 1, сч); ДокументРезультат.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоГоризонтали); КонецЕсли; КонецЦикла; Если ДокументРезультат.Область(ВысотаЗаголовка + 1, 3, ВысотаЗаголовка + 1, 3).Текст = "А" Тогда // удалим из документа колонку "А", соответствующую виртуальному виду расчета "Начальное сальдо" Область = ДокументРезультат.Область(, 4, ВысотаЗаголовка + 1, 4); Область.Разгруппировать(); Область = ДокументРезультат.Область(, 3, ВысотаЗаголовка + 1, 3); Область.Разгруппировать(); ДокументРезультат.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоГоризонтали); КонецЕсли; ДокументРезультат.ФиксацияСверху = ВысотаЗаголовка + 1; |
|||
3
Михаил Козлов
05.08.13
✎
13:23
|
Надо полагать в ПостроительОтчета.Вывести(...).
|
|||
4
antiteror91
05.08.13
✎
13:26
|
(3) ну у меня тоже такое предположение, но тогда возникает другой вопрос: если ПостроительОтчета.Вывести(...) стандартная операция, по какому принципу необходимо формировать наименования облостей чтоб отчет заполнился???
|
|||
5
Михаил Козлов
05.08.13
✎
13:28
|
Посмотрите макет "Макет" (ПолучитьМакет("Макет") и по аналогии.
|
|||
6
antiteror91
05.08.13
✎
13:34
|
(5) т.е. посмотреть макет генерируемый построителем??
|
|||
7
Михаил Козлов
05.08.13
✎
13:42
|
Нет, макет уже должен быть - посмотрите, как он устроен. Там должны быть несколько областей ("Заголовок", "ШапкаТаблицы", "ОформлениеИзмерений", "ОформлениеДеталей" и пр.).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |