1с построитель отчета ожидается выражение выбрать
Начнем с главного. Что такое «Универсальный отчет”. В типовых конфигурациях 80 процентов отчетов сделано на основе отчетов шаблонов, задающих настройки для отчета, названного фирмой 1С «Универсальный отчет», основанного на построителе отчетов.
Зачем нужен Построитель Отчетов (ПО), когда есть Система Компоновки Данных, скажете Вы, и будете правы. СКД намного мощнее, но очень сильно отличается интерфейсом и инструментарием настройки. Если это не смутит ни заказчика, ни пользователей, то выбор однозначен. Ниже я дам ссылки, на инструменты, которые вам помогут и с СКД.
Но что, если заказчик не хочет переучиваться на незнакомый интерфейс?
Или, если надо взять типовой универсальный отчет по регистру и быстренько прикрутить к нему связку с регистром сведений, например, да еще вставить ряд параметров, вытащить 12 различных новых реквизитов из серии номенклатуры в отборы, да задать всему этому новые представления?
Переучивать на новый интерфейс несколько сотен пользователей, привыкших к старому интерфейсу?
Из непрофессионалов генератор будет так же полезен той части аудитории, которая еще не освоила СКД, но которая уверенно пользуется консолью отчетов и хочет иметь способ быстро и легко получить профессионально выглядящие отчеты.
Универсальная консоль запросов позволит Вам визуальными средствами настроить запрос для Построителя отчета или Системы компоновки данных, настроить группировки, сортировки, отборы и другие параметры будущих отчетов, и промоделировать их вывод.
Расширение консоли «Экспорт отчета во внешний файл” позволит Вам несколькими нажатиями кнопок создать готовый отчет на СКД, по выбранному Вами варианту шаблона.
Я же представляю Вашему вниманию новое расширение к проекту «Универсальная консоль запросов”: «Генератор модуля универсального отчета” (ГМУО).
ГМУО позволяет несколькими нажатиями кнопок превратить запрос из консоли для построителя отчетов превратить в текст модуля универсального отчета. Далее, через буфер обмена текст в конфигураторе вставляется в модуль отчета шаблона и отчет готов к использованию!
Генератор сам создаст текст модуля, в котором будет прописан запрос из построителя отчетов, установлены параметры запроса, созданы настройки отчета по умолчанию, а также сгенерированы преставления на основе запроса с автоматической разбивкой по словам.
Проект универсальная консоль запросов давно не обновлялся автором. Вы можете скачать файлы проекта, самостоятельно сконвертировать его из 8.1 в 8.2 или воспользоваться моей конвертацией и небольшими исправлениями, предложенными мною и коллегами по infostart. Можете скачать только этот архив, внутри есть остальные файлы.
Очень надеюсь, что он Вам понравится.
Очень жду ваших комментариев и пожеланий.
Молочников Олег Spb . 2011.
2011-09-24 Внес исправления ошибок найденных пользователями инфостарта в архив "универсальной консоли отчетов"для 8.2.
Добавил в архив обновленный шаблон для СКД по диапазоном, с HTML -описанием. Рекомендую перекачать файл.
2011-06.05 - Сделал обработку генератора модуля универсального отчета для 8.1. Обновлены все файлы.
2011-06.02 - Исправил обработку генератора модуля универсального отчета, добавил в текст сгенирированного модуля настройки сортировки из построителя. Обновлены все файлы.
Работа построителя отчета и построителя запроса с произвольным источником данных
При разработке отчетов иногда возникает необходимость вывести отчет, данные для которого не могут быть получены с помощью языка запросов. Такая ситуация может возникнуть, например, если для расчета данных используется некий сложный алгоритм, или же данные, для вывода отчет получаются не из информационной базы, а, например из внешнего файла. Построитель отчета предоставляет возможность вывода отчета из произвольного источника данных.
В качестве источника данных для вывода отчета могут быть использованы:
- ТаблицаЗначений,
- РезультатЗапроса,
- ОбластьЯчеекТабличногоДокумента,
- Табличная часть,
- РегистрНакопленияНаборЗаписей ,
- РегистрСведенийНаборЗаписей,
- РегистрБухгалтерииНаборЗаписей,
- РегистрРасчетаНаборЗаписей.
Для того чтобы построитель отчета выводил отчет для произвольного источника данных, достаточно установить описание источника данных в свойство построителя ИсточникДанных . Свойство построителя отчета ИсточникДанных может содержать значение типа ОписаниеИсточникаДанных . Объект ОписаниеИсточникаДанных содержит сам источник данных, а также содержит описание колонок источника данных. Каждое описание колонки источника данных содержит:
- Имя - содержит имя колонки в источнике данных,
- ПутьКДанным - содержит описание зависимости колонок друг от друга. Колонка, чей путь к данным получен через точку от пути к данным другого поля, считается реквизитом другой колонки. Если поле содержит через точку слово Представление, то данное поле считается представлением для колонки, от пути к данным которого получается представление. Примеры. Если колонка "Номенклатура" имеет путь к данным "Номенклатура", а колонка "Код" имеет путь к данным "Номенклатура.Код", то данная колонка будет считаться реквизитом колонки "Номенклатура". Колонка с путем к данным "Номенклатура.Представление" будет считаться представлением для колонки "Номенклатура",
- Поле - признак того, что данная колонка может быть использована в качестве поля отчета,
- Порядок - признак того, что по данной колонке возможно упорядочивание,
- Отбор - признак того, что на данную колонку возможно накладывать отбор,
- Измерение - признак того, что данная колонка может быть использовано как группировка отчета,
- Итог - строка, содержащая выражение для расчета итога. Для построителя отчета выражение данной строки соответствует выражению для вычисления итога, используемому в языке запросов,
При установке источника данных объекту ОписаниеИсточникаДанных , описания колонок создаются и заполняются автоматически.
Объект ОписаниеИсточникаДанных имеет конструктор, в качестве параметра которого может быть передан источник данных, для которого создается описание, при этом свойство ИсточникДанных будет заполнено переданным источником данных, описания колонок будут заполнены информацией о колонках из источника данных.
Пример установки источника данных построителю отчета:
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЗначенийРезультат);
Дальнейшая работа с построителем отчета не отличается от работы с построителем отчета в режиме работы с запросом: построитель отчета предоставляет свою полную функциональность, за исключением вывода иерархических итогов. Кроме того, при работе с произвольным источником данных, у построителя отчета нельзя получить запрос, который будет использован для получения данных из информационной базы.
Работа построителя запроса с произвольным источником данных идентична работе с произвольным источником построителя отчета.
Пример использования построителя отчета с произвольным источником данных можно найти в универсальной обработке "Консоль анализа журнала регистрации".
Возникают ситуации, когда требуется считать данные с табличного документа и обработать их. Читать табличный документ по ячейкам утомительно и медленно, но существует способ чтения области ячеек в таблицу значений.
Способ основывается на использовании объекта ПостроительОтчета - это объект, позволяющий на основе заданного текста запроса или источника данных, а так же настроек, получить результат и вывести его в табличный документ или диаграмму.
1. Получаем область ячеек табличного документа, которую требуется поместить в таблицу значений. Получение области нужно задавать таким образом, что бы в неё входила строка заголовков колонок (см. рисунок 1), особенность работы объекта ПостроительОтчета.
Рисунок 1. Область ячеек табличного документа |
2. На основе области ячеек табличного документа создаем описание источника данных.
3. Создаем объект ПостроительОтчета, указываем источник данных вместо текста запроса и выполняем построение отчета.
Результат чтения данных из источника после вызова метода Выполнить() находится в свойстве Результат. Данное свойство содержит объект типа РезультатЗапроса, объект такого же типа возвращается при выполнении запроса.
4. Выгрузим результат в таблицу значений (см. рисунок 2), вызвав метод Выгрузить() объекта типа РезультатЗапроса.
Рисунок 2. Таблица значений, созданная на основании табличного документа |
Из очевидных минусов, значения колонок строкового типа. Так же объект ПостроительОтчета доступен только на сервере, придется гнать табличный документа с клиента на сервер.
Итоговый программный код
Обработку с реализацией данного способа можно скачать здесь.
Читайте также: