Детальные записи 1с что это
Перейти к содержимому

Детальные записи 1с что это

  • автор:

Предисловие

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

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

Определение группировок производится на закладке «Настройка» схемы компоновки данных в верхнем правом окне.

Рисунок 1

Детальные записи

Начнем с простого. Если нам нужно вывести все строки набора в отчет, добавляем группировку «Детальные записи». Добавление новой группировки производится через правую клавишу мыши (ПКМ) на уровне отчета или через клавишу «Ins». Чтобы добавить группировку «Детальные записи», в открывшемся диалоге мы не указываем поле.

Далее в области «Настройки текущей группировки» (см. рисунок 1) мы можем на закладке «Выбранные поля» просто перенести все доступные поля в список выбранных. При этом мы указали настройки (список полей) для всего отчета. В нашем случае весь отчет это одна группировка, поэтому нет разницы — задаем мы настройки для всего отчета или для группировки.

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

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

Группировка по полю

Дальше у нас может возникнуть задача — добавить итоговые записи в отчет по какому-то полю. В этом случае при добавлении новой группировки мы должны указать это поле. Например, в нашем случае мы можем добавить группировку по контрагенту.

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

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

Теперь в наш отчет попали ресурсы, но не попали прочие поля. Об этом поговорим позже.

Группировка иерархическая

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

Например, сделаем вариант отчета с группировкой по номенклатуре, включая итоги по группам (папкам).

Если выбрать вариант «Иерархия» добавляются итоги по родителям и элементам, если «Только иерархия», то итоги только по родителям. Выберем вариант «Иерархия» и посмотрим, что получится:

В отчет кроме итоговых записей по элементам добавились записи по родительским элементам.

Группировка по нескольким полям

Группировку можно сделать не по одному полю, а по нескольким. Например, в случае нашего отчета сделаем группировку по периоду и включим для этого в группировку два поля – начало периода и конец периода. Добавим группировку, указав поле начало периода (или не указывая ничего), затем кликнем по группировке, в открывшемся списке определим следующие поля:

По смыслу такая группировка аналогична конструкции «СГРУППИРОВАТЬ ПО НачалоПериода, КонецПериода» в языке запросов.

Получим вот такой отчет

Подчиненные группировки

Теперь вернемся к разделу «Группировка по одному полю». В принципе на предыдущем примере мы это тоже можем реализовать – в отчет у нас не попали прочие поля. Как уже было озвучено ранее, потому что в группировку попадают только значения полей группировки и ресурсы.

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

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

И добавим сразу себестоимость в ресурсы. Получится такой отчет:

Действие настроек родительской группировки на подчиненные

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

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

Для этого мы в поле «Настройки» выбираем группировку «Детальные записи». В выбранных полях оставляем «Авто» — это значит, что мы наследуем в группировке поля из родительских группировок. И добавляем поле код. Получаем (в других настройках нужно указать расположение реквизитов – «Отдельно»):

Мы можем переопределить полностью родительские поля и задать свой список полей:

Таблица

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

При добавлении таблицы в настройки у нее доступны два измерения, в которые можно добавлять группировки – «Строки» для вертикального разворота, «Колонки» — для горизонтального разворота:

Используя набор данных с простым запросом:

Построим отчет, в котором в строках разместим группировку по контрагенту и номенклатуре, а в колонках по году и месяцу:

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

Получили вот такой отчет:

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

Собственные итоги

При использовании таблицы в структуре отчета на СКД часто возникает необходимость добавить дополнительные колонки со своим составом полей или реализовать итог по горизонтали с другим составом ресурсов. Тоже самое касается и строк – чаще бывает необходимо реализовать собственные итоги в строках.

Рассмотрим на практическом примере. Пусть у нас есть такой (немного странный отчет):

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

Итак, первоначальная настройка отчета у нас совсем простая:

Набор и запрос несложные – вы можете сделать его на своей конфигурации сами.

Начнем с добавления процента в общем итоге. Для этого отключим вывод общего итога по горизонтали на закладке «Другие настройки»:

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

Добавим ресурс для общего итога с такой формулой:

Добавим колонку в настройки, добавим наши поля в выбранные ТОЛЬКО для группировки «Итого»:

Получим отчет в нужном виде:

Теперь добавим колонку остатка после колонки номенклатура. Для этого добавим второй набор данных (остатки), свяжем его с основным набором:

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

Получим вот такую форму отчета:

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

Мы же решим эту часть задачи по другому, с помощью опции «Рассчитывать по» на закладке «Ресурсы»:

Процент для общего итога по строкам в общем итоге по горизонтали считать не будем. Получаем вот такой отчет:

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

Вывод группировок в пользовательские настройки

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

Для этого в СКД есть возможность добавить настройку группировок в пользовательские настройки:

Для отчета в целом

Для таблицы есть возможность управлять группировками строк и колонок:

Для выбранной группировки можно управлять вложенными (подчиненными) группировками:

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

Группировки добавляются к заданным в варианте отчета. Можно не устанавливать никакие группировки в варианте отчета и тогда пользователь может полностью управлять структурой отчета. Надо конечно заметить, что в этом режиме нельзя добавить таблицу или диаграмму – только обычную группировку. Причем нельзя добавить составную группировку. При добавлении группировки как показано на рисунке устанавливается дополнительно две родительских группировки, а не одна составная:

Программная работа с группировками

При создании отчета на СКД имеется возможность создать отчет полностью программно. При этом можно таким образом создать как схему компоновки, так и заполнить настройки компоновщика настроек. В обоих случаях мы работаем с объектом «НастройкиКомпоновкиДанных».

Пример программного создания группировки

// Добавим новую группировку в структуру отчета.

// Укажем, по каким полям нужно группировать.

ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(«Номенклатура»);

// Укажем тип иерархии.

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

1с СКД Детальные записи

(14) >Могу я не выводить детальные записи и при этом в итогах иметь значения как будь то детальные записи есть.
Если это вопрос, то да, однозначно можете. Так и работает СКД.

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

Подсунул в СКД вот такой запрос

ВЫБРАТЬ
"Склад 1" КАК Склад,
"Ручка синяя" КАК Номенклатура,
100 КАК Показатель
<ВЫБРАТЬ
Склад,
Номенклатура,
Показатель>

На вкладке "Ресурсы" добавил показатель с выражением "Сумма(Показатель)"
В структуре указал дерево Склад — Детальные записи, поле отчёта — Показатель, поля детальных записей: Склад, Номенклатура, Показатель

Выводится всё так, как хочет автор (итоги 300 и 450 вне зависимости от того, выводятся детальные записи или нет)

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

Что такое ресурсы и группировки в СКД

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

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

Настройка ресурсов, группировка и сортировка данных

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

Итак, создаём периодический регистр сведений в СКД. Назовём его «Остановки по маршруту». Добавляем сюда два измерения: Маршрут, Остановка и итоговый ресурс Расстояние. Зададим для них соответствующие типы данных: строковый и числовой. Все изменения сохраняем в новой конфигурации регистра сведений.

Создаём внешний отчёт в СКД. Для этого заходим в Меню, выбираем Файл ? Новый, находим вкладку «Внешний отчёт», даём ему имя «Расстояние между остановками». Далее, жмём кнопку «Открыть схему компоновки данных»:

image001

В появившемся конструкторе СКД находим команду «Добавить набор данных – запрос»:

image003

Чтобы решить поставленную задачу и по результатам её решения построить отчёт, находим в конфигураторе таблицу «ОстановкиПоМаршруту»

Так как наш отчёт рассчитывает расстояние между двумя, выбранными пользователем, остановками, то на вкладке «Наборы данных» формируем запрос. Требуемый запрос будет предоставлять данные в виде таблицы по осям X и Y с использованием полного внешнего соединения таблицы регистра:

ВЫБРАТЬ

ОстановкиПоМаршрутуX.Маршрут КАК Маршрут,

ОстановкиПоМаршрутуX.Остановка КАК ОстановкаX,

ОстановкиПоМаршрутуY.Остановка КАК ОстановкаY,

ОстановкиПоМаршрутуX.Расстояние КАК РасстояниеX,

ОстановкиПоМаршрутуY.Расстояние КАК РасстояниеY,

ВЫБОР

КОГДА ОстановкиПоМаршрутуX.Расстояние — ОстановкиПоМаршрутуY.Расстояние >= 0

ТОГДА ОстановкиПоМаршрутуX.Расстояние — ОстановкиПоМаршрутуY.Расстояние

КОГДА ОстановкиПоМаршрутуX.Расстояние — ОстановкиПоМаршрутуY.Расстояние < 0

ТОГДА ОстановкиПоМаршрутуY.Расстояние — ОстановкиПоМаршрутуX.Расстояние

КОНЕЦ КАК Расстояние

ИЗ

РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршрутуX

ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршрутуY

ПО ОстановкиПоМаршрутуX.Маршрут = ОстановкиПоМаршрутуY.Маршрут

image005

Выполняем настройки СКД. Для этого на вкладке «Ресурсы» указываем поля для системы компоновки данных. Из окна со всеми доступными полями таблицы перекидываем поля Расстояние,РасстояниеX и РасстояниеY. Задаём выражения, которые нам необходимо вычислить:

image007

Проводим дальнейшую настройку отчёта СКД. Для этого переходим на вкладку «Настройки», жмём «Открыть конструктор настроек», выделяем тип отчёта «Таблица»:

image009

Далее выбираем поля для отчёта:

image011

Нажав кнопку «Далее», выбираем поля для группировки:

image013

Выбираем поля для сортировки отчёта:

image015

Нажимаем кнопку ОК. Создаём пользовательские настройки, а также указываем, как будут располагаться ресурсы:

image017

Отчёт готов. Если регистр сведений ещё не заполнен, то заходим в Предприятие и заполняем его:

image019

На вкладке Меню выбираем Файл, находим наш сохранённый отчёт, жмём «Сформировать» и видим готовое решение задачи:

image021

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

Скачать пример созданного в этой статье внешнего отчёта можно по ссылке здесь или по кнопке ниже.

Настройка полей отчетов в системе компоновки данных 1С

Для примера буду использовать учебную версию 1С:Предприятия и базу «Знакомство с платформой».

Откроем базу «Знакомство с платформой» в конфигураторе, перейдем в ветку «Отчеты — Материалы» и создадим новый макет «Пример» с типом «Схема компоновки данных».

Создание схемы компоновки данных 1С

После нажатия кнопки «Готово» откроется окно редактирования отчета на основе созданной нами СКД «Пример»:

Создание СКД 1С

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

окне редактирования соответствующего отчета

Закладка «Набор данных»

Закладка «Набор данных» предназначена для добавления набора данных, из которого собственно и будут получены данные.

В системе компоновки данных можно использовать следующие наборы данных:
  1. набор данных — запрос;
  2. набор данных — объект;
  3. набор данных — объединение.

На закладке «Наборы данных» добавим новый набор данных типа «Запрос».

Набор данных типа "Запрос"

Наборы данных первоначально определяются п ри построении отчета.

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

В таблице «Поля» заполняются свойства:

  1. «Поле» — имя поля, заполняется:
    • в случае набор данных запрос — автоматически;
    • в случае набор данных объект — вручную.
  2. «Путь» — указывается путь к данным из набора. Название, указанное именно в этом поле, будет фигурировать во всех дальнейших настройках СКД.
  3. «Заголовок» — строка с заголовком поля, который выводится в отчет или в настройках.
  4. «Ограничение поля» — ряд флагов-настроек, служит для указания того, может ли данное поле быть использовано в настройках (флаг установлен — нельзя ). Возможно указать следующие ограничения:
    • «Поле» — поле нельзя использовать в выборках СКД;
    • «Условие» — поле нельзя использовать как условие;
    • «Группа» — запрет на использование поля в группировках;
    • «Упорядочивание» — запрет использовать поле в сортировках.
  5. «Ограничение реквизитов» — ряд флагов-настроек ниже, указывает на ограничения для реквизитов поля, смысл установки данных ограничений такой же что и для полей.
  6. «Роль» — обозначает дополнительные свойства поля и его взаимоотношения с другими полями. Для редактирования ролей открывается специальный диалог:

Диалог редактирования ролей в СКД

  • «Без роли» — никаких особых «нагрузок» на поле не накладывается, режим по умолчанию для большинства полей;
  • «Период» — содержит номер периода, если поле имеет тип периода. Самый младший период должен иметь тип 1. Данный номер будет указывать, как в СКД рассчитывается итоги по полям остатка (например, в запросе рассчитываем итоги по различным периодам: ПериодСекунда = 1, ПериодДень=2, ПериодНеделя=3 и т.д.);
  • «Дополнительный» – указывает на то, что поле-период не является обязательным;
  • «Счет» — указывает на то, что поле является бухгалтерским счетом, используется для расчета бухгалтерских итогов;
  • «Вид» — строка-выражение, с помощью которого рассчитывается вид счета. Результатом выражения должно быть значение перечисления ВидСчета (Активный, Пассивный, Активно/Пассивный), либо число. Значение числа 0 соответствует активному счету, 1 – пассивному, 2 – активно-пассивному. Выражение записывается на языке выражений системы компоновки данных. Данная информация используется при расчете по полям бухгалтерских остатков;
  • «Остатки» – признак того, что поле является полем остатка;
  • «Имя» – строка, содержащая имя группы полей остатка (например, «Сумма», «Количество»);
  • «Тип» – тип остатка («НачальныйОстаток», «КонечныйОстаток», «Нет» — поле не является остатком);
  • «Бух. тип» – тип бухгалтерского остатка («Дебет», «Кредит», «Нет» — поле не является бухгалтерским остатком);
  • «Поле счета» – имя поля-счета, для которого рассчитываются остатки;
  • флаг «Игнорировать значения NULL» – если установлен, то в результат не нужно включать групповые записи по данному полю в случае, если поле содержит значение NULL;
  • флаг «Обязательное» — при выполнении запроса поле с указанным флажком будут присутствовать всегда, даже если не были выбраны в выборке.

Выражения упорядочивания СКД

  • «Выражение» — как упорядочивается это поле;
  • «Тип упорядочивания» — «по возрастанию» или «по убыванию»;
  • флаг «Необходимость автоупорядочивания» – автоматическое определение полей, по которым необходимо упорядочивать результат компоновки данных

Проверка иерархии наборов данных

  • «Набор данных» – набор данных для проверки иерархии;
  • «Параметр» – параметр, в который будет подставляться значение, для которого нужно получить дочерние элементы;

«Оформление» — параметры оформления поля набора данных. При редактировании открывается диалог:

Особенности использования набора данных:

  1. Платформа 1С допускает использование нескольких наборов данных.
  2. При определении в схеме компоновки данных связи между двумя наборами данных используется левое соединение первого набора ко второму, в ряде случаев устанавливается внутреннее соединение.
  3. Если необходимо разрешить установку отбора на вхождение в группу собственной иерархии, отличной от стандартной, то необходимо настраивать проверку иерархии на закладке «Наборы данных» в окне конструктора схемы компоновки.
  4. В системе компоновки могут быть реализованы следующие виды соединений двух наборов данных:
    • только «Все ко всем»;
    • «Левое»;
    • «Внутреннее».
  5. Если при настройке связи между двумя наборами данных установлен флаг «Обязательная связь» и в списке выбранных полей указаны поля только левого набора, то такие действия пользователя приведут к тому, что связь не будет реализована.
  6. Внешние данные передаются в набор-объект в системе компоновки данных средствами встроенного языка через процессор компоновки данных.

Набор данных типа "Запрос"

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

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

Особенности набора данных — запроса:

  1. Если в схеме компоновки данных использовать пакетные запросы, то результирующим запросом будет пакетный запрос.
  2. При использовании пакетных запросов содержимым набора данных будет считаться результат последнего набора.
  3. Синтаксические инструкции языка запросов для системы компоновки данных выделяются фигурными скобками <>.

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

  • либо с клавиатуры прямо в поле «Запрос»,
  • либо воспользоваться конструктором запроса, который позволяет создавать и редактировать запросы визуальными средствами.

Рассмотрим вариант создания текста запроса с помощью конструктора. Для вызова конструктора запроса нажмем кнопку «Конструктор запроса. «:

Как открыть конструктор запросов 1С

Конструктор запроса

Закладки конструктора запроса 1С:

На этой вкладке указывается источник данных и поля, которые необходимо выводить в отчет (по сути описываются конструкции ВЫБРАТЬ … ИЗ).

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

В контекстном меню виртуальных таблиц можно задать параметры этих таблиц.

На закладке «Таблицы и поля» конструктора запросов задают:
  1. источники данных запросов, в качестве которых могут выступать реальные и виртуальные таблицы;
  2. набор полей из таблиц — источников данных запроса;
  3. поля в виде произвольного выражения.

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

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

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

В случае безусловного соединения, в конструкторе запросов достаточно определить выбираемые таблицы, не указывая, по каким полям они будут связаны (то есть не заполняя закладку Связи).

На практике чаще встречаются задачи соединения по определенному полю двух таблиц.

В конструкторе запросов тип условного соединения регулируется флажком «Все» — где он стоит, из той таблицы и выбираются все записи.

Флажок «Все», устанавливаемый у таблицы, выбранной на закладке «Связи» конструктора запросов означает что в результат запроса надо включить все записи этой таблицы.

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

Вкладка "Группировка"

На данной вкладке система позволяет группировать и суммировать нужные поля результата таблицы. Описывается использование конструкций СГРУППИРОВАТЬ ПО, СУММА, МИНИМУМ, СРЕДНЕЕ, МАКСИМУМ, КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗЛИЧНЫХ.

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

Вложенные таблицы не попадают ни в группируемые, ни в агрегируемые поля.

Количество записей в результате запроса можно узнать с помощью агрегатной функции КОЛИЧЕСТВО(*).

Вкладка "Условия"

Отвечает за все условия, накладываемые на получаемые данные, т.е. за всё, что идёт в тексте запроса после конструкции ГДЕ.

Вкладка "Дополнительно"

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

Группировка «Выборка записей»:
  • Первые — параметр, возвращающий в запрос только N записей (оператор ПЕРВЫЕ ); позволяет вывести в отчет первые N записей, которые будут отобраны с учетом правил упорядочивания, настроенных в конструкторе запросов;
  • Без повторяющихся — обеспечивает уникальность полученных записей (оператор РАЗЛИЧНЫЕ) и позволяет исключить из результирующей таблицы запроса одинаковые строки (данная операция распространяется только на детальные записи );
  • Разрешенные — позволяет выбирать только те записи, которые позволяет выбрать система с учетом настройки RLS (конструкция РАЗРЕШЕННЫЕ).
Группировка «Тип запроса»:
  • определяет тип запроса:
    1. Выборка данных;
    2. Создание временной таблицы;
    3. Уничтожение временной таблицы.
Флаг «Блокировать получаемые данные для последующего изменения»:
  1. позволяет включить возможность установки блокировки данных, которая обеспечивает сохранность данных от момента их чтения до изменения (актуально только для «Автоматического режима блокировок», конструкция ДЛЯ ИЗМЕНЕНИЯ); позволяет заблокировать данные указанных таблиц-источников на чтение (в рамках транзакции).
  2. в режиме автоматических транзакционных блокировок) происходят блокировки:
    • в варианте файл-сервер — на уровне таблиц базы данных;
    • в варианте клиент-сервер — на уровне записей таблиц базы данных.
  3. Если список «Таблицы для изменения» — пуст, то будут блокироваться данные всех таблиц, задействованных в запросе, иначе — только таблиц, указанных в списке.

Вкладка "Объединения/Псевдонимы"

На этой вкладке устанавливается возможность объединения разных таблиц и псевдонимы (конструкция КАК).

В левой части указываются таблицы, если установить флаги напротив таблицы, будут использоваться конструкции ОБЪЕДИНИТЬ, иначе — ОБЪЕДИНИТЬ ВСЕ (отличия двух способов тут ).

В правой части указываются соответствия полей в разных таблицах, если соответствие не указано, запрос будет возвращать NULL.

На закладке «Объединения/Псевдонимы» конструктора запросов можно:
  1. Задать список запросов (в результирующую выборку попадут записи всех указанных запросов).
  2. Задать имена полей результирующей таблицы.

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

Настройки, сделанные в разделе «Объединения/Псевдонимы» конструктора запросов, отразятся на информации, отображаемой в других разделах конструктора, следующим образом:

  1. Если заданы псевдонимы полей результирующей таблицы, то новые названия появляются на закладке «Порядок» в списке полей.
  2. При объединении запросов на ряде закладок (в том числе «Таблицы и поля») появляется возможность переключения между объединяемыми запросами.
Используя конструктор запроса, повлиять на порядок записей в результирующей таблице запроса можно:
  1. на закладке «Порядок»;
  2. на закладке «Объединения/Псевдонимы».

Таблица, полученная в результате запроса, может быть отсортирована по алфавиту по нужному полю:

  1. по полю, присутствующему в запросе;
  2. по любому полю таблицы-источника (кроме случаев объединенных запросов).

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

Вкладка "Порядок"

Указывается порядок сортировки значений (УПОРЯДОЧИТЬ ПО) — по убыванию (УБЫВ) или возрастанию (ВОЗР).

Флаг «Автоупорядочивание» (в запросе — АВТОУПОРЯДОЧИВАНИЕ):

  • если установлен, то система будет сортировать данные (по умолчанию система 1С 8.3 выводит данные в «хаотичном» порядке).
  1. записи в результирующей таблице запроса будут упорядочены по полям сортировки по умолчанию для таблиц-источников данных;
  2. если заданы настройки на станицах «Группировка» или «Итоги», то порядок записей в результирующей таблице запроса будет определяться этими настройками.

В случае установки флага «Автоупорядочивание» на закладке «Порядок» конструктора запросов записи в результирующей таблице запроса (если эта таблица уже упорядочена по полю, хранящему ссылку на иерархический справочник) будут упорядочены по значению основного представления для этого поля. Т.е. если справочник отсортирован по ссылке (= наименованию), но основное его представление — код, то после включения автоупорядочивания сортировка изменится на сортировку по коду.

В зависимости от иерархии справочника, можно выводить итоги связанных таблиц по иерархии. Для этого предназначена закладка «Итоги» конструктора запросов:

В ней указывается:

  1. Поле, по которому группируем, и тип его итогов:
    • Элементы — итоги только по конечным элементам;
    • Элементы и иерархия — итоги по папкам и по конечным элементам;
    • Только иерахия — итоги только по папкам.
  2. Флаг «Общие итоги» — суммирование всех полученных запросом строк;
  3. Итоговое поле — по которому собственно и считаем итоги.

Таким образом, при использовании секции «ИТОГИ . ПО» количество записей в результате запроса увеличится (по сравнению с их количеством без секции «ИТОГИ . ПО»).

Результатом запроса с итогами будет дерево значений:

Вкладка "Пакет запросов"

На этой вкладке можно создавать новые пакеты запросов, а также использовать её для навигации.

В тексте запроса пакеты разделяются символом «;» (точка с запятой).

В регистрах накопления на вкладке «Таблицы и поля» выберем виртуальную таблицу «ОстаткиМатериалов»и добавим её в окна «Таблицы» и «Поля»:

  1. Двойной щелчок на таблице приведет к тому, что таблица будет помещена в табличное поле «Таблицы». В этом поле отображаются все таблицы, из которых будут получаться данные запроса.
  2. Раскрыв таблицу «ОстаткиМатериалов», мы увидим, какие поля мы можем получать из нее. В данном случае нас интересуют все поля, поэтому просто сделаем двойной щелчок по таблице и конструктор запроса поместит все поля таблицы в выбранные поля.

Добавление полей в запрос

На этом создание запроса завершено — мы создали запрос, который будет получать данные из таблицы остатков.

Нажмем кнопку «ОК» для завершения работы конструктора запроса:

Система компоновки данных 1С

Флаг Автозаполнение

Флаг снят — поля не доступны.

Текст запроса, который был создан с помощью конструктора запросов, система 1С:Предприятие 8 поместит в поле «Запрос». Это поле представляет собой текстовый редактор, в котором можно вручную отредактировать существующий запрос. Кроме того, можно снова вызвать конструктор запроса и отредактировать запрос при помощи него.

Закладка «Ресурсы»

Ресурсы — это поля набора данных, по которым будет происходить агрегация значений.

Особенности использования закладки «Ресурсы»:

  1. Для того, чтобы в системе компоновки данных какое-либо поле можно было выводить в области данных таблицы это поле должно быть отмечено как ресурс.
  2. При настройке схемы компоновки данных возможно определить в качестве ресурса не числовое поле.

в качестве ресурса не числовое поле

Выражение «Количество(. )» формируется автоматически при добавлении нечислового ресурса. Помимо этого в раскрывающемся списке «Выражение» можно выбрать «Максимум(. )», «Минимум(. )».

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

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

Закладка "Ресурсы"

Для добавления всех доступных числовых полей в список ресурсов нужно нажать на кнопку «>>».

Закладка «Макеты»

Макеты, созданные в окне конструктора схемы компоновки в разделе «Макеты», позволяют:

  1. задать оформление всего отчета;
  2. задать оформление отдельного элемента настроек;
  3. определить данные, которые необходимо выводить в отчет.

Закладка Макеты

Форматирование (оформление) ячеек доступно через палитру свойств:

Форматирование ячейки макета 1С

Задать оформление всего отчета или отдельного элемента настроек можно на закладке «Настройки»:

оформление всего отчета или отдельного элемента настроек

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

  1. поле «Склад» использовано в списке выбранных полей настроек системы компоновки данных;
  2. Поле «Склад» использовано элементе структуры настроек системы компоновки данных «Группировка»;
  3. Поле «Склад» использовано элементе структуры настроек системы компоновки данных «Таблица».

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

Закладка «Настройки»

Закладка «Настройки» предназначена для задания настроек отчета по умолчанию, т.е. тех настроек, которые будет использовать пользователь при старте отчета в режиме 1С:Предприятие.

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

Конструктор настроек компоновки

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

Замечание: Пользовательское поле может быть создано вида и поле-выбор, и поле-выражение.

Поле-выбор и поле-выражение

На первом шаге в конструкторе указывается тип отчета, который необходимо создать. Нас интересует таблица, поэтому установим соответствующий переключатель и нажмем кнопку «Далее >».

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

Закладка Настройки

Нажмем кнопку «Далее >».

На следующем шаге нужно указать, по каким полям следует группировать строки и колонки таблицы. Мы хотим видеть в строках номенклатуру, а в колонках склад. Будем действовать соответственно — перетащим при помощи мыши все поля, за исключением поля «Склад», в табличное поле строк, а поле «Склад» — в табличное поле колонок.

Конструктор настроек компоновки данных

Нажмем кнопку «Далее >».

На следующем шаге нам будет предложено выбрать поля, по которым нужно упорядочивать данные. Мы не будем выбирать поля упорядочивания, а доверим системе 1С:Предприятие 8 самой решать как будет упорядочиваться отчет.

Нажмем кнопку «ОК» для завершения работы конструктора.

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

На этом работа со схемой компоновки закончена, мы сделали все, что хотели: создали запрос, указали формулы для расчета ресурсов, создали настройки по умолчанию. Закроем конструктор.

Результат при автоматическом упорядочивании данных

Как видно, не очень-то понятно.

Совсем другое дело.

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

Результат с группировкой по полю

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *