Modber Сообщество
профессионалов по 1С

Вычисляемые поля в СКД



Платформы: 1С:Предприятие 8.3, 1С:Предприятие 8.2, 1С:Предприятие 8.1
Конфигурации: Все конфигурации
2014-08-12
23455 
trushina1993
0  
Бывает, и очень часто, что при разработке отчетов недостаточно полей, назначенных в наборе данных. И нужно отразить поля, которые рассчитываются на основе существующих. С помощью вычисляемых полей можно добавить, сколько требуется полей, если нужно составить сложное поле из разных наборов данных, например типа «запрос и объект».

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

 


Пример
В отчет «Задолженность Контрагентов» добавляем поле «Пеня».
Рассчитываем так: при просрочке менее пяти дней пеня не взимается, в ином случае пеня равняется одному проценту от суммы долга, который просрочен за каждый день просрочки.

Открываем «Cхему компоновки данных» (СКД) и на вкладке «Вычисляемые поля» добавляем поле.
Дадим ему имя «Путь к данным» – «Пеня», в колонку выражение введем такой код:

Выбор
Когда КоличествоДнейПросрочки >= 5
Тогда СуммаПросрочки * 0.01 * КоличествоДнейПросрочки
Иначе 0
Конец


Задаем тип значения – «Число» и формат – «ЧЦ=14; ЧДЦ=2»

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

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

Сумма(СуммаПросрочки) * 0.01 * Максимум(КоличествоДнейПросрочки)

Если мы вводим такое выражение в колонку «Выражение» для ресурса «Пеня», то получаем правильный расчет по контрагентам.

Это базовые основы по работе с вычисляемыми полями в СКД.



Бесплатная юридическая
консультация по телефону

8 (499) 350-80-26(Москва)
8 (812) 627-15-62(Спб)

звонок бесплатный

В центре внимания

Комментарии (1)