Данная статья описывает пример создания отчета с использованием системы компоновки данных 1С:Предприятия 8.1. Отчет создается в демонстрационной конфигурации "Примеры 8.1", которая расположена на диске ИТС.
Дистрибутив конфигурации находится в каталоге 1CITSEXEDemo81 (копировать дистрибутив конфигурации)
В этой статье будет рассмотрен пример создания отчета по остаткам номенклатуры на складах.
Для создания отчета выберем в дереве конфигурации ветвь "Отчеты" и вызовем контекстное меню. В появившемся контекстном меню выберем команду "Добавить".
В появившейся форме введем в поле ввода "Имя" имя отчета: "ОстаткиНоменклатуры". После этого перейдем к созданию схемы компоновки данных.
Схема компоновки данных — это описание отчета, при помощи которого платформа позволит вводить настройки и получать результат. Для открытия и создания схемы компоновки нажмем кнопку "Открыть схему компоновки данных".
Так как у отчета, который мы создаем, еще не установлена основная схема компоновки данных, система 1С:Предприятие предложит создать новую схему компоновки данных и отобразит диалог, в котором будет предложено ввести имя схемы компоновки. Оставим имя, установленное по умолчанию.
Отметим, что схема компоновки данных, с точки зрения конфигурации, является макетом, поэтому система 1С:Предприятие 8 предлагает стандартный диалог конструктора макета. В этом диалоге по умолчанию выбран тип макета "Схема компоновки данных", а другие типы макетов недоступны для выбора.
После нажатия кнопки "Готово", система 1С:Предприятие откроет конструктор схемы компоновки данных, который позволяет создавать и редактировать схемы компоновки данных. Форма конструктора схемы компоновки данных выглядит следующим образом:
Первым шагом при создании новой схемы компоновки данных является добавление набора данных, из которого будут получены данные. В нашем случае данные будут получены при помощи запроса, поэтому добавим набор данных — запрос.
Для этого нажмем на кнопку "Добавить набор данных", которая расположена в командной панели на закладке "Наборы данных". В открывшемся меню выберем пункт "Добавить набор данных — запрос":
Конструктор добавит в схему компоновки набор данных — запрос.
Теперь для этого набора данных нужно ввести текст запроса, с помощью которого будут получены данные. Текст запроса можно ввести с клавиатуры прямо в поле "Запрос", или воспользоваться конструктором запроса, который позволяет создавать и редактировать запросы визуальными средствами.
Рассмотрим вариант создания текста запроса с помощью конструктора. Для вызова конструктора запроса нажмем кнопку "Конструктор запроса. ":
Конструктор запроса позволяет создавать и редактировать запросы любой сложности и является весьма мощным инструментом. Форма конструктора запроса выглядит следующим образом:
Отчет, который мы создаем, будет получать данные из регистра накопления "УчетНакопления", поскольку именно в нем в демонстрационной базе хранятся остатки номенклатуры по складам.
Найдем в дереве базы данных, в ветке "РегистрыНакопления", таблицу "УчетНоменклатуры.Остатки" (имя "Остатки" после точки в данном случае указывает, что мы будем обращаться к виртуальной таблице остатков, которая и предоставит нам остатки в разрезе каждой номенклатуры на каждом складе). Двойной щелчок на таблице приведет к тому, что таблица будет помещена в табличное поле "Таблицы". В этом поле отображаются все таблицы, из которых будут получаться данные запроса.
Раскрыв таблицу "УчетНакопленияОстатки" мы увидим, какие поля мы можем получать из нее. В данном случае нас интересуют все поля, поэтому просто сделаем двойной щелчок по таблице и конструктор запроса поместит все поля таблицы в выбранные поля.
На этом создание запроса завершено — мы создали запрос, который будет получать данные из таблицы остатков.
Нажмем кнопку ОК для завершения работы конструктора запроса.
Текст запроса, который был создан с помощью конструктора, система 1С:Предприятие 8 поместит в поле "Запрос". Это поле представляет собой текстовый редактор, в котором можно вручную отредактировать существующий запрос. Кроме того, можно снова вызвать конструктор запроса и отредактировать запрос при помощи него.
Обратим внимание на список полей, который система 1С:Предприятие 8 заполнила в верхней части конструктора запроса. В нем отображаются поля, которые доступны у текущего набора данных. В нашем случае система 1С:Предприятие заполнила данный список автоматически, из текста запроса, и нет необходимости в его настройке вручную.
Следующим шагом, который необходимо выполнить, является указание ресурсов. Ресурсы — это поля набора данных, по которым будет происходить агрегация значений.
Для указания ресурсов перейдем на закладку "Ресурсы". На этой закладке в левой части мы видим список полей, которые допускается использовать в качестве ресурсов. В правой части расположено табличное поле, содержащее выражения для расчета ресурсов.
Нам необходимо рассчитать суммы по полю "КоличествоОстаток".
Найдем это поле в списке доступных полей и дважды щелкнем по нему. В правом табличном поле появится строка, содержащая формулу для расчета итога по полю "КоличествоОстаток". В нашем случае это "Сумма(КоличествоОборот)". Эта формула означает, что для итоговых записей отчета значение поля "КоличествоОстаток" будет вычисляться как сумма поля "КоличествоОстаток" для всех строк участвующих в данной итоговой записи.
Отметим, что имеется возможность добавить все доступные числовые поля в список ресурсов нажатием на кнопку ">>". Это удобно, когда имеется большое количество полей — ресурсов.
Теперь нужно создать настройки отчета по умолчанию, т.е. настройки которые будет использовать пользователь при старте отчета в режиме 1С:Предприятие.
Для этого перейдем на закладку "Настройки". На этой закладке находится несколько табличных полей для детального редактирования различных настроек компоновки данных. Для того, чтобы создать настройки воспользуемся конструктором настроек компоновки, который вызовем при помощи соответствующей команды, расположенной в правой командной панели.
Конструктор настроек компоновки данных позволяет шаг за шагом создать типовые настройки отчета.
На первом шаге в конструкторе указывается тип отчета, который необходимо создать. Нас интересует таблица, поэтому установим соответствующий переключатель и нажмем кнопку "Далее >".
На следующем шаге предлагается выбрать поля, значения которых будут выведены в отчет. Для того, чтобы выбрать сразу все поля, нажмем кнопку ">>". Конструктор поместит все поля в список выбранных полей, расположенный в правой части.
Нажмем кнопку "Далее >".
На следующем шаге нужно указать, по каким полям следует группировать строки и колонки таблицы. Мы хотим видеть в строках номенклатуру, а в колонках склад. Будем действовать соответственно — перетащим при помощи мыши поле "Номенклатура" в табличное поле строк, а поле "Склад" в табличное поле колонок.
Нажмем кнопку "Далее >".
На следующем шаге нам будет предложено выбрать поля, по которым нужно упорядочивать. Мы не будем выбирать поля упорядочивания, а доверим системе 1С:Предприятие 8 самой решать как будет упорядочиваться отчет.
Нажмем кнопку "ОК" для завершения работы конструктора.
Созданные конструктором настройки система 1С:Предприятие 8 помещает в настройки схемы компоновки данных. Если в дальнейшем нам понадобится их изменить, мы сможем доработать их произвольным образом при помощи табличных полей или же снова воспользоваться конструктором.
На этом работа со схемой компоновки закончена, мы сделали все, что хотели: создали запрос, указали формулы для расчета ресурсов, создали настройки по умолчанию. Закроем конструктор.
После закрытия конструктора мы вернемся в форму отчета. В форме видно, что конфигуратор создал схему компоновки и установил ее в качестве основной схемы компоновки нашего отчета.
На этом работа по созданию отчета завершена. Посмотрим, как работает наш отчет в режиме 1С:Предприятие.
Запустим систему 1С:Предприятие, нажав F5. На вопрос системы о необходимости обновить конфигурацию базы данных ответим утвердительно.
В открывшемся окне 1С:Предприятия выберем в главном меню пункты Операции->Отчет.
В появившемся списке отчетов выберем наш отчет — "Остатки номенклатуры" и нажмем кнопку ОК.
На экране отобразится форма отчета. В верхней части формы расположена командная панель отчета. Все остальное пространство занимает табличный документ, в который будет выводиться результат отчета.
Выполним отчет, нажав на кнопку "Сформировать". Платформа начнет формирование отчета. При выполнении отчета в строке состояния системы 1С:Предприятие 8 отображается процент выведенного результата.
Если необходимо отменить вывод отчета, можно воспользоваться комбинацией клавиш Ctrl+Break.
Система выведет результат в табличный документ. Результат будет выглядеть, например, так:
При необходимости мы можем изменить настройки отчета, созданные нами по умолчанию.
Для этого можно воспользоваться конструктором настроек, или формой настроек. Вызвать их мы можем при помощи командной панели отчета.
Конструктор настроек в режиме 1С:Предприятие ничем не отличается от конструктора, которым мы пользовались при создании настроек по умолчанию в режиме Конфигуратор.
Форма же настроек в режиме 1С:Предприятие очень похожа на настройки из конструктора схемы компоновки данных:
Таким образом, выполнив несколько несложных шагов, мы создали отчет, который отображает нужную нам информацию, и обеспечили возможность гибкой настройки отчета пользователем в случае, если ему это понадобится.
В этой статье мы рассмотрели основные этапы, которые нужно пройти при создании отчета. Безусловно, это только начало знакомства с системой компоновки данных т.к. система компоновки предоставляет весьма много возможностей для получения, агрегации, оформления данных.
Для дальнейшего практического изучения системы компоновки можно обратиться к другим отчетам из демонстрационной конфигурации "Примеры 8.1". Информацию об устройстве системы компоновки данных можно найти в документации системы 1С:Предприятие 8.
СКД 1С расшифровывается как Система Компоновки Данных. СКД 1С – это новый способ написания отчетов в 1С, который позволяет пользователю полностью настраивать отчет самостоятельно.
Минус СКД 1С в том, что его настройки достаточно сложны и не все пользователи усваивают их быстро.
Написание отчетов СКД требует умение работать с запросами в 1С, что мы обсуждали в уроке по запросам 1С.
Какова технология создания отчета СКД 1С:
- Написать запрос 1С в СКД 1С, который обеспечивает получение данных
- Указать СКД 1С роль полей (вычисляемые поля, ресурсы)
- Ввести настройки СКД 1С по умолчанию.
Пользователю остается возможность изменить множество настроек по своему желанию.
Какова технология создания отчета по предыдущим технологиям:
- Написать запрос в программе 1С
- Разработать форму настроек (уникальную для отчета), которая позволит изменять только выбранные программистом N настроек
- Написать код (программу) выполнения запроса и построения печатной формы отчета.
Как Вы видите, СКД 1С имеет значительное преимущество как для пользователя, так и для программиста:
- Программист – избавляет от написания программы для выполнения отчета и настроек
- Пользователь – получает значительный доступ к настройкам отчета.
Во всех новых конфигурациях 1С все отчеты будут использованы только на СКД 1С.
Давайте посмотрим как создать отчет на СКД 1С самому с нуля.
Создаем отчет СКД 1С
В конфигураторе нажмите кнопку нового файла (меню Файл/Новый).
Выберите тип файла Новый отчет.
Будет создан новый отчет. Введем наименование – без пробелов для конфигурации, синоним для пользователя.
Создадим основную схему СКД 1С.
Создаем запрос для отчета СКД 1С
Источников данных для СКД 1С может быть множество. Чтобы использовать, например, два отдельных запроса – добавьте сначала «Набор данных – объединение», а потом несколько запросов.
В нашем примере мы будем использовать простой запрос.
Набросаем запрос для получения данных.
Работа с конструктором запроса ничем не отличается от обычной, мы обсуждали это в уроке по запросам 1С.
В результате формирования запроса, СКД 1С создаст список доступных к использованию полей и заполнит им по умолчанию наименования.
Если наименование неудобное, здесь его можно изменить.
Обратите внимание, что мы использовали в запросе параметр &ДатаНачала. В СКД 1С есть параметр (дата) по умолчанию с названием &Период и Вы можете использовать его.
Причем указывать его в запросе прямо не надо – он будет использован автоматически. Однако есть тонкость – он применяется ко всем таблицам, включая левые соединения и прочее, что может рождать ошибки.
Например, Вы получаете остатки на начало месяца, а левым соединением получаете данные на сегодня. При использовании Период будет применен ко всем таблицам одинаково и запрос будет работать неверно.
Поэтому часто &Период запрещают (см. далее), а вместо него используют собственный параметр, как мы сделали это сейчас.
Настройки СКД 1С
На закладке Ресурсы укажем те поля, которые будут суммироваться для итогов (т.е. цифры). У полей можно указать функцию суммирования. По умолчанию это Сумма (т.е. суммировать цифры из всех строк и получить итого), а можно использовать Среднее, Количество, Максимум и т.п.
На закладке Параметры запретим ненужные нам, и включим нужные. Здесь же можно задать человеческое название параметра.
Основная настройка производится на закладке Настройки:
- Начинаем настройку
- Выводим данные в таблицу
- Какие поля, полученные запросом, мы планируем показывать в таблице? В нашем примере это все поля.
- Группировка строк. Можно сделать по строкам и по колонкам. Для иерархических справочников можно разрешить использование иерархии (чтобы показывал не только элемент, но и группу в которой он находится).
- Сортировка
- Результат настройки СКД 1С выглядит в следующем виде. Далее мы посмотрим, как пользователь может настраивать самостоятельно наш отчет СКД 1С.
Формирование СКД 1С
Нажмите сохранить отчет в файл. Аналогичное меню Файл/Сохранить. В результате у нас получится внешний отчет 1С.
Откроем его в режиме Предприятие. Обратите внимание, что мы не занимались никаким программированием, рисованием форм и прочего. Чтобы задать параметр нажмите кнопку Настройки.
Пользователь видит почти такую же форму настроек, как и программист.
Вуаля. Отчет работает.
Настройки СКД 1С
Все настройки отчета СКД 1С производится с помощью нажатия на кнопку Настройки. По крайней мере в шаблоне по умолчанию. Существует возможность создать самому форму отчета СКД 1С и тогда настройки могут быть вынесены в другие формы, нарисованные программистом самостоятельно.
Перетащим Склад из Колонки в Строки.
Перетащим Номенклатуру на Склад.
Нажмите ОК и сформируйте отчет. Ура – мы только что изменили работу отчета в режиме Программирование без программирования.
Нажмите правой кнопкой на Строки (а можно на любое из полей) и выберите Новая группировка.
Раскроем поле Склад и выберем одно из его полей, например Вид склада.
Подумав, мы вспомнили, что хотелось бы, чтобы в одной колонке выводилось сразу несколько полей. Нажмите на только что созданное поле два раза левой кнопкой мыши. Здесь можно добавить поля.
Если Вы добавите новую группировку, но поле не выберете, это означает «Все поля» (отображается как «Детальные записи»). Это выглядит так.
Группировка добавилась снизу. Нас это не устраивает.
Схватите левой кнопкой мыши нашу группировку (Склад/Номенклатура) и перетащите ее на новую группировку (Вид склада).
Результат наших настроек.
Кроме настроек, о действии которых легко догадаться по их названию (Отбор, Сортировка и т.п.) есть закладке «Другие настройки». Она позволяет разрешить или запретить такие вещи как отображение итогов, расположение группировок в колонках и т.п.
Обратите внимание, что настройки могут быть заданы для всего отчета (выбран Отчет) или для конкретной строки полей (выберите строку, например Номенклатура, и выберите Настройки:Нонменклатура).
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД
Автор уроков и преподаватель школы: Владимир Милькин
Если вы не читали введение к этому модулю — пожалуйста, прочтите его: ссылка.
Содержание
Готовим рабочее место
Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .
Если у вас уже есть установленная 1С версии 8.3 — используйте её. Если нет — скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.
На вашем рабочем столе должен появиться вот такой ярлык:
Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных "Гастроном". Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.
Если вы её удалили — скачайте заново по следующей ссылке, распакуйте и подключите в список баз.
Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).
Ставим цель
Цель этого урока — создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:
- Имя Пол Любимый цвет клиента.
Отчёт должен быть внешним. Это значит, что он будет создан и настроен в конфигураторе, а затем сохранен в виде отдельного (внешнего) файла на компьютере.
Чтобы сформировать такой отчет в 1С пользователю нужно будет запустить базу в режиме пользователя, открыть этот файл и нажать кнопку "Сформировать".
Поехали!
Создаём отчёт
Запускаем конфигуратор для базы "Гастроном":
Из главного меню выбираем пункт "Файл"->"Новый. ":
Выбираем "Внешний отчет":
Создаём схему компоновки данных внутри отчёта
Открылось окно создания внешнего отчёта. В качестве имени вводим: "Урок1", а затем жмём кнопку "Открыть схему компоновки данных":
Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию "ОсновнаяСхемаКомпоновкиДанных" и жмём кнопку "Готово":
Открылось основное рабочее окно, с множеством закладок и полей, в котором мы и будем настраивать нашу схему компоновки данных.
Не нужно пугаться — возможностей здесь действительно много, но далеко не все из них нам нужны. Особенно на первом уроке.
Сейчас мы находимся на закладке "Наборы данных". На ней и останемся.
Пишем запрос через конструктор
Система компоновки данных (сокращенно СКД) требует от нас данные, которые она будет выводить пользователю.
Самый простой способ — написать запрос к базе. В предыдущих модулях школы мы научились писать и понимать запросы — поэтому я рассчитываю, что вы обладаете соответствующими навыками.
Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт "Добавить набор данных — запрос":
Добавился набор данных с именем "НаборДанных1", но мы видим, что поле "Запрос" в нижней части окна пока пустое:
Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?
В этом запросе мы выбрали три поля ("Наименование", "Пол" и "ЛюбимыйЦвет") из таблицы "Справочник.Клиенты".
Но не торопитесь писать этот текст в поле "Запрос" вручную.
Сейчас мы создадим тот же самый запрос визуально, только при помощи мышки. Этот способ называется "Конструктор запроса".
Чтобы вызвать этот конструктор нажмём кнопку "Конструктор запроса. " в верхней правой части поля "Запрос":
В открывшемся окне перетащим таблицу "Клиенты" из первого столбца во второй, чтобы указать, что именно из этой таблицы мы будем запрашивать данные:
Получилось вот так:
Далее раскроем таблицу "Клиенты" во втором столбце по знаку "Плюс", чтобы увидеть все её поля и перетащим поле "Наименование" из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле "Наименование":
Получилось вот так:
Поступим точно так же с полями "Пол" и "ЛюбимыйЦвет". Результат будет таким:
Нажмём кнопку "ОК", чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле "Запрос".
Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:
Теперь, когда мы составили запрос, СКД знает каким образом получать данные для отчёта.
Настраиваем представление данных
Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!
Чтобы сотворить такое чудо перейдём на вкладку "Настройки" и нажмём кнопку конструктора настроек (волшебная палочка):
В открывшемся окне укажем тип отчёта "Список" и нажмём "Далее":
В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: "ЛюбимыйЦвет", "Наименование" и "Пол"):
Получим вот такой результат и нажмём кнопку "ОК":
Конструктор настроек закрылся и появился пункт "Детальные записи":
Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.
Сохраняем отчёт в виде файла
Откроем пункт главного меню "Файл"->"Сохранить":
Я сохраню его на рабочий стол под именем "Урок1":
Проверяем отчёт в режиме пользователя
Наконец, закроем конфигуратор и зайдём в нашу базу в режиме пользователя:
Имя пользователя "Администратор", пароля нет:
Через меню выберем пункт "Файл"->"Открыть. ":
И укажем файл отчёта (я сохранял его на рабочий стол под именем "Урок1.erf":
Открылась форма отчёта, нажмём кнопку "Сформировать":
Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:
Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт "Файл"->"Печать. ":
Вот так просто, без программирования нам удалось создать полноценный отчёт, который пользователи смогут открывать в своих базах, формировать и распечатывать.
То ли ещё будет, наберитесь терпения
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Войдите как ученик, чтобы получить доступ к материалам школы
№1: первый отчёт на СКД
№4: меняем оформление
№5: делаем отбор и сортировку на уровне СКД