Как быстро разработать красивый отчет, используя Универсальный отчет в прикладных решениях фирмы 1С

06.12.09

Разработка - Механизмы платформы 1С

Проблема создания красивого, функционального отчета актуальна для любого разработчика. Создать новый справочник, регистр накопления, документ, который двигает созданные тобой регистры, - не проблема, но как потом «родить» отчет, который будет работать, используя созданные тобой регистры? И не просто отчет, а отчет настраиваемый, с произвольными отборами и группировками, с приятным внешним видом?

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

Наименование Файл Версия Размер
Пример отчета Товары на остатках и в резерве с ценами
.erf 16,84Kb
1526
.erf 16,84Kb 1526 Скачать

Как быстро разработать красивый отчет используя Универсальный отчет в прикладных решениях фирмы 1С

 

Конфигурации: БП, УТ, УПП и прочие фирмы 1С на платформе 8.1

Данная статья рассчитана на начинающих и продвинутых программистов.

 

Проблема создания красивого, функционального отчета актуальна для любого разработчика. Создать новый справочник, регистр накопления, документ, который двигает созданные тобой регистры, - не проблема, но как потом «родить» отчет, который будет работать, используя созданные тобой регистры? И не просто отчет, а отчет настраиваемый, с произвольными отборами и группировками, с приятным внешним видом?

Я перепробовал все: традиционный вариант с циклами и отборами на форме, построитель отчета, компоновку данных. Делал вручную расшифровку, черт знает как еще извращался, но создание отчетов всегда занимало львиную долю времени.

В последнее время я использую Универсальный отчет в типовых решениях фирмы 1С.

 

В качестве примера рассмотрим задачу: Для прикладного решения 1С:Управление торговлей версии 10.3.7.9 создать отчет, показывающий остатки товара на выбранную дату, по складу (или складам), свободные и находящиеся в резерве, с ценами в выбранной цене и суммами остатков в выбранной цене. В отчете возможен отбор по складу, номенклатуре и реквизитам номенклатуры. В отчете возможны группировки по складам, номенклатуре и реквизитам номенклатуры. В отчет возможен вывод любых произвольных реквизитов номенклатуры. Замечу что задача не выдумана, вполне реальна.

 

Итак, что есть Универсальный отчет и с чем его едят. Откроем конфигурацию, раздел Отчеты. В разделе отчеты и находится объект «Универсальный отчет»:

 

 

Универсальный отчет - объект конфигурации, который можно использовать как самостоятельно, так и в других отчетах. Данный отчет присутствует во многих конфигурациях фирмы 1С: Управление торговлей, Бухгалтерия предприятия, Управление производственным предприятием и пр. Разбираться в его работе нет нужды, достаточно разобраться, как его можно использовать.

 

Откроем любой отчет, разработанный на его основе, и заглянем внутрь. Я открою отчет «Товары в резерве на складах», находящийся непосредственно перед Универсальным отчетом в разделе Отчеты. Если у кого из читателей возникают затруднения с тем, что бы данный отчет открыть, в конце статьи находится ссылка на готовый отчет.

 

Итак, сохраним данный отчет как внешний и откроем в конфигураторе:

 

 

Как видим, у данного отчета только один реквизит - Универсальный отчет. Зададим новое имя нашему отчету - «Товары на остатках и в резерве»:

 

 

Откроем форму отчета:

 

 

Форма отчета абсолютна безлика, нет даже названия в шапке. Зато есть две даты. Обратим внимание на это, ведь нам нужна одна дата. Но не спешим убирать одну из дат, это настраивается в модуле отчета, откроем его. Для этого закрываем форму, нажимаем «Действия - Открыть модуль объекта». Модуль объекта выглядит на диво лаконично, Вот он весь:

 

 

Обратим внимание на строки в конце модуля:

 

 

Собственно здесь настраивается то, как мы вводим период: 1 - на дату (как нам и нужно), 0 - произвольный период (в это случае будут две даты), неделя, декада и прочее. Оставим без изменения.

 

Теперь переходим к самой сложной части - формирование запроса к данным. Это единственное, что здесь может вызывать затруднения. Если по каким-либо причинам нужные данные не могут быть получены одним запросом, то универсальный отчет использовать нельзя. Но сегодня не тот случай, двигаемся далее.

 

Найдем функцию УстановитьНачальныеНастройки и посмотрим, что там внутри:

 

 

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

 

ТекстЗапроса = "...:

 

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

 

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

 

Замечание 1: Если у кого-то возникают вопросы вроде «Что такое левое соединение», то данные вопросы выходят за рамки статьи. Предполагается, что читатель знает язык SQL в той интерпретации, в которой он используется в платформе 1С 8.1.

 

Итак, переходим к запросу. Наведем мышь на текст запроса и нажмем правую клавишу мыши. В контекстном меню выберем пункт Конструктор запроса. Откроется следующее окно:

 

 

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

 

Очистим среднюю часть и выберем необходимые нам таблицы: Товары на складах остатки, Товары в резерве на складах остатки и Цены номенклатуры срез последних:

 

 

Заполним поля (правая часть). Из таблицы Товары на складах выберем поля Склад, Номенклатура, Характеристика номенклатуры, Серия номенклатуры, Количество остаток. Из таблицы Товары в резерве на складах выберем Количество остаток (это другой остаток - резерв), из таблицы Цены номенклатуры Тип цен и Цена:

 

 

Кнопкой  добавим два новых поля: Сумма на складе и Сумма в резерве (цена. помноженная на остаток на складе и остаток в резерве). После нажатия на указанную кнопку откроется окно в котором можно сконструировать нужное нам выражение:

 

 

 

Это Сумма на складе, аналогично, Сумма в резерве:

 

 

В итоге, в полях у меня получилось следующее:

 

 

Для таблиц Товары на складах, Товары в резерве на складах, Цены номенклатуры необходимо установить даты, на которые мы рассчитываем остатки и цены. Для этого выберем таблицу Товары на складах и нажмем кнопку  - параметры виртуальной таблицы. Откроется окно параметров. В строке Период напишем &ДатаКон:

 

 

Этим мы указали, что остатки будут рассчитываться на конец периода, который мы будем задавать при формировании отчета. Аналогично настроим для других таблиц.

 

Дальше, зададим псевдонимы для выбранных полей на закладке «Объединения / псевдонимы»:

 

 

Отредактированные псевдонимы выделяются черным. Псевдонимы, которые мы присвоили полям, запоминаем, это понадобится дальше.

 

Установим связи между таблицами на закладке «Связи»:

 

 

На закладке «Итоги» выберем числовые поля, - по ним будут рассчитываться итоги. По полю Цена берем максимум, по остальным - считаем суммы.

 

 

Теперь выберем те поля, которые будут использованы в настройках построителя.  Перейдем на закладку «Построитель». На закладке «Построитель» находятся еще пять закладок. На закладке «Поля» выберем те поля, которые будут использоваться при настройке отчета. В нашем случае выберем все поля:

 

 

Галочки в средней колонке «Использовать дочерние» означают, что мы можем выбирать не только Склад, Номенклатуру и т.п., но и любое дочернее поле - Тип склада у склада, ставку НДС, артикул у номенклатуры и т.д. Дочерние можем использовать только у сложных типов данных, у простых (Цена, Количество, Сумма) - нет.

 

На закладке «Условия» выберем те поля, на которые можно будет установить отбор. В нашем случае - поля Тип цен, Склад, Номенклатура:

 

 

На закладке «Порядок» выберем поля упорядочивания. Выберем поле  Номенклатура:

 

 

 

Ну и наконец, закладка «Итоги». Выберем Склад, Номенклатура, - по этим полям будут вычисляться итоги:

 

 

Обращаю внимание, и здесь есть колонка «Использовать дочерние», т.е. итоги можно будет вычислять и по реквизитам этих полей.

 

Нажимаем Ок, - наш запрос сформирован.

 

После текста запроса находится настройка Свойств и Категорий. Закомментируем для простоты:

 

 

Ниже находится раздел, в котором настраиваются представление полей. Настроим представления для полей Склад, Номенклатура, Характеристика номенклатуры, Серия номенклатуры, Тип цен:

 

 

При этом первое поле - то, как мы настроили представление на закладке «Объединения / псевдонимы», второе поле - то, как оно будет отображаться в отчете. Например характеристика в запросе указана как «ХарактеристикаНоменклатуры», а представление укажем «Характеристика номенклатуры».

 

Настроим вычисляемые поля, - показатели:

 

 

При этом первое поле - то, как мы настроили представление на закладке «Объединения / псевдонимы». Второе поле - то, как оно будет отображаться в отчете. Третье - будет ли данный показатель включен по умолчанию. Четвертое - формат поля. Пятое и шестое - наименование группы и представление (можно несколько полей объединить в одно поле).

Для поля Цена, - ставим формат Число 15.2, группа Цена. Для остатков - формат 15.3, группа Количество. Для сумм формат 15.2, группа Сумма.

 

Настроим предопределенные группировки:

 

 

Этими настройками мы установили то, что по-умолчанию, строки будут группироваться сперва по складу, затем по номенклатуре. Могли бы и не ставить, а настраивать в самом отчете, но я считаю, что по-умолчанию группировки должны быть. Аналогично, есть настройка и для колонок, но их использовать не будем.

 

Теперь предопределенные отборы:

 

 

Эти поля будут отображаться в быстрых отборах. Пути к данным должны быть те, которые мы указали при настройки построителя на закладке Отборы. Причем, на закладке Отборы строк может быть больше, чем в быстрых отборах.

 

Ну и наконец, дополнительные поля. Что это такое? Мы указали, что в отчете будем использовать Номенклатуру, а так же указали, что будем использовать любые дочерние поля этого поля. Если требуется указать, что обязательно будет выводится Артикул, то это будет дополнительным полем и мы должны были бы написать:

 

 

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

 

Собственно, это все. Можем запускать отчет. Сохраним изменения и откроем в режиме предприятия:

 

 

Как видите, дата одна и она не заполнена (расчет производится на конец текущего дня), три предопределенных отбора. Щелкнув по кнопке «Настройка» откроем настройки:

 

 

Есть показатели, настроены группировки. А если щелкнуть по кнопке «Расширенная настройка», то увидим в дополнительных полях Артикул:

 

 

Характеристику и Серию я выбрал сам. Выводиться данные поля будут с группировками (это у нас номенклатура) причем, показаны будут после Наименования.

 

Выберем Тип цены в отборе и сформируем отчет:

 

  

Замечание 2: В настройка запроса мы указали параметр ДатаКон. Кроме этого показателя есть еще три предопределенных: ДатаНач, ДатаНачала, ДатаКонца. Чем они отличаются? ДатаНачала и ДатаКонца это именно даты, первая - дата начала периода (если дата пустая, то начало ведения учета), вторая - дата конца периода (если дата пустая, то конец текущего дня). ДатаНач и ДатаКон - это границы периодов (дата + указание включения или исключения пограничного значения). Чем это грозит? К примеру, нужно отобрать документы по датам. Если в тексте запроса указать Документ.Дата >= &ДатаНачала, то все будет хорошо, если же сравнивать не с ДатаНачала, а с ДатаНач, то выполнение отчета будет прервано с ошибкой, ибо нельзя сравнивать Границу и Дату! Таблицы данных понимают все эти параметры.

 

Замечание 3: Если отчет строится как у нас На дату, то использовать можно показатели ДатаКон и ДатаКонца. Показатели ДатаНач и ДатаНачала будут указывать на начало ведения.

 

Замечание 4: В нашем отчете мы установили отбор по Типам цен. Немного подумав, можно заметить, что формировать отчет без выбора Типа цены смысла мало. Если мы забудем выбрать тип цены, отчет ругаться не будет, но толку от того, что окажется в колонках Цена, Сумма будет мало. Как с этим бороться? Можно вынести отбор типу цен на командную панель формы, в районе выбора даты, и запретить формировать отчет без выбора этого параметра. Но как указать в запросе? В параметрах виртуальной таблицы Цены номенклатуры укажем:

 

 

Процедура СформироватьОтчет должна быть такой:

 

 

ТипЦен должен быть реквизитом отчета, иначе этот параметр не будет виден в модуле объекта!

 

И на последок. Поначалу может показаться все слишком замороченным, но если составить план проделанных работ, то мы получим следующее:

  1. Указали настройку периода;
  2. Сформировали запрос и указали, какие поля мы будим настраивать построителем и как (по каким можно группировать данные, по каким сортировать, как итоги рассчитывать);
  3. Настроили представление полей;
  4. Задали начальные настройки.

Как видите, всего четыре пункта.

Надеюсь, кому-нибудь сгодится :)

 

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4444    dsdred    53    

70

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5275    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6394    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18464    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12074    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8799    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6271    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15965    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
98. ipyu 05.01.12 11:28 Сейчас в теме
Большое спасибо, очень познавательно.
99. пользователь 12.01.12 14:05
Сообщение было скрыто модератором.
...
100. пользователь 12.01.12 14:57
Сообщение было скрыто модератором.
...
101. chikov 17.01.12 16:30 Сейчас в теме
Большое спасибо! Очень толково и подробно.
102. alma-soft 19.01.12 13:45 Сейчас в теме
спасибо за пример, воспользовался им при внедрении УТ 10.3, требовался отчет по формированию остатков на складе с учетом резерва, и указанием типа цены,
103. Dysya 25.01.12 19:09 Сейчас в теме
Помогите, пожалуйста, с отчетом. Попробывала сделать. Цены номенклатуры с остатками в рознице. Есть остатки по Рознице Сумма по рознице, а цены пустые. Самое интересное, что в какой-то момент я их видела, потом удалила отчет, а в новом никак не могу сделать. Пожалуйста, оч нужна помощь!!!!
104. Dysya 26.01.12 10:38 Сейчас в теме
Все получилось! Спасибо! Оч полезная статья!
105. xbic 16 30.01.12 09:36 Сейчас в теме
106. Bomba1911 01.02.12 13:54 Сейчас в теме
Спасибо за статью. Все просто и понятно даже для такого новичка, как я.
Наконец-то я "подружился" с отчетами.
Уже пригодилось в доработке типового отчета.
107. Boudybuilder 35 13.02.12 00:57 Сейчас в теме
Действительно полезная статейка.
Да и у меня был прикол , что в зависимости од разных настроек иерархии менялся порядок строк... При чем тут иерархия не пойму. Но хаос присутствовал...
108. BalVlad 15.02.12 13:47 Сейчас в теме
После прочтения статьи для меня наконец-то все разложилось по полочкам в вопросе по отчетам. Спасибо!
109. Вася_Пупкин 3 16.02.12 10:18 Сейчас в теме
Материал неплохой, но все таки такой отчет по-моему все таки будет быстрее написать через СКД.
Да и курочить типовую помоему не особо правельно.
Хотя на вкус и цвет как говориться....
111. Flashill 990 25.02.12 08:53 Сейчас в теме
(109) Вася_Пупкин, тут не курочить типовую, тут скопировать типовой отчет и на копии провести изменения.
110. Вася_Пупкин 3 16.02.12 10:19 Сейчас в теме
113. Scukosan 28.02.12 12:32 Сейчас в теме
Спасибо за статью
Пользуюсь СКД для создания отчетов
интересно почитать как делали раньше)
114. 1c-newbee 28.02.12 22:34 Сейчас в теме
Плюсую, отлично все разжевано
115. wowkai 4 14.03.12 18:35 Сейчас в теме
как раз изучаю отчеты на СКД. спасибо за хороший и полезный материл. кинул на печать и в библиотечку)
116. Alexey55 19.03.12 08:57 Сейчас в теме
Спасибо за статью! очень доступно описано и очень вовремя!)
117. Паланик 8 18.04.12 10:53 Сейчас в теме
Еще бы рассказал суть, когда просто регистр передается в УО. А за статью спасибо!
118. BAMPER 05.06.12 21:05 Сейчас в теме
Шикарная статья =) Автору спасибо!!!
119. trumanl 12 19.06.12 12:23 Сейчас в теме
все очень понятно расписано! спасибо.
возможно стоит указать в статье, что возможен более простой вариант и без запроса, когда указывается имя одного регистра, по которому нужно получить необходимую информацию.
120. revril 18.11.12 19:19 Сейчас в теме
спасибо!Статья очень ценная!Скачаю отчет посмотрю как наглядно делать
121. grost 27.11.12 20:54 Сейчас в теме
Спасибо за статью. Материал помог разобраться в технологии УО, хочу также разобраться с СКД.
122. 26178_mail.ru 58 09.12.12 21:28 Сейчас в теме
Действительно полезная статейка.
Да и у меня был прикол , что в зависимости од разных настроек иерархии менялся порядок строк... При чем тут иерархия не пойму. СПАСИБО++++++++++
123. 26178_mail.ru 58 23.12.12 01:49 Сейчас в теме
Спасибо! Пригодилось!, на основании наколякол кое что.
124. Bukaska 140 23.12.12 02:02 Сейчас в теме
Отличная статья! Тоже поставила +++
125. Алпитон 24.12.12 06:21 Сейчас в теме
Взял готовый отчёт на основе УО и добавил в запрос поле. Если выполнить запрос в консоли запросов, в новом поле данные есть. А в отчёте данные не выходят. В процедуре УстановитьНачальныеНастройки новое поле описал при помощи "УниверсальныйОтчет.ДобавитьПоказатель". Наверно тут что-то неправильно. Как нужно оформлять новые поля?
126. vis_tmp 32 18.01.13 09:45 Сейчас в теме
"Аналогично, если у нас есть поля, не показатели, по которым мы не группируем данные, то в отчет они по умолчанию не попадут. Но мы можем указать их в качестве дополнительных полей что бы отображались."

Не могу понять как сделать дополнительное поле, которое на является реквизитом группировки, но оно выбрано в запросе из регистра.

Кто-нибудь делал так?
127. kosvi 04.03.13 19:51 Сейчас в теме
Хороший материал! Большое спасибо)
128. RocKeR_13 1317 08.04.13 10:29 Сейчас в теме
Спасибо за статью) Делал по данной схеме отчет по своему новому регистру (универсальный врал безбожно по остаткам) в УПП. Единственное: не хотел свойства добавлять вот тут
УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса);

ругался на неверный синтаксис в запросе. В итоге не стал особо заморачиваться, выцепил в отладке финальный текст запроса, поправил его руками и вставил вместо исходного текста запроса, закомментив строку добавления свойств и категорий.
129. Baibolaika 30.05.13 12:27 Сейчас в теме
Добрый день! Как сделать в таком отчете колонку, в поля которой можно вводить цифры например? Кто знает? помогите, везде уже искала, и уже начинаю сомневаться в универсальности отчета
130. Мастер1С 780 30.05.13 12:53 Сейчас в теме
Может, пора на СКД переходить?
Я уже все отчеты пишу в СКД.
131. Baibolaika 30.05.13 13:24 Сейчас в теме
(130) а в СКД возможно сделать такое?
132. Мастер1С 780 30.05.13 13:36 Сейчас в теме
(131) Иногда не получается сделать вывод в нужном виде, в этом случае приходится формировать вывод самостоятельно, используя СКД для отборов, каких-то настроек. А в целом очень мощный инструмент.
134. Baibolaika 30.05.13 14:24 Сейчас в теме
(132) понимаете у меня получается сделать редактируемые поля через ПостроительОтчета. А нужно сделать на чем нибудь более мобильном, пускай даже СКД. Помогите примерчиком, как сделать поле для ВВОДА ДАННЫХ?
136. sss999 48 17.10.13 11:31 Сейчас в теме
(134) Baibolaika, какой интересный у тебя отчет,он меня прям заинтересовал.
133. Sabfir 30.05.13 14:11 Сейчас в теме
Автору огромное респектище.
Вот как надо писать документацию к типовому функционалу.
Не смотря на любовь к платформе 1С и типовым конфигурациям, меня огорчает описание функционала типовых решений. Некоторый функционал просто не описан
Благодаря таким людям, как автор данной статьи, 1С из непонятного становиться простым и доступным.
135. kiv8008 25.06.13 15:13 Сейчас в теме
Отличная статья, все просто и эффективно. Автору респект.
137. rorotron 16.02.14 16:52 Сейчас в теме
Здравствуйте, спасибо за статью. Статья для помещения в закладки.

У меня по данной теме следующая проблема (типовая конфигурация УПП 8.2):

Из-за большого количества документов "Корректировка качества товаров" некоторые пользователи стали жаловаться, что им неудобно оценивать реальное количество приходов и расходов по номенклатуре с помощью отчета "Товары на складах"...

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

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

отчет отрабатывает верно только когда в группировках присутствует "Документ движения (регистратор)", иначе фильтр на тип регистратора, указанный в условии текста запроса не срабатывает и отчет выводит приход с расходом, как в типовом отчете.

Пробовал вставлять текст этого запроса в консоль запросов, убрав регистратор из полей отчета. Запрос отработал верно. Предполагаю, что проблема кроется где-то в особенностях работы Универсального отчета, а также Построителя.

Может кто-нибудь сталкивался с подобной задачей? Я конечно могу порекомендовать пользователям формировать отчет только с регистратором и затем сворачивать по предыдущей группировке "Номенклатура", чтобы скрыть движения, но хотелось бы найти решение получше.

Интересно услышать ваше мнение.
138. evn-zorin 32 16.02.14 17:08 Сейчас в теме
СКД самое оно, за несколько минут при знании СКД можно "слепить" очень даже годный отчёт.
139. droplet 81 03.04.14 10:58 Сейчас в теме
Спасибо автору.Последовательно, доступно, понятно. Недавно стала работать с 8, стараюсь делать отчеты на СКД но и этот инструмент пригодился (н-р многие отчеты в УПП построены на Универсальном). Прочитала статью и за 5 минут внесла изменения в стандартный отчет.
141. AlexO 135 27.07.14 21:10 Сейчас в теме
Статья статьей, но попробуйте добавить поле "Комментарий" (которое неограниченное) в отчет с запросами и подзапросами (и вездесуваемыми {}). Напрыгаетесь.
142. AlexO 135 27.07.14 21:17 Сейчас в теме
+ 141
да, еще и Регистратор сугубо только в Расшифровке появляется...
143. Tapochki-tmn 43 31.07.14 19:31 Сейчас в теме
Спасибо огромное!

Недавно "созрел" до попытки разобраться как работают типовые отчеты на основе универсального.
Сам запутался, а в публикации все очень подробно рассказано.
Пара моментов только осталась за кадром, а очень было бы полезно:

- как добавить группировки и отборы по свойствам и категориям

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

Побольше бы таких статей!
Еще раз, огромное спасибо!
144. Merlin12042009 05.08.14 23:51 Сейчас в теме
Вам бы преподавателем быть. Замечательная статья.Я хотела бы с вами посоветоваться насчет одного отчета.Возможно ли это?
145. СветикК 29.08.14 09:49 Сейчас в теме
СКД фирма 1С очень меняла, меняла, что сейчас путаешься в некоторых вещах, спасибо за статью.
146. Мастер1С 780 29.08.14 18:41 Сейчас в теме
Тем не менее, данный материал устарел. Изучайте СКД.
147. DiegoLidabo 11 31.03.17 14:49 Сейчас в теме
Спасибо, отличный пример!

Виктор, Прошу помощи. Переписываю отчет (Построитель) Просроченная дебиторская задолженность (уже готов), необходимы плюшки - красивости. Пытаюсь в настройках добавить показатель "Допустимое число дней задолженности" (для добавления использовал и УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить и УниверсальныйОтчет.ПостроительОтчета.ДоступныеПоля.Добавить ), но при выполнении получаю ошибку "не найдено поле "ДопустимоеЧислоДнейЗадолженности". Схожая проблема описана в http://odines.ru/thread3561.html
Тогда вопрос можно сформулировать по другому: Как программно Выполнить интрерактивное

"Конструктор запроса --> Построитель --> Поля"

или проблема решается вообще по другому?
Прикрепленные файлы:
148. Мастер1С 780 03.04.17 13:48 Сейчас в теме
(147) Пользуйтесь компоновкой. Я давно построителем не занимаюсь и вам не советую.
149. kondrat1C 55 25.09.17 17:41 Сейчас в теме
сколько не пробовал использовать конструкцию
УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>)

так и не получилось вывести дополнительные поля
150. tolyan_ekb 104 17.01.20 21:37 Сейчас в теме
С итогом по цене что-то можно сделать? И дублем заголовка "Цена" в шапке?
Оставьте свое сообщение