Универсальный отчет + свой запрос = КАК?

1. darkinitr0 08.09.11 15:17 Сейчас в теме
Добрый день всем,
1. как встроить свой запрос в универсальный отчет? кто может поделиться кодом?
2. Почему в отчетах (на базе универсального) в УПП есть схема компоновки. Почему она не используется?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alexk-is 6546 08.09.11 15:42 Сейчас в теме
(1)
1. Про универсальный отчет
http://infostart.ru/public/84458/
http://infostart.ru/public/84519/
http://infostart.ru/public/84642/
http://infostart.ru/public/69707/ - пример динамического формирования параметров отчета

2. Потому, что универсальный отчет работает на построителе отчетов, а не на СКД
5. LeaNaeD 08.09.11 20:41 Сейчас в теме
(1)

На самом деле, все не так уж и сложно. Просто берете какой-нибудь стандартный отчет, работающий на универсальном отчете (например, "Валовая Прибыль" - в модуле отчета в процедуре УстановитьНачальныеНастройки() должен быть запрос). Сохраняете его в файл. Открываете, ищите в модуле отчета процедуру УстановитьНачальныеНастройки(), там в комментариях все достаточно подробно описано. Ну и переделываете потихоньку эту процедуру по аналогии. Посмотрите, как написан запрос, свой запрос делаете по аналогии, не забывая про комментарии а-ля

    |    //ПОЛЯ_СВОЙСТВА
    |    //ПОЛЯ_КАТЕГОРИИ




и поля-отборы-условия-сортировку-итоги построителя.

Ну и так далее можно просто сверху вниз идти и переделывать эту процедуру по аналогии с тем, чтов ней уже есть. В большинстве случаев достаточно только правильно написать запрос, указать, каким объектам будут присоединяться свойства, создать список показателей и текстового представления полей. Ну и конечно же переименовать сам отчет.

Есть еще важная штуковина, связанная с выбором периода в отчете

// Содержит значение используемого режима ввода периода.
// Тип: Число.
// Возможные значения: 0 - произвольный период, 1 - на дату, 2 - неделя, 3 - декада, 4 - месяц, 5 - квартал, 6 - полугодие, 7 - год
// Значение по умолчанию: 0
// Пример:
// УниверсальныйОтчет.мРежимВводаПериода = 1;




Можно также посмотреть отчеты, которые создаются без использования запроса, например "Продажи" для сравнения. Пардон заранее - описал для УТ, но чую, что в других конфигурациях все то же самое. Вообще, можете написать, что за отчет нужен, будем коллективно накручивать рейтинг, и всем хорощо, все довольны.



(3)
3. Следуя логии того что универ.отчет работает на простоителе отчета следует что он не использует СКД. Тогда зачем там схемы СКД?


Я так понимаю, разрабы поленились при переходе с 8.0 на 8.1 и так оно все и сейчас торчит (врать не буду, в некоторых новых конфигурациях оно используется). Работает же нормально ну и влезать тогда нечего. А ломать/перепахивать по ходу слишком много пришлось бы всякого разного. Как-то так.
ivantsov; user1087584; AnddnA; +3 Ответить
3. darkinitr0 08.09.11 17:06 Сейчас в теме
1. Генератор запросов у меня не запустился - валятся ошибки на переменную УКО. Не стал разбираться.
2. Может быть конец дня, но когда я вставил произвольный запрос в шаблон универ.отчета - не выводим ничего и нет ни каких настроек.
3. Следуя логии того что универ.отчет работает на простоителе отчета следует что он не использует СКД. Тогда зачем там схемы СКД?
4. alexk-is 6546 08.09.11 19:05 Сейчас в теме
(3)
3. Следуя логии того что универ.отчет работает на простоителе отчета следует что он не использует СКД. Тогда зачем там схемы СКД?
Можно картинку?
6. darkinitr0 09.09.11 22:51 Сейчас в теме
Спасибо, действительно в "Валовой прибыли" свой запрос,
а то я видимо потыкался в отчеты по остаткам товаров, а там все по регистрам.
7. darkinitr0 08.11.11 10:51 Сейчас в теме
Подскажите, кто нибудь реализовывал "простые" отчеты через универсальный отчет?
Под "простым" отчетом я имею совсем простой отчет :), допустим, отчет по свойствам договоров.


ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект КАК Объект,
    ЗначенияСвойствОбъектов.Свойство КАК Свойство,
    ЗначенияСвойствОбъектов.Значение КАК Значение
{ВЫБРАТЬ
    Объект.*,
    Свойство.*,
    Значение.*}
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.ДоговорыКонтрагентов
Показать


вот простой запрос, проще не куда)
а вот красивой его вывести не получается.
В целом надо просто по вертикали вывести договора, по горизонтали - свойства договоров, а в пересечении - значение свойств.
Но проблема в том что в запросе нет показателей и когда я делаю как описано выше, договора и свойства выводяться и значения их нет.

Как его побороть?
13. fnxash 10.02.14 16:18 Сейчас в теме
(7) Dark.iNiTro, вывод свойств в универсальном отчете предусмотрен уже. В параметрах только надо указать для каких полей надо выводить свойства. В типовых "Продажах" кажется такое реализовано для номенклатуры.
УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина;
...
Если УниверсальныйОтчет.ИспользоватьСвойстваИКатегории Тогда        
    УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("втИтоговаяТаблица.Контрагент", "Контрагент", "Контрагент", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты);
    УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("втИтоговаяТаблица.Номенклатура", "Номенклатура", "Номенклатура", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура);
    УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса);        
КонецЕсли;

Показать
8. Maks888 1 04.02.14 13:11 Сейчас в теме
Так вы его побороли?
У меня сейчас аналогичная задача:

Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Настройка общих параметров универсального отчета
    
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета";
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    
    // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    
    // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах";
    УниверсальныйОтчет.ИмяРегистра = "ФинансовыйПлан";
    
    // Содержит признак необходимости вывода отрицательных значений показателей красным цветом.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ОтрицательноеКрасным = Истина;
    
    // Содержит признак необходимости вывода в отчет общих итогов.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь;
    
    // Содержит признак необходимости вывода детальных записей в отчет.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
    
    // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь;
    УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Истина;       
    
    ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                 |    ЕСТЬNULL(ФинансовыйПланДвиженияОбороты.ФактОборот, 0) КАК ФактОборот,
                 |    ФинансовыйПланОстаткиИОбороты.ПериодПлана КАК ПериодПлана,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.ПериодПлана) КАК ПериодПланаПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.Состояние КАК Состояние,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.Состояние) КАК СостояниеПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.ПодразделениеОрганизации) КАК ПодразделениеОрганизацииПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.ПодразделениеНазначенияПлана КАК ПодразделениеНазначенияПлана,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.ПодразделениеНазначенияПлана) КАК ПодразделениеНазначенияПланаПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.СтатьяБюджета КАК СтатьяБюджета,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.СтатьяБюджета) КАК СтатьяБюджетаПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.ГруппаСтатьиБюджета КАК ГруппаСтатьиБюджета,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.ГруппаСтатьиБюджета) КАК ГруппаСтатьиБюджетаПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
                 |    ФинансовыйПланОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
                 |    ФинансовыйПланОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
                 |    ФинансовыйПланОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
                 |    ФинансовыйПланОстаткиИОбороты.СуммаОборот КАК СуммаОборот,
                 |    ФинансовыйПланОстаткиИОбороты.Регистратор КАК Регистратор,
                 |    ПРЕДСТАВЛЕНИЕ(ФинансовыйПланОстаткиИОбороты.Регистратор) КАК РегистраторПредставление,
                 |    ФинансовыйПланОстаткиИОбороты.Период КАК Период,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, ДЕНЬ) КАК ПериодДень,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, ДЕКАДА) КАК ПериодДекада,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
                 |    НАЧАЛОПЕРИОДА(ФинансовыйПланОстаткиИОбороты.Период, ГОД) КАК ПериодГод
                 |{ВЫБРАТЬ
                 |    ФактОборот,
                 |    ПериодПлана,
                 |    ПериодПланаПредставление,
                 |    Состояние.*,
                 |    СостояниеПредставление,
                 |    ПодразделениеОрганизации.*,
                 |    ПодразделениеОрганизацииПредставление,
                 |    ПодразделениеНазначенияПлана.*,
                 |    ПодразделениеНазначенияПланаПредставление,
                 |    СтатьяБюджета.*,
                 |    СтатьяБюджетаПредставление,
                 |    ГруппаСтатьиБюджета.*,
                 |    ГруппаСтатьиБюджетаПредставление,
                 |    СуммаНачальныйОстаток,
                 |    СуммаПриход,
                 |    СуммаРасход,
                 |    СуммаКонечныйОстаток,
                 |    СуммаОборот,
                 |    Регистратор.*,
                 |    РегистраторПредставление,
                 |    Период,
                 |    ПериодДень,
                 |    ПериодНеделя,
                 |    ПериодДекада,
                 |    ПериодМесяц,
                 |    ПериодКвартал,
                 |    ПериодПолугодие,
                 |    ПериодГод}
                 |ИЗ
                 |    РегистрНакопления.ФинансовыйПлан.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , ) КАК ФинансовыйПланОстаткиИОбороты
                 |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ФинансовыйПланДвижения.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ФинансовыйПланДвиженияОбороты
                 |        ПО ФинансовыйПланОстаткиИОбороты.ПодразделениеНазначенияПлана = ФинансовыйПланДвиженияОбороты.ПодразделениеНазначенияПлана
                 |            И ФинансовыйПланОстаткиИОбороты.СтатьяБюджета = ФинансовыйПланДвиженияОбороты.СтатьяБюджета
                 |            И ФинансовыйПланОстаткиИОбороты.ГруппаСтатьиБюджета = ФинансовыйПланДвиженияОбороты.ГруппаСтатьиБюджета
                 |            И ФинансовыйПланОстаткиИОбороты.ПериодПлана = ФинансовыйПланДвиженияОбороты.ПериодПлана
                 |ИТОГИ
                 |    СУММА(ФактОборот),
                 |    СУММА(СуммаНачальныйОстаток),
                 |    СУММА(СуммаПриход),
                 |    СУММА(СуммаРасход),
                 |    СУММА(СуммаКонечныйОстаток),
                 |    СУММА(СуммаОборот)
                 |ПО
                 |    ОБЩИЕ
                 |{ИТОГИ ПО
                 |    ФактОборот,
                 |    ПериодПлана,
                 |    ПериодПланаПредставление,
                 |    Состояние.*,
                 |    СостояниеПредставление,
                 |    ПодразделениеОрганизации.*,
                 |    ПодразделениеОрганизацииПредставление,
                 |    ПодразделениеНазначенияПлана.*,
                 |    ПодразделениеНазначенияПланаПредставление,
                 |    СтатьяБюджета.*,
                 |    ГруппаСтатьиБюджета.*,
                 |    ГруппаСтатьиБюджетаПредставление,
                 |    СуммаНачальныйОстаток,
                 |    СуммаПриход,
                 |    СуммаРасход,
                 |    СуммаКонечныйОстаток,
                 |    СуммаОборот,
                 |    Регистратор.*,
                 |    РегистраторПредставление,
                 |    Период,
                 |    ПериодДень,
                 |    ПериодНеделя,
                 |    ПериодДекада,
                 |    ПериодМесяц,
                 |    ПериодКвартал,
                 |    ПериодПолугодие,
                 |    ПериодГод}
                 |АВТОУПОРЯДОЧИВАНИЕ";
             
                 
    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
Показать



Но, к сожалению, не работает :-( Кто может помочь, почему?
9. a_alenkin 10.02.14 15:18 Сейчас в теме
Чем не устраивает СКД?
10. kot26rus 10.02.14 15:22 Сейчас в теме
СКД не всегда удобен для юзеров
11. a_alenkin 10.02.14 15:36 Сейчас в теме
(10) kotloff,
СКД не всегда удобен для юзеров

да ладно - посмтори типовые отчеты, которые сделаны на СКД
и для которых созданы нормальные общие формы отчета и редактирования вариантов
(у себя я правда их дорабатывал)
и у меня пользователи сами редактируют настройки отчетов, добавляют поля группировки
и все то что позволяет СКД
12. kot26rus 10.02.14 15:50 Сейчас в теме
(11) a_alenkin, ну а бывает задача наоборот - запретить юзерам ковыряться в настройках
14. fedor_p 23.11.18 13:31 Сейчас в теме
(11) а бывает что пользователь вообще не трогает настройки отчётов а пользуется тем что было давно настроено. Внедренцы кажется не понимают что бухгалтер человек который работает по многу лет на своём участке учёта , как работник на участке конвейера, ему каждый день нужны примерно одни и те-же данные . Сейчас столкнулись с тем что 1с зачем-то исковеркали настройки универсального отчёта, в Москве высоколобые спецы играются, а человек не может из за этого отчёт начальству получить который много лет делал.
15. Y_U_S 24 13.02.19 22:38 Сейчас в теме
(14) Они не исковеркали настройки, а просто удалили отчёт, который красиво передавал настройки в тот второй отчёт, про который вы пишите "исковеркали настройки". Всю работу всегда делал тот самый отчёт с не дружелюбными для пользователя настройками.
Посмею предложить решение: https://infostart.ru/public/1002984/
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот