Создание простого отчета на скд. Создание простого отчета на скд Как делать отчеты в 1с 8.3

BSoD

В формирование отчетов происходит на основе движений по счетам бухгалтерского учета. В программе имеется большое количество встроенных отчетов с гибкой функциональностью.

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

    оборотно-сальдовая ведомость;

    оборотно-сальдовая ведомость по счету;

    анализ счета;

    карточка счета;

    обороты счета;

    анализ субконто.

Функционал программы позволяет настроить форму отчета под нужды организации. К общим принципам работы с отчетами в 1С 8.3 относится анализ данных и своевременный контроль ошибок, которые могут возникнуть. Основным отчетом, которым часто пользуются бухгалтеры, является «Оборотно-сальдовая ведомость». Здесь отражаются все движения товаров и денежных средств в разрезе всех счетов учета, в том числе и забалансовых. Прямо из формы отчета, двойным нажатием на нужное значение суммы, предоставляется возможность получения дополнительной детальной информации по любому счету за указанный период:

Каждый отчет можно настроить по своему усмотрению для удобства использования. Чтобы зайти в раздел настроек, нужно нажать «Показать настройки».

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

Для такого глубокого анализа данных либо для создания собственного отчета в программе 1С 8.3 существует «Универсальный отчет». Его возможности я и собираюсь рассмотреть в данной статье.

Общее описание универсального отчета в 1С 8.3

Для начала разберемся, где найти универсальный отчет? Если зайти в меню «Отчеты», а потом нажать ссылку «Универсальный отчет», мы увидим вот такое окно:

Вкратце пройдемся по его элементам управления.

С верхней строчкой закончили.

  • Ниже самая интересная кнопка – это «Показать настройки». Здесь лучше показать на примере.

Инструкция по настройке универсального отчета 1С 8.3

Так как мы работаем в программе 1С:»Бухгалтерия предприятия 3.0″, то прежде всего нас интересуют бухгалтерские регистры. В конфигурации 3.0 нам доступен только один – «бухгалтерский и налоговый учет». Выбираем его. Посмотрим обороты по 10.01 «Материалы» счету.

Получите 267 видеоуроков по 1С бесплатно:

Выбираем период. У меня это будет весь 2012 год. Далее нажимаем кнопку «Показать настройки»:

Чтобы получить наименования материалов, выберем группировку по 1-му субконто. Именно в нем хранится наименование, точнее, ссылка на номенклатуру.

Переходим на закладку «Отборы»:

Здесь нам нужно указать, что мы хотим видеть только счет 10.01.

При желании Вы можете указать здесь сколько угодно условий отбора.

Нажмем кнопку сформировать и посмотрим, что у нас получилось:

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

Заходим опять в настройки и сразу — на закладку «Показатели»:

Убираем флажки с тех колонок, которые нам выводить не надо.

На закладке «Сформировать» можно указать поле, по которому будет происходить сортировка. Я, например, хочу, чтобы у меня материалы вышли по алфавиту:

Прежде, чем начинать разговор об отчетности в 1С важно указать, что отчетность может быть трех видов:

  1. Регламентированной;
  2. Стандартной;
  3. Собственной.

Каждый из этих видов формируется на основании введенной в программу первичной документации и служит определенным целям.

Регламентированная отчетность — комплект законодательно утвержденных печатных форм и электронных документов, которые каждая организация периодически должна сдавать в контролирующие органы.

Собственная отчетность разрабатывается каждой организацией отдельно и служит для отображения итогов деятельности предприятия на различных этапах.

Стандартная отчетность представляет собой общеиспользуемые формы отображения хозяйственных операций.

Регламентированная отчетность

Все типовые конфигурации 1С предназначены не только для ведения учета и занесения хозяйственных операций, но и для формирования на основе внесенных данных отчетов для передачи в:

  • Налоговую службу;
  • Федеральную статистическую службу;
  • Различные фонды и надзирающие органы.

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

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

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

Создание и заполнение регламентированного отчета

Одним из наиболее старых и важных для отражения хозяйственной деятельности предприятия документов является «Бухгалтерский баланс». Актуальная на данный момент форма разработана в 2010 году в Министерстве Финансов Российской Федерации и утверждена приказом №66 от 02.06.2010. Согласно этому приказу, начиная с 2013 года все организации, осуществляющие деятельность на территории РФ должны ежегодно его сдавать в налоговые органы.

Для того, чтобы открыть необходимый регламентный отчет мы должны (в программе «Бухгалтерия 8.3») перейти в подсистему «Отчеты» и в меню «1С Отчетность» выбрать соответствующую команду (Рис.1)

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

В открывшейся форме (Рис.2) мы увидим:

  • Какие отчеты уже зарегистрированы в базе;
  • За какой период они создавались;
  • Вид отчета (первичный или корректирующий);
  • Состояние, в котором находится отчет (сдано, в работе, подготовлен).

Рис.2

С помощью соответствующих кнопок мы можем:

  1. Создать необходимый нам отчет;
  2. Загрузить его из файла, сохраненного на компьютере;
  3. Проверить, правильно ли сформирована выгрузка и соответствуют ли контрольные суммы заложенным в программе алгоритмам;
  4. Вывести на печать табличный документ, сформированный на основании внесенных данных;
  5. Создать и отправить файл выгрузки.

Необходимый нам «Бухгалтерский баланс» мы можем найти нажатием на кнопку «Создать». Результатом клика будет форма (Рис.3)
Рис.3

Если в открывшемся окне на закладке «Избранные» нет пункта «Бухгалтерская отчетность (с 2011 года)», нам придется перейти на закладку «Все» и выбрать этот документ.

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

Рис.4

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

Нажав на кнопку «Создать» мы откроем соответствующую форму (Рис.5).

Рис.5

Сразу следует обратить внимание на одно обстоятельство: «Бухгалтерская отчетность» — это не только «Бухгалтерский баланс», но еще и:

  • Отчет о финансовых результатах предприятия;
  • Отчет об изменениях капитала;
  • О движении денежных средств;
  • О целевом использовании средств и т.д.

И все эти отчеты можно сформировать нажатием одной кнопки «Заполнить» (Рис.6), выбрав «Все отчеты».

Рис.6

Для заполнения конкретного документа необходимо выбрать «Текущий».

Заполненная форма «Бухгалтерского баланса» представлена на Рис.7

Рис.7

В любое поле можно добавить собственные данные, нажав на команду «Добавить строку».

Все цифры, имеющиеся в ключевых полях можно расшифровать, кликнув на соответствующую кнопку в шапке.

Форма расшифровки дебиторской задолженности показана на Рис.8.

Рис. 8.

Двойной клик на любой сумме расшифровки открывает стандартный отчет «Оборотно-сальдовая ведомость по счету».

Стандартные отчеты

«Оборотно-сальдовая ведомость», «Анализ субконто», «Карточка счета», «Шахматная ведомость» и многие другие формы, позволяющие анализировать бухгалтерские данные, принято называть стандартными отчетами.

Рассмотрим принцип их работы на основании «Оборотно-сальдовой ведомости». Форма на Рис.1 показывает, что стандартные и регламентированные отчеты можно вызвать из одной подсистемы.

Откроем нужный нам объект (Рис.9)

Рис.9

Прежде, чем сформировать отчет пользователь может задать период, данные за которой будут приниматься во внимание при заполнении формы, а так же произвести его более тонкую настройку (нажатием на кнопку «Показать настройку»)

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

Рис.10

Рассмотрим подробнее эту структуру:

  1. Группировка – установленная галочка «По субсчетам», показывает, что форма будет содержать данные в разрезе не только основных счетов, но и их подгрупп;
  2. Отбор – здесь пользователь может указать по какой организации, подразделению или счету он хочет видеть данные, а также определить необходимость вывода информации по забалансовым счетам;
  3. Показатели – определяется, будут ли выводиться цифры по бухгалтерскому или налоговому учету;
  4. Развернутое сальдо – по каким счетам и субсчетам требуется вывод развернутой информации;
  5. Дополнительные поля – определяют внешний вид формы;
  6. Оформление – надо ли выделять красным отрицательные величины и уменьшать автоотступ.

Как и в регламентированном отчете «Бухгалтерский баланс» в оборотке можно вызвать форму расшифровки того или иного значения.

Собственные отчеты

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

  • Универсальный отчет;
  • Схема компоновки данных (СКД).

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

Универсальный отчет менее универсален, но намного проще в работе, его можно вызвать из той же подсистемы. На Рис.11 нами показан внешний вид этого объекта

Рис.11

Что мы видим:

  • Стандартный выбор периода;
  • Тип объекта, по которому мы хотим вывести информацию (в данном случае – регистр накопления, но может принимать значения справочник, регистр сведений, документ, регистр бухгалтерии);
  • Конкретное наименование объекта метаданных («ЕСН сведения о доходах»);
  • Таблица, к которой мы обращаемся – в данном случае «Обороты» (для регистров накопления может также принимать значения «Остатки» и «Остатки и обороты»).

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

СКД расшифровывается как система компоновки данных. СКД - механизм платформы 1С для разработки отчетов. Отчет создается без необходимости писать программный код. С помощью определенного конструктора и настроек, произведенных в нем, программист задает желаемый результат, система компоновки данных это понимает и выводит этот результат пользователю. Если потребовалось что-то изменить в отчете, достаточно вновь обратиться к конструктору, внести необходимые изменения и измененный отчет готов. Минус СКД в том, что его настройки достаточно сложны и не все пользователи усваивают их быстро.

Какова технология создания отчета СКД:

Написать запрос 1С в СКД, который обеспечивает получение данных

Указать СКД роль полей (вычисляемые поля, ресурсы)

Ввести настройки СКД по умолчанию.

Пользователю остается возможность изменить множество настроек по своему желанию.

СКД имеет значительное преимущество как для пользователя, так и для программиста:

Программист - избавляет от написания программы для выполнения отчета и настроек

Пользователь - получает значительный доступ к настройкам отчета.

Во всех новых конфигурациях 1С все отчеты будут использованы только на СКД 1С.

Создание отчета.

Выберите меню Файл -> Новый. Выберите тип файла - Новый отчет.

Создается новый отчет. Создадим новую схему СКД по кнопке Открыть схему компоновки данных.

Создание запроса для отчета.

Источников данных для СКД 1С может быть множество. Чтобы использовать, например, два отдельных запроса - добавьте сначала «Набор данных - объединение», а потом несколько запросов. В нашем примере мы будем использовать запрос.

Запрос строится с помощью Конструктора запроса. Работа с конструктором запроса в СКД ничем не отличается от обычной.

В результате формирования запроса, СКД создаст список доступных к использованию полей и заполнит им по умолчанию наименования. Наименование можно изменить.

Настройки СКД.

На закладке Ресурсы укажем те поля, которые будут суммироваться для итогов. Итоги по ресурсам можно рассчитывать при помощи функций языка выражений СКД - Сумма(), Среднее(), Максимум(), Минимум() и Количество(). По умолчанию Сумма.

Построение виртуальных таблиц регистров бухгалтерии, регистров накопления, регистров сведений зависит от заданной даты. СКД создана так, что если в основе отчета лежит виртуальная таблица, тогда необходимо дать пользователю выбрать, за какой интервал или на какую дату формировать отчёт. Если в запросе выбрана виртуальная таблица остатков или виртуальная таблица регистров сведений, тогда СКД автоматически добавляет параметр с названием «Период».

Основная настройка производится на закладке Настройки.

Воспользуемся Конструктором настроек. Выведем данные в список.

Выберем нужные поля.

Группировка. Выберем группировку по номенклатуре.

Сортировка по полю Номенклатура по возрастанию.

Результат настройки СКД выглядит следующим образом.

На вложенной закладке “Параметры” для параметра “Период” установим флаг “Включать в пользовательские настройки”. После выполнения данной настройки параметры будут отображаться в основой форме отчета.

Сохраним отчет.

Формирование СКД.

Откроем отчет в 1С:Предприятие. Зададим нужный период и сформируем отчет.

Отчет сформирован!

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

В платформе «1С:Предприятие» за построение отчётов отвечает механизм под названием «Система компоновки данных» (сокращенно СКД). В этой статье мы постараемся дать краткое описание идеи и архитектуры механизма СКД и его возможностей.


СКД – это механизм, основанный на декларативном описании отчетов. СКД предназначен для построения отчетов и для вывода информации, имеющей сложную структуру. Кстати, помимо разработки отчетов механизм СКД также используется в «1С:Предприятии» в динамическом списке , средстве показа списочной информации с богатой функциональностью (показ плоских и иерархических списков, условное оформление строк, группировки и т.п.).

Немного истории

В самой первой версии платформы «1С:Предприятие 8», версии 8.0, отчеты делались так:
  1. Писался один или несколько запросов на языке запросов 1С (SQL-подобный язык, подробнее о нем ниже).
  2. Писался код, который переносил результаты выполненных запросов в табличный документ или в диаграмму. Код также мог делать работу, которую в запросе сделать невозможно – например, вычислял значения, используя встроенный язык 1С.
Подход прямолинейный, но не самый удобный – визуальных настроек минимум, все приходится программировать «врукопашную». А один из козырей на тот момент совсем новой платформы «1С:Предприятие 8» - это минимизация в прикладном решении объема кода, который нужно писать вручную, в частности, за счет визуального проектирования. Логично было бы пойти этим же путем и в механизме построения отчетов. Что и было сделано путем разработки нового механизма - Системы Компоновки Данных.

Одной из идей, легших в основу СКД, была гибкость и настраиваемость отчетов, причем доступная как разработчику, так и конечному пользователю. В идеале хотелось бы дать доступ конечному пользователю к тому же набору инструментов для дизайна отчета, что и разработчику. Логично было бы сделать единый набор инструментов, доступный всем. Ну а раз инструменты предполагают участие конечного пользователя – значит, нужно использование программирования в них убрать до минимума (лучше всего – устранить совсем), и по максимуму использовать визуальные настройки.

Постановка задачи

Задача перед командой разработки стояла такая – сделать систему создания отчетов, основанную не на алгоритмическом (т.е. через написание кода), а на декларативном подходе к созданию отчетов. И мы считаем, что задачу успешно решили. По нашему опыту, около 80% требуемой отчетности может быть реализована с помощью СКД без единой строчки кода (за исключением написания формул вычисляемых полей), по большей части - через визуальные настройки.
Разработка первой версии СКД заняла около 5 человеко-лет.

Два языка

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

Язык запросов

Язык запросов основан на SQL и легко осваивается знающими SQL. Пример запроса:

Легко видеть аналоги стандартных для SQL-запроса секций - SELECT, FROM, GROUP BY, ORDER BY.

При этом язык запросов содержит значительное количество расширений, ориентированных на отражение специфики финансово-экономических задач и на максимальное сокращение усилий по разработке прикладных решений:

  • Обращение к полям через точку. Если поля какой-либо таблицы имеют ссылочный тип (хранят ссылки на объекты другой таблицы), разработчик может в тексте запроса ссылаться на них через ".", при этом количество уровней вложенности таких ссылок система не ограничивает (например, ЗаказКлиента.Соглашение.Организация.Телефон).
  • Многомерное и многоуровневое формирование итогов. Итоги и подитоги формируются с учетом группировки и иерархии, обход уровней может выполняться в произвольном порядке с подведением подитогов, обеспечивается корректное построение итогов по временным измерениям.
  • Поддержка виртуальных таблиц. Виртуальные таблицы, предоставляемые системой, позволяют получить практически готовые данные для большинства прикладных задач без необходимости составления сложных запросов. Так, виртуальная таблица может предоставить данные по остаткам товаров в разрезе периодов на какой-то момент времени. При этом виртуальные таблицы максимально используют хранимую информацию, например, ранее рассчитанные итоги и т.д.
  • Временные таблицы. Язык запросов позволяет использовать в запросах временные таблицы. С их помощью можно повысить производительность запросов, в некоторых случаях снизить количество блокировок и сделать текст запроса более легким для восприятия.
  • Пакетные запросы. Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами - таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных точкой с запятой (";"). Запросы в пакете исполняются один за другим. Результатом выполнения пакетного запроса, в зависимости от используемого метода, будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.
  • Получение представлений ссылочных полей. Каждая объектная таблица (в которой хранится справочник или документ) имеет виртуальное поле - «Представление». Это поле содержит текстовое представление объекта и облегчает работу создателя отчетов. Так, для документа это поле содержит всю ключевую информацию - название типа документа, его номер и дату (например, «Продажа 000000003 от 06.07.2017 17:49:14»), избавляя разработчика от написания вычисляемого поля.
  • и др.
Механизм запросов автоматически модифицирует запрос с учетом ролей , к которым принадлежит пользователь, от имени которого выполняется запрос (т.е. пользователь увидит только те данные, которые имеет право видеть) и функциональных опций (т.е. в соответствии с настроенной в прикладном решении функциональностью).

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

Например:

  • ВЫБРАТЬ. В этом предложении описываются поля, которые пользователь сможет выбирать для вывода. После данного ключевого слова через запятую перечисляются псевдонимы полей из основного списка выборки запроса, которые будут доступными для настройки. Пример: {ВЫБРАТЬ Номенклатура, Склад}
  • ГДЕ. Описываются поля, на которые пользователь сможет накладывать отбор. В данном предложении используются поля таблиц. Использование псевдонимов полей списка выборки недопустимо. Каждая часть объединения может содержать собственный элемент ГДЕ. Примеры: {ГДЕ Номенклатура.*, Склад }, {ГДЕ Документ.Дата >= &ДатаНачала, Документ.Дата <= &ДатаКонца}
  • и др.
Пример использования расширений:

Язык выражений компоновки данных

Язык выражений компоновки данных предназначен для записи выражений, используемых, в частности, для описания выражений пользовательских полей. СКД позволяет определять в отчете пользовательские поля, используя либо собственные выражения, либо наборы вариантов с условиями их выбора (аналог CASE в SQL). Пользовательские поля являются аналогом вычисляемых полей. Они могут задаваться как в конфигураторе, так и в режиме «1С:Предприятие», но в выражениях пользовательских полей нельзя использовать функции общих модулей. Поэтому пользовательские поля предназначены скорее для пользователя, чем для разработчика.

Пример:

Процесс создания отчета на СКД

При создании отчета нам нужно создать макет, определяющий, как данные будут отображаться в отчете. Можно создать макет, базирующийся на схеме компоновки данных. Схема компоновки данных описывает суть данных, которые предоставляются отчету (откуда получать данные и как можно управлять их компоновкой). Схема компоновки данных представляет собой базу, на основе которой могут быть сформированы всевозможные отчеты. Схема компоновки данных может содержать:
  • текст запроса с инструкциями системы компоновки данных;
  • описание нескольких наборов данных;
  • подробное описание доступных полей;
  • описание связей между несколькими наборами данных;
  • описание параметров получения данных;
  • описание макетов полей и группировок;
  • и др.

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

Итогом запуска конструктора запросов будет текст запроса (на языке запросов «1С:Предприятия»). Этот текст можно при необходимости скорректировать вручную:

Наборов данных в схеме компоновки данных может быть несколько, наборы данных могут быть связаны в макете произвольным образом, могут быть добавлены вычисляемые поля, заданы параметры отчета и т.п. Стоит упомянуть интересную особенность работы механизма запросов в 1С:Предприятии. Запросы в конечном итоге транслируются в диалект SQL, специфичный для СУБД, с которой непосредственно работает приложение. Мы вообще стараемся задействовать возможности серверов СУБД по максимуму (нас ограничивает то, что мы используем только те возможности, которые есть одновременно во всех поддерживаемых платформой «1С:Предприятие» СУБД – MS SQL, Oracle, IBM DB2, PostgreSQL). Таким образом, на уровне запроса в вычисляемых полях мы можем использовать только те функции, которые транслируются в SQL.

А вот на уровне схемы компоновки данных мы уже можем добавлять пользовательские поля и использовать в них функции на встроенном языке разработки 1С (в том числе и написанные нами), что сильно расширяет возможности отчетов. Технически это выглядит так – всё, что можно транслировать в SQL, транслируется в SQL, запрос выполняется на уровне СУБД, результаты запроса помещаются в память сервера приложений 1С и СКД вычисляет для каждой записи значения вычисляемых полей, чьи формулы написаны на языке 1С.


Добавление пользовательских полей

В отчет можно добавить произвольное количество таблиц и диаграмм:


Дизайнер отчетов


Отчет во время выполнения

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

Коротко описать процесс построения и формирования отчета можно так:

  • Разработчик в design time с помощью дизайнера (или в runtime с помощью кода) определяет схему компоновки данных:
    • Текст запроса/запросов
    • Описание вычисляемых полей
    • Связи между запросами (если их несколько)
    • Параметры отчета
    • Настройки по умолчанию
    • И т.д.
  • Вышеописанные настройки сохраняются в макете
  • Пользователь открывает отчет
    • Возможно, делает дополнительные настройки (например, меняет значения параметров)
    • Нажимает кнопку «Сформировать»
  • Настройки пользователя применяются к схеме компоновки данных, определенной разработчиком.
  • Формируется промежуточный макет компоновки данных, содержащий в себе инструкции, откуда получать данные. В частности, корректируются запросы, заданные в макете. Так, из запроса удаляются поля, которые не используются в отчете (это делается с целью минимизировать объем получаемых данных). В запрос добавляются все поля, участвующие в формулах вычисляемых полей.
  • В дело включается процессор компоновки данных. Процессор компоновки выполняет запросы, осуществляет связь наборов данных, рассчитывает значения вычисляемых полей и ресурсов, выполняет группировку. Словом, делает все расчеты, которые не были выполнены на уровне СУБД.
  • Процессор вывода данных запускает запрос на исполнение и выводит полученные данные в табличный документ, диаграмму и т.п.


Процесс формирования отчета механизмом СКД

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

Пользовательские настройки

Весь инструментарий СКД доступен как разработчику, так и конечному пользователю. Но практика показала, что конечного пользователя часто пугает обилие возможностей инструмента. Тем более что в большинстве случаев вся мощь настроек конечному пользователю и не нужна – ему достаточно иметь быстрый доступ к настройке одного-двух параметров отчета (например, периода и контрагента). Начиная с определенной версии платформы у разработчика отчета появилась возможность отметить, какие настройки отчета доступны пользователю. Делается это с помощью флажка «Включать в пользовательские настройки». Также у настроек отчета появился флаг «Режим отображения», принимающий одно из трех значений:
  • Быстрый доступ. Настройка будет выведена непосредственно в верхнюю часть окна отчета.
  • Обычный. Настройка будет доступна через кнопку «Настройки».
  • Недоступный. Настройка будет недоступна конечному пользователю.


Режим отображения настройки в design time


Отображение настройки в режиме «Быстрый доступ» во время выполнения (под кнопкой «Сформировать»)

Планы развития

Одно из приоритетных направлений в развитии СКД для нас – упрощение настроек пользователя. Наш опыт показывает, что для части конечных пользователей работа с пользовательскими настройками – все еще серьезный труд. Мы это учитываем и работаем в этом направлении. Соответственно, и разработчикам также станет проще работать с СКД, т.к. мы, как и раньше, хотим предоставлять единый инструментарий настройки отчетов и для разработчика, и для конечного пользователя.