Как в СКД 1С 8 не рассчитывать ресурсы по отдельным группировкам
Схема компоновки данных. Как не рассчитывать итоги по определенным, нужным, выбранным, группировкам или по-другому не рассчитывать суммы по нижеследующим группировкам. Демонстрация на практическом примере.
При создании отчета с помощью схемы компоновки данных порой возникают ситуации, когда в отчет собираются данные "неоднородные". Например, в одних колонках могу собираться количественные данные, а в другие только суммовые, и чтобы компоновка отчета автоматически не суммировала те показатели (ресурсы) необходимо дополнительно настроить СКД. Продемонстрирую это на примере прикладного отчета "Анализ заказов покупателей для УТ 11, КА 2", который размещен в разделе готовых решений. Отчет собирал данные с двух регистров накопления: один из регистров содержал сведения по отгрузке номенклатуры по заказу только в количественном выражении, другой - сведения по оплатам в разрезе заказов клиентов. Исходно отчет был создан без возможности вывода группировки по номенклатуре. Но оказалось, что это необходимо пользователям, чтобы видеть состав номенклатуры и услуг, которые продаются по заказу. Нажатие на изображении увеличит его В запросе сбора данных отчета была номенклатура, т.к. она выбиралась по данным регистра, из которого собирались данные по отгрузке, т.е. количественные данные. Из другого регистра собирались суммовые показатели оплаты заказа без учета номенклатуры, т.к. в регистре учета оплат номенклатура в принципе не предусмотрена как измерение регистра. Отчет был реализован с помощью схемы компоновки данных, поэтому его доработка облегчалась - была добавлена группировка "Номенклатура" в структуре группировок отчета. Для добавленной группировки "по умолчанию" было установлено не отображать ее в сформированном отчете, так, как большинство пользователей отчета привыкли, что отчет не выводить номенклатуру и услуги. Но с помощью "Состава пользовательских настроек группировки" была настроена возможность управлять выводом группировки в отчете через флажок настройки на форме отчета. Нажатие на изображении увеличит его После данных действий стало возможным вводить группировку по номенклатуре в отчете. Но за этим следовал "подводный" камень. При соединении запросов, которые выбирали один количественные показатели, а другой - суммовые, неизбежно возникает ситуация, что т.к. номенклатура есть в одном запросе (по отгрузке), но нет в другом (по оплате), то суммы по номенклатуре, которые на самом деле относятся к заказу будут присоединяться к строкам номенклатуры. И таким образом сумма по строкам-группировкам по заказам будет больше на сумму заказа, умноженную на количество строк товаров и услуг в нем. Что не корректно для суммовых показателей отчета. Нажатие на изображении увеличит его Как уже было отмечено выше, в описании порядка сбора данных отчета - он не предусматривает сбор суммовой информации состояния оплаты по номенклатуре в принципе, т.к. в типовых конфигурациях не предусмотрен механизм разнесения оплаты детально до номенклатуры. Оплата разносится максимально, если выбрана соответствующая настройка детализации разнесения оплат в программе, по заказам клиентам. Поэтому и получилась сложившаяся ситуация. Потребуется дополнительно настроить схему компоновки данных отчета. Т.е. нужно в СКД указать, чтобы схема не присоединяла суммы к строкам группировки по номенклатуре, и продолжала суммировать, начиная с группировки по заказам. Без методической поддержки в данном случае не обойтись, т.к. среди наименее описанных вкладок в форме настройки СКД находится вкладка "Ресурсы". Поэтому изучать поведение отчета по данным настройки выражений можно либо личным опытом, либо обратиться к опыту пользователей сети, изложенного в обсуждении на форуме infostart "Как отключить расчет ресурсов по нижестоящим группировкам в отчёте на СКД". Нажатие на изображении увеличит его Для этого нужно на вкладке "Ресурсы" СКД для тех ресурсов, которые должны рассчитывать для отдельных, определенных нами, группировок установить выражения по типу "Сумма(ВычислитьВыражениеСГруппировкойМассив("Имя_Поля", "Имя_ДоступногоПоля"))", в котором "Имя_Поля" - имя поля, в колонке которого будет выполняться расчет, "Имя_ДоступногоПоля" - поле группировки, по/с которого выполнять суммирование группировок. Указывается выражение для всех полей ресурсов, которые должны рассчитываться подобным же образом. Подробное описание использования выражений при расчете ресурсов отчета приведено в статье на infostart "Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив" Нажатие на изображении увеличит его Далее в колонке "Рассчитывать по..." указать группировки, по которым будет выполняться расчет и суммирование. Нажатие на изображении увеличит его Но выше проделанных действий будет недостаточно для достижения результата. Так же необходимо дополнительно "сообщить" схеме компоновки о том, что для группировок "Номенклатура" сумма должны быть равна 0. Дополнительно добавляем поля тех же ресурсов, для которых ранее уже установили выражения и "Рассчитывать по...". И для добавленных полей в выражении указываем значение "0", а в "Рассчитывать по..." только саму эту группировку. Нажатие на изображении увеличит его Для красоты, чтобы не выводились "нули" в строках номенклатуры колонок с суммовыми показателями сформированного отчета уберем вывод ресурсов по оплате из группировки номенклатуры. Нажатие на изображении увеличит его Теперь, если сформировать отчет, то с группируемыми суммами все будет в порядке - как в версии отчета, когда он выводился без добавленной группировки для детализации. Нажатие на изображении увеличит его Оцените, оказалась ли эта публикация полезна для Вас?
© www.azhur-c.ru 2013-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу. 11-05-2022 Журавлев А.С. (Сайт azhur-c.ru) |
|
|||||||||||||
Copyright 2013-2020. Azhur-c.ru
ИП Журавлев Александр Сергеевич ИНН 667000271590 ОГРНИП 312667014300041 |