Разделы сайта
Выбор редакции:
- Португальские пирожные: ингредиенты, нюансы и секреты приготовления
- Как приготовить вкусные пирожки с печенью по пошаговому рецепту с фото
- Котлеты из свинины на пару
- Грибная подлива из сухих грибов
- я когда варю картошку, никогда не выливаю отвар!
- Пропитка для бисквита: как сделать бисквит сочным
- Лучшие рецепты подливы мясной, грибной, сырной, томатной и сметанной: описание
- Салат овощной с пекинской капустой: рецепты
- Средняя цена, вес, состав и калорийность роллов: унаги маки Что такое Унаги Маки
- Показания и противопоказания к употреблению холодца
Реклама
Скд выводит итоги. Примеры применения функции скд - вычислитьвыражение. Получение значения показателя из предыдущей строки |
В данной небольшой заметке хочу показать, как можно произвести суммирование значений на различных уровнях группировки, в отчете с использованием системы компоновки данными. Данное значение может быть рассчитано только на данном уровне группировки, так как, выше или ниже, отсутствуют значения для расчета. Например, на уровне детальных записей, нет данных по максимальному количеству в группе, потому что эти данные верны только для группы в целом, а не для отдельных ее составляющих. Соответственно, теперь необходимо рассчитать итоги, по выше находящимся группировкам («Склады», «ТипыСкладов») и общий итог. ВычислитьВыражениеСГруппировкойМассив("Сумма(СуммаОборот)", "Контрагент")
СоединитьСтроки(Массив(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений("Представление(Сумма(НаборДанных.СуммаОборот)),Сумма(НаборДанных.СуммаОборот)","НаборДанных.Контрагент"),"2"))) Параметры: Тип: Строка. Выражение, которое нужно вычислить. Строка, например, Сумма(СуммаОборот). Тип: Строка. Выражения полей группировки – выражения полей группировки, перечисленные через запятую. Например, Контрагент, Партия. Тип: Строка. Выражение, описывающее отбор, применяемый к детальным записям. В выражении не поддерживается использование агрегатных функций. Например,ПометкаУдаления = Ложь. Тип: Строка. Выражение, описывающее отбор, применяемый к групповым записям. Например, Сумма(СуммаОборот) > &Параметр1. Максимум(ВычислитьВыражениеСГруппировкойМассив ("Сумма(СуммаОборот)", "Контрагент")); Подробное описание синтаксиса функции можно найти по адресу http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582 В итоге получаем следующую конструкцию: При построении отчетов есть ряд задач, которые при решении «в лоб» часто приводят к написанию тяжелых запросов или запросам в цикле или ручному выводу данных в таблицу . Вот примеры таких задач:
И все эти задачи решаются элементарно с помощью функций СКД – буквально за пару минут . Без запросов в цикле и кривого кода. Сегодня рассмотрим использование некоторых функций СКД на конкретных примерах. Видео 1. Как получить сумму в отчете нарастающим итогом?Подобные задачи часто встречаются на практике. Наиболее типичный пример – в отчет должны выводиться продажи по периодам, необходимо знать не только сумму продаж текущего месяца, но и нарастающим итогом с начала формирования отчета. На самом деле эту задачу можно решить и с помощью запроса (без функций СКД), но есть 2 проблемы:
С помощью функций СКД эта задача решается одной строчкой кода, и отчет будет работать максимально быстро, смотрим: Видео 2. Как получить значение из предыдущей строки отчета?Такой функционал может быть полезен, когда необходимо отслеживать тренд определенного ресурса – происходит уменьшение или увеличение относительно предыдущего состояния, плюс должна рассчитываться дельта. Приведем несколько примеров, когда это может быть полезно:
Такие задачи также трудоемко решить с помощью запроса, а в СКД это делается одной строкой: Видео 3. Как сравнить итог по текущей строке с эталонным значением?Пример, когда этот функционал может быть полезен:
То есть речь о том, что нужно сравнить каждую строку продаж менеджера с продажами руководителя отдела. А эти данные могут, например, использоваться для начисления премии. И опять же с помощью СКД эта задача решается в одну строку: Видео 4. Получение нарастающего итога в кросс-таблицеВ отчете вида кросс-таблица нарастающий итог может считаться как вертикально (по строкам), так и горизонтально (по столбцам). Мы покажем, как с помощью одного параметра СКД управлять направлением расчета итогов: Видео 5. Вывод табличной части в отдельной ячейке отчетаДопустим, необходимо разработать отчет, который выводит информацию о документах. При этом в отдельной ячейке должна содержаться табличная часть документа. Чтобы решить подобную задачу с помощью обычного запроса, потребуется писать ручной вывод результата в табличный документ. Итоги должны присутствовать в любом отчете. Например, если у вас есть поля Наименование количество цена и сумма, то логично по последние колонки получить общий итог. Сегодня рассмотрим, как это сделать с помощью СКД (Система компоновки данных). На сегодняшний день СКД очень широко применяется для создания различных отчетов. Связанно это с тем что средствами СКД можно создать практический любой отчет. Те кто пользовался системой компоновки данных знает что это очень удобно и быстро не нужно судорожно писать код можно все сделать в конструктором. Для примера я возьму отчет который мы создавали в прошлой статье. Выглядел он у нас вот так. Давайте к нему добавим общий итог по колонке Сумма. Как вывести общие итоги по колонке с помощью СКД 1СИ так запускаем конфигуратор открываем наш отчет Приход Товара и кликаем на Схему компоновки данных. В открывшемся окне переходим на вкладку Ресурсы. Слева из окна доступные поля выбираем поле Сумма и перетаскиваем его в правое окно. Больше не чего не меняем. Запускаем 1С и смотрим что у нас получилось. Если вы все сделали правильно, то в конце таблицы должен появиться итог по колонке. В результате получим итоговую сумму по всем колонкам. Ну вот мы и научились выводит итого по колонкам с помощью системы компоновки данных. ВычислитьВыражение - довольно сложная функция СКД для понимания, а примеры применения в справочной информации довольно скудны. В данной статье рассмотрены примеры, которые наверняка пригодятся каждому разработчику:
1. Получение показателя нарастающим итогомПолучим количество товара нарастающим итогом на уровне группировки. Для этого создаем вычисляемое поле (см. рисунок 1).На вкладке "Ресурсы" задаем функцию для вычисляемого поля: ВычислитьВыражение("Сумма(КоличествоОборот)", "Первая", "Текущая") которая будет суммировать количество товаров от первой записи до текущей (см. рисунок 2). Если количество товара нарастающим итогом требуется получать на уровне детальных записей, то функцию ВычислитьВыражение задаем для вычисляемого поля на вкладке "Вычисляемые поля" (см. рисунок 3). В зависимости от уровня получения нарастающего итога, создаем группировку (см. рисунок 4): на уровне ресурсов - группировку по товарам, на уровне ДЗ - группировку детальных записей.
2. Получение значения показателя из предыдущей строкиПолучим курс валюты на дату и предыдущую дату. Для этого создаем вычисляемое поле и в поле выражение пишем следующее выражение (см. рисунок 5):ВычислитьВыражение("Курс", "Предыдущая", "Предыдущая") которое будет брать предыдущее значение курса валюты для текущей строки, последний параметр функции ограничивает получение данных. Так как работаем на уровне детальных записей, сразу переходим к вкладке "Настройки" и создаем группировку - детальные записи. 3. Получение показателя нарастающим итогом в кросс-таблицеПолучим количество товара нарастающим итогом в разрезе периода. Для этого создаем вычисляемое поле (см. рисунок 1). На вкладке "Ресурсы" для вычисляемого поля укажем следующее выражение (см. рисунок 6):ВычислитьВыражение("Сумма(КоличествоОборот)", "Период", "Первая", "Текущая") которое на уровне группировки будет вычислять количество товара в промежутке от первой строки до текущей в разрезе периода по каждой номенклатуре. На вкладке "Настройки" создаем таблицу с группировкой по номенклатуре в строке и группировкой по периоду в колонке (см. рисунок 7). 4. Вывод данных табличной части в одну строкуСпособы вывода данных табличной части в одну строку, включая способ с использованием функции ВычислитьВыражение, рассмотрен в статьеВ компоновке данных настройка итогов выглядит несколько иначе, чем в запросах. Определим в системе компоновки данных набор данных «Запрос». В самом запросе мы не настраиваем итоги, а переходим на закладку «Ресурсы» компоновки данных. На уровне схемы компоновки данных мы определяем ресурсы . Это те поля, которые нужно посчитать на уровне группировок. Нажмём на кнопку «>>» и система сама перенесёт все числовые поля и определит их в качестве ресурсов. В ресурсах можно указывать и нечисловые поля. Например, если выбрать реквизит «Ссылка», то система подсчитает количество документов в наших группировках. Эта информация тоже может быть полезной. Итак, в схеме компоновки мы определяем только ресурсы , а сами группировки настраиваются на уровне варианта отчёта. Так же пользователь сам может создать группировки, которые хочет видеть в своей настройке варианта отчёта. Создадим стандартную настройку компоновки данных. Выберем тип отчета — список. Нажмём кнопку «Далее». Выберем все поля и переместим поле контрагент на самую верхнюю позицию. Нажмём кнопку «Далее». Выберем все поля и переместим поле контрагент на самую верхнюю позицию. Нажмём кнопку «OK». Получилась следующая настройка: Как видно, в настройке варианта отчёта ресурсы выделяются зелёной пиктограммой, чтобы можно было их быстро отличить от других полей. Если открыть наш отчёт в режиме 1С:Предприятие и сформировать его, то мы увидим, что формируются итоговые данные на уровне группировок. Итоги по номенклатуре и по контрагентам. Настройка ресурсов в схеме компоновки данных 1СТеперь обратим внимание на настройки, которые существуют у ресурсов . В поле «Выражение» мы можем указать агрегатную функцию, по которой можно получить значение ресурса. В выпадающем списке можно увидеть ряд стандартных функций, но не все. Например, нет функций . Здесь в поле «Выражение» мы можем написать и своё собственное выражение. В поле «Выражение» мы можем обращаться и к функциям общих модулей. Кроме того, можно указать в поле «Расчитывать по…» по каким группировкам необходимо рассчитывать ресурс. Если поле «Расчитывать по…» не заполнено, то итоговое значение ресурса будет считаться на всех уровнях группировки, которые определены в настройках варианта отчёта
. В нашем случае нужно заполнить поле «Расчитывать по…» ресурса «Количество», так как мы можем продавать товар с разными единицами измерения. Например: масло в литрах и колёса в штуках. Не правда ли, нелогично будет складывать количество этих товаров? Поэтому нам нужно оставить суммирование количества на уровне номенклатуры, а на уровне контрагентов Если сформируем отчёт, то увидим, что итоги по количеству считаются только по номенклатуре, а по контрагентам итоги количества пустые. Возможности при описании ресурсов в схеме компоновки данных 1СДавайте рассмотрим ряд неочевидных особенностей связанных с описанием ресурсов .
Если сформируем отчёт, то увидим, что по контрагенту «Дерия» минимальная закупка составляет пять единиц номенклатуры «Бумага самоклеющаяся».
Как видно, все параметры функции «Вычислить» являются строковыми . Чтобы поле количество отображалось в отчёте красиво, настроим его на вкладке «Наборы данных». В строке количество найдём поле «Параметры редактирования». Откроем диалог, отыщем строку «Формат» и отредактируем в нём форматную строку, поставив на вкладке «Число», значение «Точность» равным двум. Запустим отчёт и увидим результат вычисления процента закупки по контрагенту «АУПП КОС ТОО» относительно В конце статьи хочу посоветовать вам бесплатный от Сотникова Анатолия. Это курс от опытного программиста. Он на отдельной базе покажет вам, как строить отчеты в СКД. Вам только нужно внимательно слушать и запоминать! Вы получите ответы на такие вопросы: Вот один из уроков о закладке компоновки данных в запросе: |
Читайте: |
---|
Популярное:
Новое
- Как приготовить вкусные пирожки с печенью по пошаговому рецепту с фото
- Котлеты из свинины на пару
- Грибная подлива из сухих грибов
- я когда варю картошку, никогда не выливаю отвар!
- Пропитка для бисквита: как сделать бисквит сочным
- Лучшие рецепты подливы мясной, грибной, сырной, томатной и сметанной: описание
- Салат овощной с пекинской капустой: рецепты
- Средняя цена, вес, состав и калорийность роллов: унаги маки Что такое Унаги Маки
- Показания и противопоказания к употреблению холодца
- Чоризо – что это такое и состав колбасы, пошаговые рецепты приготовления в домашних условиях с фото