1с скд как вывести ресурс только в итогах
Ну, есть простая табличка в СКД.
Одна группировка строк и одна группировка колонок.
Нужно чтобы итоги по одному из ресурсов выводились только в общих итогах по строке и больше нигде.
Есть, поставить галочку Общие итоги «Рассчитывать по. »
(4)
Забыл немаловажное дополнение, например для группировки
Ресурс = СУММА(Ресурс)
для итогов
Ресурс = СовсемДругойРесурс
(4) Ага, чичас. Рассчитывать по группировкам он конечно перестает, но колонки этого ресурса все равно выводит (пустые).
(3) в оформлении детальных записей Текст = «» поставь, или в представлении на закладке данных
(7) Дык колонки лишние от этих манипуляций никуда не денутся.
(6) А куда вывести итоги, без колонки ресурса?
(9) у него горизонтальные итоги по строке
(10) Они самые.
или я туплю или нарисуй и заскриньшоть сюда, что хочешь сделать
А так тулит их еще и по каждому значению группировки колонок.
Вот такое хочу:
http://i47.tinypic.com/qpf0xi.png
не, без пузыря тут с ходу не осилить.
Что-то я через макеты никак шапку общих итогов зацепить не могу.
Что-то я затупил. Все ж проще гораздо.
При вычислении ресурсов прихода и расхода играю знаком в зависимости от значения группировки — тогда итоги сразу дают дельту.
Похоже решена задача, но все равно хочу кинуть полезную ссылку http://1cskd.ru/2010/06/vyvod-polej-v-nuzhnoj-kolonke/
(18) Спасибо. Однозначно я затупил. Прием же простенький и эту статью от IronDemon я фиг знает когда читал. Пора в отпуск 🙂
А у меня по итогу вообще без ухищрений решается.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший
Как в СКД вывести ресурс только по нужным уровням иерархии
Рассмотрим, как в СКД вывести ресурс только по нужным уровням иерархии.
Имеем отчет с вот такой структурой:

У нас есть ресурс «Количество», который вычисляется для всей иерархии:

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

Что нужно сделать?
Все очень просто, хоть и не совсем очевидно.
Заходим в условное оформление нужной нам группировки и добавляем новое условие:

В поле Оформление ставим флажок напротив «текст» и НИЧЕГО не пишем в текст. Таким образом мы говорим СКД, что надо выводить пустое поле. Выглядеть настройка будет вот так:

В условии используем системное поле «УровеньВГруппировке» и ставим «Не равно» «1». Таким образом мы говорим СКД, что наше оформление распространяется на все уровни группировки, кроме первого (соответственно, если вам надо выводить итоги только для первого и второго уровня, то вид сравнения ставите «Не в списке»,а в значение: «1,2»)

В оформляемых полях выбираем наш ресурс:

Все, больше ничего делать не нужно. Сохраняем наш отчет и проверяем результат:

Готово! Теперь вы знаете, как в СКД вывести ресурс только по нужным уровням иерархии
Вывод ресурса в СКД только один раз, а не во всех группировках
Частая задача при создании отчетов на СКД (и не только), сделать так, чтобы некий ресурс при выводе отчета в виде кросс-таблицы, выводился не в каждой колоночной группировке а только один раз. Например отчет по номенклатуре, где сначала выводятся например цена, а потом остатки по складам. Если сделать обычный отчет в виде кросс-таблицы, то ресурс цена будет попадать во все склады. Посмотрим как это обойти. Для начала создадим простой отчет, который будет выводить обороты регистра по контрагентам и товарам показывая два ресурса.

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

количество исчезла, но совсем(( Нас это не устраивает. Немножечко обманем СКД. Создадим новое поле в запросе с одним значением для всех записей.

Теперь добавим в настройки отчета еще одну группировку (обратите внимание что она не вложенная, а рядом) и настроим для нее вывод полей. Можно радоваться жизни.
СКД: 5 советов, как сделать лучше

В отчете есть поле ссылочного типа (Номенклатура, Клиент, Приходная накладная). А мы выводим его дочернее поле. Например, для номенклатуры — полное наименование, для Клиента — публичное наименование. Красота! Только карточку номенклатуры или клиента уже не открыть (но иногда очень хочется) — в данных расшифровки нет ссылки.

В отчет выведено дочернее поле тип строка
Как же сохранить расшифровку? Есть три варианта — с помощью условного оформления, с помощью выражения представления, и последний способ — создать свой макет поля.
Вариант с использованием условного оформления наиболее практичный, так как позволяет решить задачу без конфигурирования, и более гибкий. Итак, там, где выводилось поле Клиент.Публичное наименование выводим поле Клиент и создаем элемент условного оформления: оформляемое поле Клиент, условие не ставим, оформление в параметре Текст — выбираем поле компоновки данных Клиент.Публичное наименование.

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

Настройка свойства Выражение представления
Решение с помощью макета поля — создаем макет поля Партнер. Указываем ячейку поля. В ячейке указываем параметр и параметр расшифровки. Соответственно, параметр — это выводимый текст, для него указываем поле Партнер.НаименованиеПолное, а в параметре расшифровки указываем поле, которое содержит ссылку, т.к. ссылка нужна для открытия карточки элемента. И не забываем указать основное действие — Открыть значение.

Настройка макета поля
Все три способа продемонстрированы в этом видео → https://youtu.be/BY996hZF968
Чем соединение наборов данных лучше соединения таблиц в запросе
Здесь мы видим результаты расчета итогов, когда в запросе одну таблицу присоединяем к другой, и когда таблицы расположены в разных наборах данных, которые соединяем. При соединение таблиц в запросе можем получить ситуацию, когда данные «задваиваются». При соединении наборов данных в СКД такого не произойдет.

Различия в результатах при соединении таблиц и соединении наборов данных СКД
А вот что пишут на ИТС: Несмотря на то, что запись встречается в группировке несколько раз, при расчете итога каждая запись будет учтена только один раз. Как это работает в динамике можно посмотреть в этом видео → https://youtu.be/FIbRuSR_0O8
Функция ВычислитьВыражение не всесильна. Иногда надо просто правильно посчитать итоги
Начиная с платформы 8.2.14 появились несколько функций языка выражений СКД, в том числе функции Вычислить, ВычислитьВыражение. С помощью них можно выполнить много интересных расчетов, но не всегда их использование оправдано.
Есть структура отчета Контрагент, в нее вложенные детальные записи с полем период, есть ресурс Сумма. Наша задача в группировке по контрагенту и в общих итогах показать сумму на последнюю дату.

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

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

Решение с помощью ВычислитьВыражение. Итоги в группировках верные
Идем дальше. А что в общих итогах? В общих итогах вовсе не сумма. Поэтому все, что далось непосильным трудом, имеет ограниченное применение. Как это решалось можно посмотреть в этом видео → https://youtu.be/cq4Bokc7RsA

Решение с помощью ВычислитьВыражение. Общие итоги неверные
Как эта задача решается с помощью расчета итогов в СКД?
Это достигается посредством введения в набор данных поля-двойника для Суммы — в него можно вывести те же данные, что и в поле Сумма. Добавляем поле СуммаНачальныйОстаток, настраиваем роли полей: указываем, что Контрагент — это измерение, Период — поле периода, а поля Сумма, СуммаНачальныйОстаток входят в группу Сумма: одно поле является начальным остатком, другое конечным.
В выражении ресурсов для поля Сумма — просто Сумма(Сумма).

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

Результат решения с помощью расчета остатков
Более детально можно посмотреть в этом видео → https://youtu.be/FhQQi1OPvAI
Макеты можно использовать не только для оформления
Каждый, кто хотя бы один раз что-то создавал в конструкторе СКД на вкладке Макеты, знает, что макеты бывают четырех видов. И что, как правило, создание собственного макета приводит к потере гибкости. Но сегодня не про это.
Можно создать макет Поля и это никак не будет влиять на внешний вид результата. НО для поля можно задать Параметр расшифровки, и в СКД значение расшифровки может содержать не одно значение, а целую коллекцию — чем мы можем воспользоваться при расшифровке ячеек каким-либо другим отчетом.

Настройка полей расшифровки макета поля
После всех действий в данных расшифровки появится не одно, а несколько полей. В режиме 1С:Предприятие при попытке расшифровать поле это будет выглядеть так:

Результат работы расшифровки
Для чего стоит использовать расширения языка запросов при включенном Автозаполнении
Что такое расширение языка запросов? Это такие синтаксические конструкции в тексте запроса, заключенные в фигурные скобки, которые определяют поведение для компоновщика макета компоновки данных. В конструкторе запроса они доступны на вкладке Компоновка данных.

Что такое расширение языка запросов
Зачем, когда используем флаг автозаполнение?
Есть минимум два сценария, когда это оправдано. Первый — когда требуется установить необязательный отбор по дате документа. Что значит необязательный? Это значит, что мы предлагаем пользователю установить параметры, но если пользователь откажется их использовать, ошибки не будет.

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

Добавление своего поля отбора
Так выглядит настройка, когда два поля отбора, и когда единое поле отбора (так удобнее). Подробнее можно посмотреть в этом видео → https://youtu.be/vNuYJSBAZxI

Преимущество настройки — единое поле отбора
Когда надо наложить отбор на одно и то же поле в объединении запросов. Если в этом случае наложить отбор на поле Склад, это приведет к тому, что в запросе по РН Продажи ничего не будет выбрано.

Поле склад в объединении запросов

Результат наложения отбора по полю Склад при такой настройке
Поэтому, когда выполняется объединение запросов и требуется накладывать не во всех запросах объединения, обычно в этом случае отключается отбор по полю (в данном случае Склад) и используется добавленное поле (в нашем случае СкладОтбор). И все работает.
Отбор по полю СкладОтбор больше не выпиливает продажи, а только фильтрует остатки по складу.
Естественно, таких проблем не будет, когда схема создана без использования флага автозаполнение и все поля расставлены вручную.

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



