1с построитель отчета группировка строк
Построитель отчетов — это объект, встроенного языка, предназначенный для динамического создания отчета в 1С 8.3 как программными, так и интерактивными средствами.
Основными областями применения построителя отчетов являются стандартные отчеты 1С и аналитические отчеты, произвольные выборки для обработки информации, создание отчетов пользователями без доработки в конфигурации.
В качестве источника данных для построителя отчета могут выступать: таблица значений, результаты запроса, область ячеек табличного документа, табличная часть, набор записей регистров (накопления, сведений, бухгалтерии, расчета).
1С Предприятие имеет особые расширения синтаксиса, предназначенные специально для построителя отчетов в 1С. Такие инструкции оформляются в фигурные скобки <. >. При обычном выполнении запроса они будут игнорироваться платформой. Механизм работы скобок прост: вне скобок прописывается текст запроса для построителя, в внутри – запрос для настроек.
2. Настройки из текста запроса 1С
Настройки формируются автоматически на основе исходного текста запроса 1С или же могут быть указаны явно в тексте запроса с использованием расширения языка запросов 1С.
Настройки включают в себя:
Можно предоставить пользователю возможность изменять настройки построителя отчета не с помощью табличных полей 1С 8.3, расположенных в форме, а с помощью полей ввода. Это может понадобиться, например, в тех случаях, когда пользователю нужно иметь возможность настроить лишь некоторые, заранее известные настройки построителя 1С. Например, даты формирования отчета в 1С, отбор по номенклатуре и т.д. В этом случае в форме можно разместить поля ввода и связать их со значениями соответствующих элементов отбора построителя отчета.
Для формирования табличного документа построитель отчета использует макет или созданный разработчиком, или генерируемый автоматически.
Построитель отчета 1С позволяет вывести данные в табличный документ или диаграмму.
Построитель отчетов может использоваться в тех случаях, когда СКД недоступна или существует вероятность, что она отработает неправильно.
При разработке отчетов 1С иногда возникает необходимость вывести отчет 1С, данные для которого не могут быть получены с помощью языка запросов 1С. Такое происходит, например, если для расчета данных в 1С используется некий сложный алгоритм, или же данные для вывода в отчет в 1С получаются не из информационной базы, а, например, из внешнего файла. В таком случае уместно использовать построитель отчета, так как он предоставляет возможность вывода данных для отчета из произвольного источника.
3. Пример разработки отчета 1С
Наш отчет будет выводить данные в элемент формы – табличный документ, а также в элемент формы – диаграмму. В отчете с использованием табличного документа мы настроим отбор по номенклатуре и (или) по периоду.
То есть в отчете можно будет посмотреть остатки по номенклатуре 1С, по периоду (условие больше или равно), и по номенклатуре и по периоду.
Итак, начнем.
1. Объявляем создание нового объекта типа ПостроительОтчета;
2. Источником данных мы выберем текст запроса 1С.
| ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
| ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ОстаткиНоменклатурыОстатки.СуммаОстаток КАК СуммаОстаток
| РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
|ИТОГИ СУММА(КоличествоОстаток), СУММА(СуммаОстаток) ПО
| Номенклатура КАК Номенклатура";
Конструкция ПостроительОтчета.ЗаполнитьНастройки(); Выполняет автоматическое заполнение настроек построителя из текста запроса.
Пример описания Таблицы значений в качестве источника данных.:
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЗначенийРезультат);
3. Можно воспользоваться макетом, созданным разработчиком:
Или автоматически сформированным макетом, со своими настройками:
Макет.Область().ЦветФона = Новый Цвет(100,100,100);
Макет.Область().ЦветТекста = Новый Цвет(222,222,222);
// Установка макета построителя отчета
4. Настройка отбора, который связан с полями ввода формы: номенклатура и период
если не Номенклатура.Пустая() тогда
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
если не Период="" тогда
Если Отбор.Найти("Период") = Неопределено Тогда
5. Некоторые настройки отчета в 1С 8.3
Построитель.ТекстЗаголовка="Отчет с использованием Запроса по периоду";
6. Запуск метод Вывести() (в табличный документ, или в соответствующий элемент формы).
ПостроительОтчета.Выполнить(); // выводит в отдельном окне
ПостроительОтчета.Вывести(ЭлементФормы.Диаграмма);// вывод в элемент формы диаграмму.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Построитель отчета - мощная штука для быстрого написания отчетов.
Однако иногда хочется использовать свои макеты, да и просто хотелось бы иметь "рыбу", которую можно было бы быстро использовать для написания отчета, особенно если данные берутся из таблицы значений.
Это именно такая "рыба".
Я предлагаю функцию обПостроительВывестиПоГруппировкам , которая занимается выводом таблицы значений с помощью построителя отчета с заданными группировками, итогами и параметрами группировок.
Итоги можно использовать любые - количество, сумма, среднее.
Пока еще не поддерживается сортировка, именно поэтому список параметров передается в виде структуры, чтобы можно было добавлять свои параметры.
Используется гибкое управление параметрами:
= Если не задан макет, то замена макета не производится
= Если не заданы параметры построителя, то они и не назначаются
= Может использоваться в качестве источника не только таблица значений, но и результат запроса
= Если не задан табличный документ, то она не выводится
Пример вызова функции:
Структура макета
Строки с уровнями именуются Уровень0, Уровень1, .
Колонки с уровнями именуются кУровень0, кУровень1, …
Детальная информация по строкам именуется кДетали.
Общие итоги именуются ОбщиеИтоги, шапка таблицы - ШапкаТаблицы, подвал таблицы - ПодвалТаблицы.
Может быть на картинке не заметно, но колонки с итогами содержат параметры, которые называются так же, как итоги в таблице значений, т.е. например "Сумма", "Остаток", "Количество".
Кроме измерений и итогов, можно выводить доп.параметры, например на рисунке виден параметр Адрес.
Замечания по коду
Пусть у нас есть некая таблица значений ТЗ.
Построитель отчета, привязанный к этой таблице значений, создается так:
Допустим, в списке значений спзГруппы у нас находится список колонок-группировок для отчета, в структуре спзИтоги - список колонок-итогов (колонки-итоги должны иметь явно указанный тип число, иначе не будет суммироваться итог).
Нужно указать, что колонки спзГруппы будут измерениями построителя - функция обПостроительОтчетаУстановитьИзмерения .
Нужно указать, что колонки спзИтоги будут итогами построителя и назначить им некоторую функцию итогов (Количество,Сумма) - функция обПостроительОтчетаУстановитьИтоги .
Затем вызывает заполнение настроек построителя:
Затем мы выполняем построитель и заполняем параметры вывода макета:
Теперь нужно подставить в построитель наш собственный макет. Но в макете построителя и в нашем названия групп могут не совпадать, поэтому нужно скорректировать названия. В переменной Макет хранится наш макет, мы его обработаем и подставим в макет построителя:
Построитель отчетов — это объект, встроенного языка, предназначенный для динамического создания отчета в 1С 8.3 как программными, так и интерактивными средствами.
Основными областями применения построителя отчетов являются стандартные отчеты 1С и аналитические отчеты, произвольные выборки для обработки информации, создание отчетов пользователями без доработки в конфигурации.
В качестве источника данных для построителя отчета могут выступать: таблица значений, результаты запроса, область ячеек табличного документа, табличная часть, набор записей регистров (накопления, сведений, бухгалтерии, расчета).
1С Предприятие имеет особые расширения синтаксиса, предназначенные специально для построителя отчетов в 1С. Такие инструкции оформляются в фигурные скобки <. >. При обычном выполнении запроса они будут игнорироваться платформой. Механизм работы скобок прост: вне скобок прописывается текст запроса для построителя, в внутри – запрос для настроек.
2. Настройки из текста запроса 1С
Настройки формируются автоматически на основе исходного текста запроса 1С или же могут быть указаны явно в тексте запроса с использованием расширения языка запросов 1С.
Настройки включают в себя:
Можно предоставить пользователю возможность изменять настройки построителя отчета не с помощью табличных полей 1С 8.3, расположенных в форме, а с помощью полей ввода. Это может понадобиться, например, в тех случаях, когда пользователю нужно иметь возможность настроить лишь некоторые, заранее известные настройки построителя 1С. Например, даты формирования отчета в 1С, отбор по номенклатуре и т.д. В этом случае в форме можно разместить поля ввода и связать их со значениями соответствующих элементов отбора построителя отчета.
Для формирования табличного документа построитель отчета использует макет или созданный разработчиком, или генерируемый автоматически.
Построитель отчета 1С позволяет вывести данные в табличный документ или диаграмму.
Построитель отчетов может использоваться в тех случаях, когда СКД недоступна или существует вероятность, что она отработает неправильно.
При разработке отчетов 1С иногда возникает необходимость вывести отчет 1С, данные для которого не могут быть получены с помощью языка запросов 1С. Такое происходит, например, если для расчета данных в 1С используется некий сложный алгоритм, или же данные для вывода в отчет в 1С получаются не из информационной базы, а, например, из внешнего файла. В таком случае уместно использовать построитель отчета, так как он предоставляет возможность вывода данных для отчета из произвольного источника.
3. Пример разработки отчета 1С
Наш отчет будет выводить данные в элемент формы – табличный документ, а также в элемент формы – диаграмму. В отчете с использованием табличного документа мы настроим отбор по номенклатуре и (или) по периоду.
То есть в отчете можно будет посмотреть остатки по номенклатуре 1С, по периоду (условие больше или равно), и по номенклатуре и по периоду.
Итак, начнем.
1. Объявляем создание нового объекта типа ПостроительОтчета;
2. Источником данных мы выберем текст запроса 1С.
| ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
| ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ОстаткиНоменклатурыОстатки.СуммаОстаток КАК СуммаОстаток
| РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
|ИТОГИ СУММА(КоличествоОстаток), СУММА(СуммаОстаток) ПО
| Номенклатура КАК Номенклатура";
Конструкция ПостроительОтчета.ЗаполнитьНастройки(); Выполняет автоматическое заполнение настроек построителя из текста запроса.
Пример описания Таблицы значений в качестве источника данных.:
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЗначенийРезультат);
3. Можно воспользоваться макетом, созданным разработчиком:
Или автоматически сформированным макетом, со своими настройками:
Макет.Область().ЦветФона = Новый Цвет(100,100,100);
Макет.Область().ЦветТекста = Новый Цвет(222,222,222);
// Установка макета построителя отчета
4. Настройка отбора, который связан с полями ввода формы: номенклатура и период
если не Номенклатура.Пустая() тогда
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
если не Период="" тогда
Если Отбор.Найти("Период") = Неопределено Тогда
5. Некоторые настройки отчета в 1С 8.3
Построитель.ТекстЗаголовка="Отчет с использованием Запроса по периоду";
6. Запуск метод Вывести() (в табличный документ, или в соответствующий элемент формы).
ПостроительОтчета.Выполнить(); // выводит в отдельном окне
ПостроительОтчета.Вывести(ЭлементФормы.Диаграмма);// вывод в элемент формы диаграмму.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
Построитель отчетов — это объект, встроенного языка, предназначенный для динамического создания отчета в 1С 8.3 как программными, так и интерактивными средствами.
Основными областями применения построителя отчетов являются стандартные отчеты 1С и аналитические отчеты, произвольные выборки для обработки информации, создание отчетов пользователями без доработки в конфигурации.
В качестве источника данных для построителя отчета могут выступать: таблица значений, результаты запроса, область ячеек табличного документа, табличная часть, набор записей регистров (накопления, сведений, бухгалтерии, расчета).
1С Предприятие имеет особые расширения синтаксиса, предназначенные специально для построителя отчетов в 1С. Такие инструкции оформляются в фигурные скобки <. >. При обычном выполнении запроса они будут игнорироваться платформой. Механизм работы скобок прост: вне скобок прописывается текст запроса для построителя, в внутри – запрос для настроек.
2. Настройки из текста запроса 1С
Настройки формируются автоматически на основе исходного текста запроса 1С или же могут быть указаны явно в тексте запроса с использованием расширения языка запросов 1С.
Настройки включают в себя:
Можно предоставить пользователю возможность изменять настройки построителя отчета не с помощью табличных полей 1С 8.3, расположенных в форме, а с помощью полей ввода. Это может понадобиться, например, в тех случаях, когда пользователю нужно иметь возможность настроить лишь некоторые, заранее известные настройки построителя 1С. Например, даты формирования отчета в 1С, отбор по номенклатуре и т.д. В этом случае в форме можно разместить поля ввода и связать их со значениями соответствующих элементов отбора построителя отчета.
Для формирования табличного документа построитель отчета использует макет или созданный разработчиком, или генерируемый автоматически.
Построитель отчета 1С позволяет вывести данные в табличный документ или диаграмму.
Построитель отчетов может использоваться в тех случаях, когда СКД недоступна или существует вероятность, что она отработает неправильно.
При разработке отчетов 1С иногда возникает необходимость вывести отчет 1С, данные для которого не могут быть получены с помощью языка запросов 1С. Такое происходит, например, если для расчета данных в 1С используется некий сложный алгоритм, или же данные для вывода в отчет в 1С получаются не из информационной базы, а, например, из внешнего файла. В таком случае уместно использовать построитель отчета, так как он предоставляет возможность вывода данных для отчета из произвольного источника.
3. Пример разработки отчета 1С
Наш отчет будет выводить данные в элемент формы – табличный документ, а также в элемент формы – диаграмму. В отчете с использованием табличного документа мы настроим отбор по номенклатуре и (или) по периоду.
То есть в отчете можно будет посмотреть остатки по номенклатуре 1С, по периоду (условие больше или равно), и по номенклатуре и по периоду.
Итак, начнем.
1. Объявляем создание нового объекта типа ПостроительОтчета;
2. Источником данных мы выберем текст запроса 1С.
| ОстаткиНоменклатурыОстатки.Номенклатура КАК Номенклатура,
| ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ОстаткиНоменклатурыОстатки.СуммаОстаток КАК СуммаОстаток
| РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
|ИТОГИ СУММА(КоличествоОстаток), СУММА(СуммаОстаток) ПО
| Номенклатура КАК Номенклатура";
Конструкция ПостроительОтчета.ЗаполнитьНастройки(); Выполняет автоматическое заполнение настроек построителя из текста запроса.
Пример описания Таблицы значений в качестве источника данных.:
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЗначенийРезультат);
3. Можно воспользоваться макетом, созданным разработчиком:
Или автоматически сформированным макетом, со своими настройками:
Макет.Область().ЦветФона = Новый Цвет(100,100,100);
Макет.Область().ЦветТекста = Новый Цвет(222,222,222);
// Установка макета построителя отчета
4. Настройка отбора, который связан с полями ввода формы: номенклатура и период
если не Номенклатура.Пустая() тогда
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
если не Период="" тогда
Если Отбор.Найти("Период") = Неопределено Тогда
5. Некоторые настройки отчета в 1С 8.3
Построитель.ТекстЗаголовка="Отчет с использованием Запроса по периоду";
6. Запуск метод Вывести() (в табличный документ, или в соответствующий элемент формы).
ПостроительОтчета.Выполнить(); // выводит в отдельном окне
ПостроительОтчета.Вывести(ЭлементФормы.Диаграмма);// вывод в элемент формы диаграмму.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
В этой статье я покажу, как в табличных документах 1С реализовывать группировку строк и колонок.
Группировка строк в табличном документе 1С
Для демонстрации создадим у обработки простой макет табличного документа с одной областью и с одним параметром области.
На основной форме обработки сделаем команду ВывестиГоризонтальнуюГруппировку, реквизит формы КоличествоЧисел (тип Число), и всё это разместим на форме.
При выполнении команды, я буду выводить ряд чисел с дробными частями. Для этого, создадим обработчик команды формы на клиенте и серверную процедуру, в которой будем заполнять табличный документ.
Получится такой код:
Подробно о формировании областей табличного документа читайте в статье:
Результат работы этого кода будет следующий:
Изменим этот макет: сделаем группировку целых чисел, а дробные числа будут с небольшим отступом.
Для того, чтобы дробные числа выводились с отступом изменим макет.
Откроем палитру свойств ячейки, в которой выводится параметр НомерСтроки.
В этой палитре нас интересует свойство АвтоОтступ. Установим в него значение.
На этом с макетом закончим. Доработаем код.
В этом коде мы применили методы НачатьАвтогруппировкуСтрок() и ЗакончитьАвтогруппировкуСтрок() перед тем как начали заполнять табличный документе, и после того как закончили. Кроме того, мы дополнили параметры метода Вывести табличного документе. Если в первом параметре указывается область которая будет выводиться в табличном документе, то во втором параметре указываем уровень группировки, в третьем – название группировки, а четвертом – булево значение, которое определяет, будет ли сворачиваться группировка или нет, после того, как она будет выведена.
Результат работы этого кода:
Группировка колонок в табличном документе 1С
Группировка колонок в табличном документе осуществляется по аналогии с группировкой строк. Для демонстрации создадим макет табличного документа, в котором сделаем вертикальную область с единственным параметром.
А также на основной форме обработки создадим команду формы, которую назовем «Вывести вертикальную группировку», и выведем её на форму.
Создадим обработчик команды и функцию в серверном контексте, которая формирует табличный документ с вертикальными областями, к которым применена группировка.
Смысл группировки вертикальных областей тот же, что и горизонтальных: используем методы НачатьАвтогруппировкуКолонок и ЗакончитьАвтогруппировкуКолонок перед выводом областей, а в методе Присоединить необходимо указать уровень группировки, название группы и признак того, будет развернута группа или нет, как и в методе Вывести.
Результат работы этого кода будет следующим:
Видео с бонусом! В этом бонусе я покажу, как сделать вывод иерархического справочника.
Другие статьи про табличные документы в 1С:
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Читайте также: