Содержание:
1. Применение построителя отчетов
2. Настройки из текста запроса 1С
3. Пример разработки отчета 1С
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. Можно воспользоваться макетом, созданным разработчиком:
ПостроительОтчета.Макет = ПолучитьМакет("МакетОтчета");
Или автоматически сформированным макетом, со своими настройками:
Построитель.Макет = Неопределено;
Макет = Построитель.Макет;
Макет.Область().ВысотаСтроки=11;
Макет.Область().ЦветФона = Новый Цвет(100,100,100);
Макет.Область().ЦветТекста = Новый Цвет(222,222,222);
// Установка макета построителя отчета
Построитель.Макет = Макет;
4. Настройка отбора, который связан с полями ввода формы: номенклатура и период
Отбор = Построитель.Отбор;
если не Номенклатура.Пустая() тогда
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
Отбор.Добавить("Номенклатура");
КонецЕсли;
Отбор["Номенклатура"].Использование = Истина;
Отбор["Номенклатура"].Значение = Номенклатура;
Отбор["Номенклатура"].ВидСравнения = (Номенклатура.ЭтоГруппа,ВидСравнения.ВСпискеПоИерархии,ВидСравнения.Равно);
конецесли;
если не Период="" тогда
Если Отбор.Найти("Период") = Неопределено Тогда
Отбор.Добавить("Период");
КонецЕсли;
Отбор["период"].Использование = Истина;
Отбор["период"].Значение = Период;
Отбор["период"].ВидСравнения = ВидСравнения.БольшеИлиРавно;
КонецЕсли;
5. Некоторые настройки отчета в 1С 8.3
Построитель.ТекстЗаголовка="Отчет с использованием Запроса по периоду";
Построитель.ИзмеренияСтроки.Найти("Номенклатура").Макет = Макет.ПолучитьОбласть("Номенклатура");
Построитель.ВыводитьОбщиеИтоги = ложь;
Построитель.ВыводитьПодвалТаблицы = ложь;
Построитель.ВыводитьДетальныеЗаписи=Истина;
Построитель.ВыводитьШапкуТаблицы=Истина;
Построитель.ВыводитьОбщиеИтоги=Истина;
6. Запуск метод Вывести() (в табличный документ, или в соответствующий элемент формы).
ПостроительОтчета.Выполнить(); // выводит в отдельном окне
ПостроительОтчета.Вывести(ЭлементФормы.Диаграмма);// вывод в элемент формы диаграмму.
Специалист компании «Кодерлайн»
Ольга Волкова