1С скд вычисляемые поля условие если

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


Пример
В отчет «Задолженность Контрагентов» добавляем поле «Пеня».
Рассчитываем так: при просрочке менее пяти дней пеня не взимается, в ином случае пеня равняется одному проценту от суммы долга, который просрочен за каждый день просрочки.
Открываем «Cхему компоновки данных» (СКД) и на вкладке «Вычисляемые поля» добавляем поле.
Дадим ему имя «Путь к данным» – «Пеня», в колонку выражение введем такой код:
Выбор
Когда КоличествоДнейПросрочки >= 5
Тогда СуммаПросрочки * 0.01 * КоличествоДнейПросрочки
Иначе 0
Конец
Задаем тип значения – «Число» и формат – «ЧЦ=14; ЧДЦ=2»
Добавляем поле «Пеня» в список ресурсов с функцией «Сумма()». Вычисляем итоги по контрагентам и итоги в целом. В итоге выполнения отчета в поле «Пеня» по контрагенту будет отражаться сумма пеней за каждый документ, по которому выполняется условие начисления пеней.
Но на практике при расчете пени срок и сумма просрочки берутся в целом по контрагенту. Для того чтобы отчет выводил нужные данные по контрагенту, необходимо усложнить выражение агрегирования для ресурса «Пеня»:
Сумма(СуммаПросрочки) * 0.01 * Максимум(КоличествоДнейПросрочки)
Если мы вводим такое выражение в колонку «Выражение» для ресурса «Пеня», то получаем правильный расчет по контрагентам.
Это базовые основы по работе с вычисляемыми полями в СКД.

На главную 1с форева.ру
На страницу «Программисту \ Разработка СКД отчетов в 1с.».
Поле вычисляемое только в группировке отчета СКД 1с.
Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 06.02.2017

1с. СКД. Вычисляемое поле в группировке.
Эта методика используется:
— когда итог в группировке отчета СКД 1с требуется не просто просуммировать колонку подчиненныч строк, а вычислить значение по формуле.
— когда вам надо показать только итог в группировке, не показывая основного значения.
Делается эта фишка следующим образом:
1. В отчет СКД добавить вычисляемое поле, Выражение=0
2. ДВАЖДЫ добавить в «Ресурсы» вычисляемое поле. Один раз как «0», второй как «Вычислить(…». Для каждого проставить «Расчитывать по…» группировки кому считать — в «Вычислить(…», кому нет — в «0».
Немного теории по функции СКД «Вычислить».
Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
— Выражение – строка, содержащая вычисляемое выражение;
— Группировка – строка, содержащая имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка
— ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
— Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки.
Например:
Сумма(Продажи.СуммаОборот) / Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)
В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке.
Еще пример:
ВычислитьВыражение(«Сумма(Стоимость)/Выбор Когда Сумма(Количество)=0 Тогда 1 Иначе Сумма(Количество) Конец»,»Подразделение»,»Группировка»)
Уточнение!
Существует более другой, более простой, метод вывода не суммовых итогов в группировке, который можно использовать в некоторых случаях. Ярким примером такого использования является колонка с процентами. Делается это через пользовательские поля.

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

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