1с скд отредактировать поля вывода

Обновлено: 07.07.2024

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

Система компоновки данных 1С 8.3 для начинающих: считаем итоги (ресурсы)

Автор уроков и преподаватель школы: Владимир Милькин

Ставим цель

Целью этого урока будет:

  • Написать отчёт, который выводит список продуктов (справочник Еда), их калорийность и вкус.
  • Сделать группировку продуктов по их цвету.
  • Познакомиться с возможностью подведения итогов (ресурсы) и вычисляемыми полями.

Создаём новый отчёт

Как и на предыдущих уроках открываем базу "Гастроном" в конфигураторе и создаём новый отчёт через меню "Файл"->"Новый. ":

Вид документа - внешний отчёт:

В форме настройки отчёта пишем имя "Урок3" и нажимаем кнопку "Открыть схему компоновки данных":

Оставляем имя схемы по умолчанию и нажимаем кнопку "Готово":

Добавляем запрос через конструктор

На закладке "Набор данных" нажимаем зелёный плюсик и выбираем пункт "Добавить набор данных - запрос":

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

На вкладке "Таблицы" перетягиваем таблицу "Еда" из первой колонки во вторую:

Выбираем из таблицы "Еда" поля, которые будем запрашивать. Для этого перетаскиваем поля "Наименование", "Вкус", "Цвет" и "Калорийность" из второй колонки в третью:

Получилось вот так:

Нажимаем кнопку "ОК" - текст запроса сформировался автоматически:

Формируем настройки представления отчёта

Переходим на закладку "Настройки" и нажимаем на волшебную палочку, чтобы вызвать конструктор настроек:

Выбираем вид отчета "Список. " и нажимаем кнопку "Далее":

Перетаскиваем из левой колонки в правую поля, которые будут отображаться в списке и нажимаем "Далее":

Перетаскиваем из левой колонки в правую поле "Цвет" - по нему будет происходить группировка строк в отчёте. Нажимаем "ОК":

А вот и результат работы конструктора. Иерархия нашего отчёта:

  • отчёт в целом
  • группировка "Цвет"
  • детальные записи - строки с названиями еды

Сохраним отчёт (кнопка дискета) и не закрывая конфигуратора тут же откроем его в режиме пользователя. Получилось вот так:

Меняем порядок колонок

Но давайте поменяем порядок колонок (стрелки вверх-вниз), чтобы он был таким как на рисунке ниже:

Сохраним отчёт и вновь откроем в режиме пользователя:

Отлично, так гораздо лучше.

Подводим итог (сумму) по калорийности

Было бы неплохо выводить итог калорийности продуктов по группам. Чтобы видеть сумму калорийности всех продуктов, скажем, белого или жёлтого цвета. Или узнать общую калорийность вообще всех продуктов в базе.

Для этого существует механизм вычисления ресурсов.

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

При этом в поле выражение выбираем из выпадающего списка "Сумма(Калорийность)", так как итогом будет являться сумма всех входящих в итог элементов:

Сохраняем и формируем отчёт:

У нас появились итоги по каждой из групп и по отчёту в целом.

Подводим итог (среднее) по калорийности

Теперь давайте сделаем так, чтобы в ещё одной колонке выводилась средняя калорийность продуктов по группам и в целом по отчёту.

Трогать уже имеющуюся колонку "Калорийность" нельзя - в неё уже выводится итог-сумма, поэтому заведём ещё одно поле, которое будет являться точной копией поля "Калорийность".

Чтобы завести такое "виртуальное" поле воспользуемся механизмом вычисляемых полей.

Переходим на закладку "Вычисляемые поля" и нажимаем зелёный плюсик:

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

Мы добавили новое поле ("СредняяКалорийность"), но в отчёте оно само по себе не появится - нужно или вновь вызывать конструктор настроек ("волшебная палочка") или добавить это поле вручную.

Поступим вторым способом. Для этого переходим на закладку "Настройки", выбираем "Отчет" (ведь мы хотим добавить поле в целом к отчёту), выбираем внизу закладку "Выбранные поля" и перетаскиваем поле "СредняяКалорийность" из левой колонки в правую:

Получилось вот так:

Сохраняем и формируем отчет:

Поле появилось и мы видим, что его значениями являются значения поля "Калорийность". Отлично!

Но мы помним, что конечная цель - посчитать среднюю калорийность по группам и в целом по отчёту.

Для этого вновь воспользуемся уже знакомым нам механизмом ресурсов (подведение итогов). Переходим на закладку "Ресурсы" и перетаскиваем поле "СредняяКалорийность" из левой колонки в правую:

При этом в колонке "Выражение" выбираем "Среднее(СредняяКалорийность)":

Сохраняем и формируем отчёт:

Видим, что по группам, то есть по каждому цвету, и по отчёту в целом совершенно верно посчиталось среднее значение. Но присутствуют лишние записи по отдельным продуктам (не по группам), которые хотелось бы убрать из отчёта.

Знаете почему они появились (значения не по группам)? Потому что, когда мы добавляли поле "СредняяКалорийность" в настройки отчёта, на втором шаге мы выделили весь отчёт в целом и это новое поле попало в элемент "Детальные записи".

Исправим ошибку. Для этого вернёмся на закладку "Настройки", выберем "Детальные записи" сначала сверху (шаг 2), а затем "Детальные записи" снизу (шаг 3), перейдём на закладку "Выбранные поля" и увидим в её правой колонке элемент "Авто".

Элемент "Авто" - это не одно поле. Это несколько полей, которые попадают сюда автоматически на основании вышестоящих настроек.

Чтобы увидеть, что это за поля - нажмём на элемент "Авто" правой кнопкой и выберем пункт "Развернуть":

Элемент "Авто" раскрылся в следующие поля:

А вот и наше поле "СредняяКалорийность", которое попало сюда из пункта "Отчет", когда мы его туда перетаскивали. Просто снимем галку рядом с этим полем, чтобы убрать его вывода:

Сохраним и сформируем отчёт:

То, что надо! Значения "СредняяКалорийность" остались только в группах (цвет) и в итоге по отчёту в целом.

Подводим итог (количество) по вкусам

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

Ну, например, для белого цвета, это значение будет равно 2 (всего два вкуса "Кислый" и "Сладкий"), а для жёлтого 3 ("Сладкий", "Солёный" и "Кислый").

Переходим на закладку "Ресурсы" и перетаскиваем поле "Вкус" из левой колонки в правую:

В качестве выражения выбираем "Количество(Различные Вкус)":

Сохраняем и формируем отчёт:

Эталонная обработка, после выполнения всех шагов этого урока

Войдите на сайт как ученик

Для учеников

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

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

Задача действительно очень актуальная, участники Мастер-группы по СКД задают много вопросов на эту тему :)

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

Поэтому мы опубликовали серию видеоуроков, в которых рассказывается, как работать со схемой компоновки программно.

Общая длительность всех видеоуроков – 1 час 5 минут.

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

00:37 – В каком обработчике можно расположить код для создания настроек компоновки
01:00 – Где в Синтакс-помощнике можно “подсмотреть” свойства, которые потребуются при написании кода
01:58 – Как настроить группировки отчета
02:28 – Какое свойство позволяет создавать вложенные группировки
03:11 – Как включить/выключить отдельные элементы настроек.

00:22 – Как создать структуру отчета
02:00 – Как указать поля, по которым выполняется группировка
04:10 – Как настроить выбранные поля
06:30 – Как создать автополе.

00:22 – Как создать подчиненную группировку
02:05 – Почему в отчете группировки могут выводиться несколько раз
02:40 – Как проверить наличие группировок в структуре отчета.

00:18 – Где в Синтакс-помощнике найти типы данных, необходимые для создания отборов
00:55 – Какие свойства объекта типа ЭлементОтбораКомпоновкиДанных нужно использовать для создания отбора
01:20 – Как создать отбор при помощи программного кода.

00:25– Где в Синтакс-помощнике найти типы данных, необходимые для включения сортировки
00:50 – Какие свойства объекта типа ЭлементПорядкаКомпоновкиДанных нужно использовать для включения сортировки
01:00 – Как установить сортировку при помощи программного кода.

00:25 – Где в Синтакс-помощнике найти типы данных, необходимые для работы с условным оформлением
00:33 – Какие свойства объекта типа ЭлементУсловногоОформленияКомпоновкиДанных нужно использовать
02:08 – Как добавить условное оформление при помощи программного кода
02:31 – Как задать перечень полей, к которым будет применяться условное оформление
03:34 – Как отобрать оформляемые данные
04:15 – Как при помощи программного кода описать применяемое оформление.

01:01 – Как программно установить значение параметра
02:00 – Почему значения параметров, выводимые на форму отчета, не совпадают со значениями в самом отчете
04:25 – Что делает метод ПолучитьНастройки
05:10 – Как нужно работать с пользовательскими настройками
06:17 – Для чего нужно свойство ИдентификаторПользовательскойНастройки
07:10 – Где в типовой конфигурации УТ 11 можно найти пример работы с пользовательскими настройками.

00:58 – Почему отличаются значения параметра в настройках компоновщика и в пользовательских настройках
01:23 – Как связываются между собой настройки компоновщика и пользовательские настройки
03:06 – Как работает метод ПолучитьНастройки и значение какого типа он возвращает

00:34 – Чем отличается отбор в настройках компоновщика и отбор в пользовательских настройках
02:34 – Как используется свойство ИдентификаторПользовательскойНастройки
03:08 – Какой алгоритм должен использоваться для установки значения отбора в пользовательских настройках
03:42 – Как реализовать процедуру для установки значения отбора в пользовательских настройках.

Хотите научиться грамотно создавать отчеты на СКД и дорабатывать отчеты в типовых конфигурациях?

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

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

Система компоновки данных 1С 8.3 для начинающих: меняем созданный отчет

Автор уроков и преподаватель школы: Владимир Милькин

На этом уроке мы научимся менять уже созданный на основе СКД отчёт.

Ставим цель

Целью этого урока будет:

  • Скопировать файл отчёта с прошлого урока "Урок1.erf".
  • Изменить имя скопированного отчёта на "Урок2.erf".
  • Открыть отчёт "Урок2.erf" в конфигураторе.
  • Внести изменения в схему компоновки данных.

Создаём копию отчёта с предыдущего урока

Вначале копируем отчёт предыдущего урока.

. и вставляем его на рабочий стол:

Далее переименовываем получившуюся копию.

Открываем копию в конфигураторе

Открываем базу "Гастроном" в конфигураторе:

Открываем в конфигураторе отчёт .

В открывшейся форме отчёта меняем имя на "Урок 2" и нажимаем кнопку "Открыть схему компоновки данных":

Вот она наша схема - в том виде как мы её настроили на прошлом уроке:

Меняем заголовки столбцов

Вы помните как выглядит этот отчёт в режиме пользователя? Вот так:

Давайте изменим нашу схему так, чтобы вместо "Наименование" выводилось "Имя", а вместо "Пол" выводилось "М/Ж".

Сделать это проще простого.

В схеме на закладке "Наборы данных" в области "Поля" устанавливаем галку и меняем заголовок соответствующих полей:

Сохраняем наш отчёт нажатием на значок дискета:

И вновь открываем его в режиме пользователя (при этом не забудьте закрыть предыдущий отчет) и нажимаем кнопку "Сформировать":

Заголовки колонок изменились нужным образом. Отлично

Меняем порядок столбцов

Но порядок колонок не совсем правильный. Давайте добьёмся того, чтобы колонка "Наименование" шла первой, "Пол" второй и "ЛюбимыйЦвет" третьей.

Для этого возвращаемся в конфигуратор (вообще не нужно было его закрывать) в нашу схему компоновки данных и переходим на закладку "Настройки".

В этой закладке прежде чем что-то делать всегда будем в начале выделять слово "Отчет" (шаг 2). Пока просто запомните это и делайте так всегда.

Выделив "Отчет" переходим (ниже) на закладку "Выбранные поля", выделяем там поле "Наименование" и при помощи стрелки перемещаем его наверх:

Получилось вот так:

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

Вновь сохраняем отчёт и, не закрывая конфигуратора, открываем и формируем его в режиме пользователя:

Всё получилось. Порядок колонок теперь вполне логичный.

Меняем оформление и добавляем заголовок

Теперь давайте сделаем небольшое "украшательство" нашего отчёта и изменим его цветовое оформление.

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

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

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

Чтобы это сделать проматываем список других настроек вниз и устанавливаем поля "Выводить заголовок" и "Заголовок" как на рисунке ниже:

Сохраняем отчёт и открываем его в режиме пользователя:

Видим, что появился заголовок и изменилось оформление.

Меняем сортировку

А ещё давайте сделаем, чтобы в нашем отчёте сначала шли женщины, а затем мужчины.

Для этого сделаем сортировку полю "Пол".

Снова возвращаемся к конфигуратору. Переходим на закладку "Настройки", выделяем "Отчет" и переходим на закладку (в самом низу) "Сортировка".

Там перетаскиваем поле "Пол" из первой колонки во вторую:

А также указываем для него направление сортировки "По убыванию":

Сохраняем отчёт, а затем формируем его в режиме пользователя:

Отлично, строки в отчёте отсортированы по полу: вначале идут женщины, а затем мужчины.

Эталонная обработка, после выполнения всех шагов этого урока

Войдите на сайт как ученик

Для учеников

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

Сначала получаем форму.

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

Далее получаем настройки:

Через серверный вызов получаем настройки и если нужно заполняем параметры Компоновщика в отдельной процедуре.

Загружаем измененные настройки в компоновщик

Код выполняется на клиенте, сначала мы формируем структуру с необходимыми параметрами формы, а потом вызываем процедуру открытия. Часто используемые параметры в данном случае это:

Сначала получаем схему компоновки данных. Схема может быть получена из разных источников: общий макет, макет прикладного объекта, такого как справочник или отчет, макет из внешней обработки.

Код выполняется на сервере.

Получение локального макета

Получение макета произвольного отчета

Получение макета во внешней обработке

Получение макета из внешней обработки или отчета

Далее мы получаем настройки. Настройки СКД могут быть взяты из разных источников. Мы можем их получить из самой СКД:

Мы можем создать новый компоновщик настроек на основе схемы и получить настройки из него.

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

И когда будем формировать

Далее программно заполняем параметры Компоновщика. Об этом подробно в разделе 4 .

Объявляем создаем необходимые объекты:

Создаем макет компоновки с помощью компоновщика макета:

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

Инициализируем процессор компоновки данных

Создаем процессор вывода:

Для вывода в таблицу значений используется другой процессор вывода:

Запускаем процесс вывода:

Теперь мы можем проводить нужные операции с полученными данными.

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

При программном формировании СКД как в пункте 2 у нас есть огромное количество возможностей по управлению отчетом. Опишем самые часто используемые из них.

Или если с добавлением нового параметра

Переменная Настройки содержит в себе всю палитру настроек которая доступна в редакторе СКД в разделе “Настройки”. Наиболее часто из них программно редактируются отборы, параметры и структура, в случае когда отчет с табличной структурой надо вывести в таблицу значений. Рассмотрим их подробнее.

Параметры

Все параметры создаются при создании исходного отчета, исключение если параметр был добавлен при редактировании запроса. Значение существующего параметра устанавливается следующим образом:

Добавление параметра делается следующим образом

Отбор

У отборов нет специальных функций по установке значений. Поэтому нужно перебирать коллекцию циклом.

Структура

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

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

Приведенные примеры кода были протестированы на платформе 1С:Предприятие 8.3 (8.3.13.1690).

Читайте также: