gifts2017

Свой заголовок отчета СКД для обычного и управляемого приложения 8.2

Опубликовал Борис Глеков (BoricH) в раздел Программирование - Работа с интерфейсом

Речь идет о програмном формировании заголовка отчета нужного формата, как например
"Остатки товаров на складах. Отчет сформировал: Пользователь1 18.11.2010 15:44:16"

Это конечно не панацея, это скорее частный случай, но, думаю, он имеет право на существование и найдет свою аудиторию.
Прилагается пример отчета (для конфигурции "Библиотека стандартных подсистем")

Предлагается не использовать дополнительную группировку в СКД и макет в том же СКД для вывода "Своего" заголовка отчета, как http://infostart.ru/public/15702/ или http://www.forum.mista.ru/topic.php?id=330162. Дело в том, что при изменении группировок отчета пользователем, заголовок может сместиться, или вообще пропасть.. Кроме того (в моем случае в заголовок отчета было необходимо вывести поля Автор и время формирования), иногда необходимо вывести абсолютно разнообразную инфу в заголовок.

Кроме того я не рисую формы отчетов, так как в режиме управляемого приложения 1С довольно не плохо рисует их сама. По-этому у меня родилось другое решение: В модуле отчета можно использовать предопределенную процедуру

ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка).

О ЧУДО! Эта процедура имеет доступ к табличному документу, в который выводится результат компановки <ДокументРезультат>. ТАК ВЕДЬ ЭТО ПРЕДЕЛ МЕЧТАНИЙ! Остается только "Засунуть" в этот макет нужный нам заголовок, и 1С дальше выведет отчтет.

Я поступил так: в общие макеты засунул макет "ШапкаОтчета", в общем серверном модуле добавил экспортную процедуру, которая формирует заголовок отчета (в моем случае заголовок очтета имеет всегда одинаковую структуру, но разное заполнение) и подключил эту процедуру в модуле отчета к указанной выше процедуре. В результате у меня ВСЕГДА выводится заголовок, он типизирован, и заполняется програмно нужными мне данными, которые частично берутся из компановщика, а частично из других мест.

ЕСТЕСТВЕННО ЗАГОЛОВОК КАЖДЫЙ МОЖЕТ ИСПОЛЬЗОВАТЬ СВОЙ :)

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Пример отчета
.erf 9,10Kb
19.11.10
280
.erf 9,10Kb 280 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Эстер Коган (e.kogan) 26.11.10 14:02
А почему бы не...
КомпоновщикНастроек.Настройки.ПараметрыВывода.Элементы.Найти("Title").Значение=ТиповойЗаголовок+Символы.ПС+"Отчёт сформирован "+Строка(глЗначениеПеременной("глТекущийПользователь"))+" в "+Строка(ТекущаяДата());

Вызвать в любом моменте, где доступен компоновщик (ТиповойЗаголовок - какой-то обычный для этого отчёта)?
Чтобы с макетом не возиться.
2. Эстер Коган (e.kogan) 26.11.10 14:04
Кстааати! Что значит "Заголовок типизирован"? В смысле у него расшифровка есть?
3. Борис Глеков (BoricH) 29.11.10 02:21
(1) Можно конечно и так, но тогда надо играться с размерами шрифта и т.д. Я же не заморачивался и сделал макет. Формирование отчета в любом случае проходит на сервере. Замеры быстродействия "торможения" не показали.. Ну и на макете наглядней мне было..
(2) Нет. Типизированым я его обозвал потому, что он во всех отчетах имеет одинаковую структуру. Тоесть пользователям легче и приятней в него смотреть.
4. ediks (ediks) 15.02.11 15:46
Эффектно получилось. Автору респект и уважуха. Да-а-а, нужно учить матчасть.
5. Алексей Горнеев (gorneev) 12.11.11 18:14
Гениальная разработка, так держать
6. Ola_Z (Ola_z) 28.03.12 17:17
Попробовала я воспользоваться вашей идеей.Но увы, у меня не получилось. В ЗБУ при вызове ТиповыеОтчеты.СформироватьТиповойОтчет(....) очищается результат. Пришлось временно поправить общий модуль. Пока не придумаю что-нибудь еще.Да, я в макеты добавила макет шапки.Параметры из шапки вычисляю перед вызовом ТиповыеОтчеты.СформироватьТиповойОтчет(....)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа