Система компоновки данных - практика разработкиСКД Консоль - изучение Системы Компоновки Данных OnLine. Система компоновки данных Как освоить и научиться делать отчеты на СКД

 Система компоновки данных - практика разработкиСКД Консоль - изучение Системы Компоновки Данных OnLine. Система компоновки данных Как освоить и научиться делать отчеты на СКД

17.03.2024

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

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

В основе обучающей программы Практика применения СКД лежит Интерактивная технология :

Создание отчетов (практических задач) прямо в программе 1С;

Система автоматической проверки решений;

Качественные методические материалы;

Техническая поддержка учащихся.

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

Подробное описание изучаемых тем

Практические задания представлены по следующим разделам:

- Создание простых отчетов:

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

- Основные возможности СКД и конструктора схемы компоновки данных:

Настройка полей отчета
- Расчет итогов ресурсов
- Управление выводом общих итогов
- Вывод данных в кросс-таблицу
- Связь нескольких источников данных
- Объединение нескольких источников данных
- Вычисляемые и пользовательские поля
- Использование параметров в отчете
- Стандартные периоды в параметрах отчета
- Установка предопределенных значений параметров
- Использование группы отборов
- Описание группы отчетов и диаграмм

- Управление представлением отчетов:

Настройка представления и группировки полей
- Расположение полей и группировок
- Условное оформление в отчете
- Настройка макета для областей отчета

- Расширенные возможности СКД:

Вывод нарастающего итога
- Дополнение периода
- Использование периодичности Авто
- Вывод характеристик объектов в отчет
- Сложные вычисляемые поля с выражениями
- Вычисляемое значение сортировки данных
- Вывод расширенных значений полей
- Представление итогов по неделям
- Настройка группы отчетов Вложенные схемы

- Самостоятельная работа (несколько заданий).

В заданиях рассмотрены особенности СКД платформы 1С Предприятие 8.3.

Программа изучения СКД сертифицирована фирмой 1С и рекомендована не только для самостоятельной подготовки технических специалистов, но и для организации учебного процесса в рамках ЦСО, АУЦ, учебных центров и т.д.

Наличие прав на использование платформы не является обязательным.

Начать работу

Выберите вариант работы с программой:

Инструкция по установке программы на Ваш компьютер

1. Установить и настроить учебную версию 1С на Ваш компьютер

Запустите скачанный файл setup.exe
(в случае предупреждения об опасности разрешите запуск файла);

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



Важно! Для работы программы требуется подключение к сети Интернет.

3. Запустить обучающую программу и выбрать информационную базу

Запустите программу обучения через ярлык "Обучение сайт" на рабочем столе;
- в списке информационных баз выберите созданную ранее;
- запустите "1С:Предприятие".

Так же Вы можете расширить методическую поддержку бесплатной программы,

Описание

Возможности программы:

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

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

Время занятий: 5 полных рабочих дней (40 академических часов) в учебном классе с 10.00 до 17.00.

Изучение материала в учебном классе проходит по технологии курса-погружения.

Программа курса рассчитана на специалистов, знакомых с основными возможностями системы «1С:Предприятие 8».

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

Курс написан и проводится с учетом особенностей и возможностей платформы 1С:Предприятие 8.3. Однако, большая часть материала актуальна и для платформы 1С:Предприятие 8.2, так как изучаемые механизмы доступны и применимы также на платформе 8.2 (кроме некоторых функций и выражений, которые появились в 8.3).

Обучение состоит из 5 занятий.

Занятие №1. Начало. Конструктор схемы компоновки данных

1. Введение

2. Знакомство

3. Свойства поля компоновки

  • Поле, путь, заголовок
  • Ограничения поля
  • Расширение языка запросов
  • Особенность работы автозаполнения
  • Роли полей
    • Роль поля «Период»
    • Использование реквизитов периода
    • Роли БУ
    • Роли поля остатков
    • Ограничения при работе с полями периодов и остатков
  • Выражения представления, упорядочивания
  • Тип значения, доступные значения
  • Оформление, параметры редактирования
  • Вычисляемые поля
    • Общая информация
    • Функции общих модулей
    • АВС классификация
    • Массив, ТаблицаЗначений, СоединитьСтроки
    • Вычислить
    • Вычислить выражение

Занятие №2. Конструктор схемы компоновки данных. Продолжение

1. Ресурсы

2. Параметры

3. Использование параметров для вывод дополнительной информации

4. Вложенные схемы

  • Вложенные схемы
  • Расшифровка детальных записей
  • Использование группировок в основной схеме

5. Использование нескольких наборов данных

  • Общая информация
  • Независимые наборы
  • Соединение наборов
  • Набор данных «Объединение»
  • Альтернативная иерархия
  • Постановка задачи
  • Иерархия по группировке
  • Альтернативная иерархия
  • Отбор при альтернативной иерархии
  • Связь по периодам

6. Работа с характеристиками

  • Расширение языка запросов
  • Свойства объектов конфигурации

7. Настройки

  • Группировки
  • Таблицы
  • Диаграммы
  • Дополнение периодов

8. Оптимизация запроса компоновкой данных

Занятие №3. Программная работа с компоновкой данных. Начало.

1. Этапы компоновки

  • Введение
  • Этапы компоновки
  • Сериализация схемы и макета

2. Вывод данных в коллекцию значений

3. Стандартные расшифровки

4. Вывод дополнительных данных

5. Комплексный пример по работе с настройками

6. Работа с картинками

  • Вывод логотипа
  • Картинки в строках

7. Работа с макетом

  • Вывод заголовка отчета
  • Полное переопределение макета
  • Использование общих макетов

Занятие №4. Работа с расшифровкой. Использование разных источников данных

1. Расшифровки

  • Переопределение простых расшифровок
  • Сложные расшифровки, вызов отчета
  • Использование специального варианта вызываемого отчета
  • Расшифровка по не основной схеме

2. Использование общих форм

3. Фоновое исполнение отчетов

4. Работа с внешними источниками данных

  • Использование набора данных «Объект»
  • Объект конфигурации «Внешний источник»
  • Использование разных источников

Занятие №5. Сопутствующие механизмы. Практикум.

1. Динамические списки

2. Создание внешних печатных форм

3. Создание внешних (дополнительных) отчетов

4. Переопределение хранения настроек

5. Завершающий практикум

Наполнение курса

Всего ресурсов (Web-страниц и страниц с видео)

Видео материалы (всего минут)

Практикумы для самостоятельного выполнения

1. Начало. Конструктор схемы компоновки данных.

2 (не сложных)

2. Конструктор схемы компоновки данных. Продолжение.

5 (средней сложности)

3. Программная работа с компоновкой данных. Начало.

133 минуты

2 (средней сложности)

4. Работа с расшифровкой. Использование разных источников данных.

2 (средней сложности)

5. Сопутствующие механизмы. Практикум.

3 (средней сложности и сложный)

  • Общие сведения
  • Этапы построения отчета СКД
  • Создание схемы компоновки данных
  • Состав схемы компоновки данных
  • Макет компоновки данных
  • Запросы в схеме компоновки данных
  • Настройка отборов в СКД
  • Сортировка в СКД
  • Отборы в пакетном запросе
  • Неочивидные действия системы при настройке отборов
  • Параметры виртуальных таблиц
  • Расширение языка запросов компоновки данных
  • Закладка «Комповка данных» в конструкторе запроса
  • Использование «ручного» заполнение полей компоновки
  • Функции выражений комповноки данных
  • Особенности запросов в СКД
  • Основные настройки полей компоновки данных: поле и путь
  • Использование пути к поле компоновки
  • Ограничения использования полей компоновки данных
  • Представление полей компоновки в отчете
  • Возможности упорядочивания в отчетах
  • Настройка типа и доступных значений поля компоновки
  • Оформление поля и параметры редактирования
  • Вычисляемые поля
  • Настройка итогов в СКД
  • Настройка ресурсов
  • Особенности ресурсов СКД
  • Роли полей компоновки данных
  • Настройка роли «Период»
  • Порядок следования периодов. Дополнительный период
  • Настройка роли «Измерение»
  • Настройка роли «Счет»
  • Настройка роли ресурса
  • Настройка роли: Игнорировать NULL
  • Настройка роли: Обязательное
  • Особенности получения остатков: выбора парных остатков
  • Особенности получения остатков: периодичность Неделя
  • Особенности получения остатков: группировка по реквизитам периода
  • Особенности получения остатков: использование вложенных запросов
  • Особенности получения остатков: указание периода при получении остатка на дату
  • Особенности получения остатков: обращение к таблице «Остатки и обороты»
  • Использование характеристик в отчетах на компоновке
  • Настройки источников характеристик
  • Варианты отчетов
  • Настройка варианта отчета: общие сведения
  • Создание варианта отчета вручную
  • Пользовательские настройки
  • Включение в пользовательские настройки элементов отчета
  • Стандартный период и стандартная дата
  • Группировка и детальные записи
  • Учет иерархии при выводе группировки
  • Указание нескольких полей в группировке
  • Настройки группировки по периоду
  • Выбранные поля
  • Пользовательские поля
  • Системные поля
  • Настройка отборов в отчете
  • Группировка условий
  • Отбор по ресурсам
  • Автополя
  • Настройка условного оформления
  • Условное оформление диаграмм
  • Другие настройки варианта отчета
  • Настройки расположения полей относительно друг друга
  • Формы отчета
  • Реквизиты формы отчета
  • Параметры расширения формы отчета
  • Открытие отчета с определенным вариантом отчета
  • Свойства, методы и события Отчет Объект
  • Программное формирование отчета на СКД
  • Программная установка параметров отчета СКД
  • Набор данных – Объект
  • Вывод журнала регистрации в отчет
  • Программный интерфейс настроек вариантов отчета
  • Пример программного создания варианта отчета
  • Отладка алгоритмов
  • Работа с отборами, условным оформлением
  • Программный интерфейс работы со схемой компоновки
  • Пример программного создания схемы компоновки
  • Последовательный вывод элементов отчета
  • Задача фиксации шапки отчета
  • Выполнение не основной схемы компоновки
  • Набор данных – Объединение
  • Соединение наборов данных
  • Отличия расчета итогов в запросах и СКД
  • Преимущество соединение наборов на уровне СКД
  • Передача параметров в дочерний набор данных
  • Тип связи соединения наборов данных
  • Несвязанные наборы данных
  • Создание собственной иерархии: общая схема
  • Одноуровневая иерархия
  • Многоуровневая собственная иерархия
  • Оптимизация построения иерархии
  • Контроль иерархии
  • Прочие параметры связей наборов данных
  • Вывод иерархии на уровне детальных записей
  • Вложенные схемы
  • Установка связи по периоду между родительской и дочерней схемой
  • Настройка отчета с использованием вложенной схемы
  • Возможности оформления отчета
  • Макеты отчетов
  • Независимый макет оформления
  • Предопределенные макеты
  • Просмотр общей структуры отчета
  • Стандартная расшифровка отчета
  • Собственная обработка расшифровки: получение значения расшифровки
  • Открытие отчета расшифровки
  • Вызов действий расшифровки
  • Расшифровка при программном формировании отчета



Скачать бесплатно:
================== Архив 299,62 Мб

  • Различные способы формирования отчетов (вывод в табличный документ, построитель отчета, универсальный отчет, СКД)
  • Настройка отчетов в режиме «1С:Предприятие»
  • Инструменты отладки отчетов на СКД. Какой запрос на самом деле получает данные из базы?
  • Для чего нужно множество галочек в настройке полей компоновки
  • Как переопределить представление поля в отчете
  • Как получить корректные итоги в отчетах на СКД вне зависимости от того, какие поля выводятся в отчет?
  • Как вывести корректные остатки по документам-регистраторам?
  • Как, не установив всего несколько галочек, получить ошибочные итоги в отчете?
  • Как использовать собственные функции из общих модулей в отчете на СКД?
  • Как исключить некорректные сложения USD + EUR; Шт. + кг
  • Как создать несколько представлений (вариантов отчета) на основании одних и тех же данных
  • Какие возможности по выводу данных в графическом виде (диаграммы, графики, гистограммы) есть в СКД, а когда придется полученную диаграмму «доработать» программным кодом
  • Как без программирования организовать вывод данных по иерархии? И как организовано получение таких данных на низком уровне?
  • Как без программного кода вывести все даты за период, а не только те, на которые есть данные в отчете?
  • Как настроить отчет, где пользователь самостоятельно может выбирать требуемую периодичность (год, месяц, день)?
  • Как без программирования расположить на форме отчета «быстрые» настройки, которые нужны пользователю для формирования отчета?
  • Комбинирование отборов – И, Или, Не.
  • Как вывести заголовок поля вертикально, а сами значения – горизонтально.
  • Вывод в итогах только некоторых ресурсов
  • Отличия расчета итогов в запросах и СКД
  • Срез последних на каждую дату при помощи СКД
  • Работа с произвольными характеристиками объектов, которые пользователь создает в режиме «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


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

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

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

© 2024 dhmoscow.ru - Компьютер надо изучать