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. Настройка отбора, который связан с полями ввода формы: номенклатура и период
Код 1C v 8.х
Можно также сделать через интерактивное нажатие кнопки. На форму помещаем кнопку, в ее свойствах выставляем "ИсточникДействий" - нужное нам Табл. Поле, в событии "Нажатие" выбираем "Вывести список. "
Разместил: Gorus Версии: | 8.x | Дата: 06.05.2011 Прочитано: 14577
Похожие FAQ
QR код в 1С 20
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог Быстрая загрузка данных большого размера файла Excel в многомерный Массив 0
// OldthiefXXX Перем СерверExcel; Процедура КнопкаВыполнитьНажатие(Кнопка) ФайлХЛС=СерверExcel.Application.Workbooks.Open(ДокументХЛС); КонечнаяСтрокаДанных=ФайлХЛС.ActiveSheet.UsedRange.Rows.Count; КоличествоКолонокДанных=ФайлХЛС.ActiveSheet Внешние обработки, печатные формы, обработки по заполнению табличных частей 3
Справочник «Внешние обработки, печатные формы, обработки по заполнению табличных частей» содержит список произвольных обработок, произвольных отчетов, дополнительных печатных форм, обработок для заполнения ТЧ объектов, обработок, подключаемых к отч Выбор оптимального алгоритма для разбора строки в массив 0
Столкнулся с проблемой: ПолучитьСтрокуПоНомеру() медленно отрабатывает на входных данных 100 000 строк. Как сделать бытсрее? // Пример Defender aka LINN ВремяНачала = ТекущаяДата(); Сообщить(" Обработка начата: " + ВремяНачала); ТЗ = Новый Та Выбор периода, задать период 7
Посмотреть все результаты поиска похожих
Еще в этой же категории
Как быстро вывести таблицу значений в табличный документ? 88
ТекстЗапроса = " ВЫБРАТЬ * ИЗ Справочник.Пользователи" ; ЗапросаДанных = Новый Запрос(ТекстЗапроса); РезЗапроса = ЗапросаДанных.Выполнить().Выгрузить(); ТабДокумент = Новый ТабличныйДокумент; Построитель = Новый Построит Создание Таблицы значений и описание типов значений ее колонок 28
ТаблицаПериодов = Новый ТаблицаЗначений; ТаблицаПериодов.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число")); ТаблицаПериодов.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.СотрудникиОрганизаций")); ТаблицаП Удаление строк Таблицы Значений 27
// 1. Удаление строк согласно условию НулевыеСтроки = ТаблицаПослеПодмен.НайтиСтроки(Новый Структура(" Сумма" ,0)); Для каждого СтрокаТаблицы Из НулевыеСтроки Цикл ТаблицаПослеПодмен.Удалить(СтрокаТаблицы) КонецЦикла; // Нужно оставить стр Как скопировать, выгрузить данные из одной таблицы значений в другую? 11
Как скопировать или выгрузить данные из одной таблицы значений в другую таблицу значений? 1. Добавление, копирование строк из одной таблицы значений в другую таблицу значений: Для каждого СтрокаТЗ Из Таблица1 Цикл ЗаполнитьЗначенияСвойств(Таблица Объединение 2 таблиц значений 10
// Объединить 2 таблицы значения // тзОсновная - таблица к которой будут изменяться данные // тзПрисоединяемая - таблица из которой будут браться данные // стОтборОдинаковых - стурктура со списком полей по которым определяеться одинаковость запис Посмотреть все в категории Работа с Таблицей Значений
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто2 КАК ДоговорОбороты,
ХозрасчетныйОбороты.СуммаОборотДт КАК Расход,
ХозрасчетныйОбороты.СуммаОборотКт КАК Приход
ПОМЕСТИТЬ ТаблДоговоровОбороты
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(, , , **(Счет = &Счет)**, , , **(КорСчет = &КорСчет)**, ) КАК ХозрасчетныйОбороты
;
(4) вопрос именно в том, как в Универсальном отчёте организовать запрос к ТЗ ?
В Процедуре УстановитьначальныеНастройки() пишем:
ТаблицаДанных = СформироватьТаблицуДанных(); // здесь задаем только структуру таблицы, без самих данных
ИсточникДанных=Новый ОписаниеИсточникаДанных(ТаблицаДанных);
ИсточникДанных.Колонки.Сотрудник.Измерение=Истина;
ИсточникДанных.Колонки.Подразделение.Измерение=Ист ина;
ИсточникДанных.Колонки.Работал.Итог="СУММА(Работал )";
ИсточникДанных.Колонки.Отпуск.Итог="СУММА(Отпуск)" ;
УниверсальныйОтчет.ПостроительОтчета.ИсточникДанны х=ИсточникДанных;
УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь;
УниверсальныйОтчет.ПоказыватьЗаголовок=Истина;
УниверсальныйОтчет.мНазваниеОтчета="Отработано";
УниверсальныйОтчет.ДобавитьПоказатель("Работал","Р аботал", Истина);
УниверсальныйОтчет.ДобавитьПоказатель("Отпуск","От пуск", Истина);
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить("Сотрудник","Сотрудник");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить("Подразделение","Подразделение");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить("Работал","Работал");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить("Отпуск","Отпуск");
УниверсальныйОтчет.УстановитьПредставленияПолей(Ун иверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтро ки.Очистить();
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Подраз деление");
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Сотруд ник");
УниверсальныйОтчет.ПостроительОтчета.ИзмеренияКоло нки.Очистить();
Потом пишем функцию:
Функция СформироватьТаблицуДанных() // для формирования структуры таблицы
Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.ФизическиеЛи ца"));
ОписаниеТиповФизЛицо = Новый ОписаниеТипов(Массив);
Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.Подразделени я"));
ОписаниеТиповПодразделение = Новый ОписаниеТипов(Массив);
Массив = Новый Массив;
Массив.Добавить(Тип("Число"));
КЧ = Новый КвалификаторыЧисла(10,0);
ОписаниеТиповРабота = Новый ОписаниеТипов(Массив,,КЧ);
ТЗ2 = Новый ТаблицаЗначений;
ТЗ2.Колонки.Добавить("Сотрудник", ОписаниеТиповФизЛицо);
ТЗ2.Колонки.Добавить("Подразделение", ОписаниеТиповПодразделение);
ТЗ2.Колонки.Добавить("Работал",ОписаниеТиповРабота );
ТЗ2.Колонки.Добавить("Отпуск",ОписаниеТиповРабота) ;
Возврат ТЗ2;
КонецФункции
В процедуре формирования отчета пишет
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
// Перед формирование отчета можно установить необходимые параметры универсального отчета.
Если Не ЗначениеЗаполнено(УниверсальныйОтчет.ДатаНач)
ИЛИ Не ЗначениеЗаполнено(УниверсальныйОтчет.ДатаКон) Тогда
Предупреждение("Не задан период отчета!");
Возврат;
КонецЕсли;
ЗаполнитьТаблицуДанных(); // а в этой процедуре заполняем таблицу ТаблицаДанных чем нам надо. Она выполняется только когда мы запускаем формирование отчета, а функция СформироватьТаблицуДанных() - при открытии, поэтому она должна быть простая и быстрая.
УниверсальныйОтчет.ПостроительОтчета.Параметры.Вст авить("КонДата", КонецДня(Дата(УниверсальныйОтчет.ДатаКон)));
УниверсальныйОтчет.ПостроительОтчета.Параметры.Вст авить("НачДата", Дата(УниверсальныйОтчет.ДатаНач));
Построитель отчетов — это объект, встроенного языка, предназначенный для динамического создания отчета в 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. Настройка отбора, который связан с полями ввода формы: номенклатура и период
Читайте также: