1с скд добавить поле вычисляемое поле

Вычисляемые поля СКД в 1С 8.3 и 8.2 на примере

Как правило, в основе набора данных Схемы Компоновки Данных (СКД) лежит запрос. Запросы в программе 1С: Предприятие предоставляют программисту богатые возможности для получения данных. В связи с этим возникает вопрос, зачем нужны еще и вычисляемые поля?

Думаю, что никого не удивлю, если скажу, что не все поля можно выразить с помощью запроса.

Рассмотрим несколько примеров, как пользоваться вычисляемыми полями.

Создадим новый отчет и зайдем в Схему Компоновки Данных. Вычисляемые поля 1С СКД настраиваются на одноименной вкладке:

1с скд добавить поле вычисляемое поле

Колонка «Путь к данным» задает наименование поля. В колонке «Выражение» прописывается формула для вычисления поля. Можно использовать арифметические выражения, конструкцию «ВЫБОР КОГДА ТОГДА КОНЕЦ», и даже обращаться к экспортным функциям общих модулей системы.

Вот несколько примеров:

Разница значений:

Вывод текста по условию:

ВЫБОР КОГДА СуммаНачОстаток > 0 ТОГДА
«Имеется долг за организацией»
ИНАЧЕ «Долг отсутствует» КОНЕЦ

Форматирование:

«Месяц оплаты:» + Формат(ДатаОплаты, «ДФ = ‘MMMM’»)

Использование функции общего модуля:

УправлениеКонтактнойИнформациейЗарплатаКадры.ПолучитьКонтактнуюИнформацию (Док.Сотрудник, &ТелСотрудника)

Подробнее описание возможностей вычисляемых полей можно найти в синтаксис-помощнике: «Система компоновки данных — Язык выражений системы компоновки данных».

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

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

Грамотное использование схемы компоновки данных (СКД) позволяет:

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

Что такое вычисляемое поле

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

Дело в том, что СКД – это нечто большее, нежели просто отображение результата выполнения запроса и это прекрасно видно из формы создания схемы (Рис.1).

Вычисляемые поля позволяют выполнять определенные действия со сформированным набором данных:

Давайте по этому списку и пойдем.

Массив значений в одной ячейке

Смоделируем ситуацию, когда необходимо получить в отдельную ячейку все номера документов поступления по контрагенту:

таким образом, мы в нашей схеме создали дополнительное расчетное поле;

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

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

Обращение к экспортным функциям общего модуля

В качестве источника данных для заполнения вычисляемого поля могут выступать функции общего модуля.

Несколько важных моментов:

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

Таким образом, мы видим, что практически любой обработчик данных может быть инициализирован из СКД, что значительно расширяет возможности использования схемы.

Выражения языка компоновки

Достаточно часто в работе разработчика возникает ситуация, когда в поле СКД необходимо вывести результат деления:

Во избежание проблем, в этих случаях желательно в вычисляемое поле ввести проверку на деление на 0.

Сделать это можно с помощью конструкции «Выбор Когда ….Тогда… Иначе… Конец».

В конце несколько слов о достаточно новой функции ВычислитьВыражение(). С её помощью, в частности можно вычислять отклонения в стоимости между текущей и предыдущей строкой, накопительный остаток и т.д.

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

Источник

Создаем первый отчет в СКД с вычисляемыми полями

1с скд добавить поле вычисляемое поле

Если у нас имеется доступ в Конфигуратор 1С, то мы можем создать отчет, в котором получим информацию из справочников и регистров, а так же результат расчетов в вычисляемых полях.

Оглавление

В данном примере рассмотрим такой отчет, в котором будем выводить данные из Регистра сведений, в котором содержатся данные из справочника Номенклатуры с реквизитами, а так же результат из документа-регистратора в котором было произведено одобрение серий для номенклатуры.

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

1с скд добавить поле вычисляемое поле

Находясь на вкладке «Наборы данных» нажимаем кнопку:

1с скд добавить поле вычисляемое поле

Из 1 колонки мне понадобился Регистр сведений «флСостоянияСертификацииСерий», который я нашел в дереве «РегистрыСведений», затем встал на него курсором и нажал на кнопку «>», после этого он отобразился во 2-ой колонке с данными, весь регистр я добавлять не стал, а раскрыл ветвь с «флСостоянияСертификацииСерий» и поочередно выделяя нужные регистры добавлял их через кнопку «>», после чего они отображались в 3-ей колонке: с этими данными мы уже будем работать в дальнейшей в нашем отчете.

После того как вывели нужные поля, нажимаем «ОК»

Здесь же на вкладке «Отбор» можно настроить фильтр.

Колонка «Заголовок» название заголовка в колонке отчета.

6. Чтобы подсчитать количество «Да» / «Нет» в группировке, нужно зайти на вкладку «Ресурсы» и указать поля, которые будем обрабатывать:

Помимо выводимых данных из регистра сведений, в 2-ух последних колонках мы подсчитываем количество «Да» / «Нет»

Источник

1с скд добавить поле вычисляемое поле

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: считаем итоги (ресурсы)

Автор уроков и преподаватель школы: Владимир Милькин

Ставим цель

Целью этого урока будет:

    Написать отчёт, который выводит список продуктов (справочник Еда), их калорийность и вкус. Сделать группировку продуктов по их цвету. Познакомиться с возможностью подведения итогов (ресурсы) и вычисляемыми полями.

Создаём новый отчёт

Как и на предыдущих уроках открываем базу «Гастроном» в конфигураторе и создаём новый отчёт через меню «Файл«->»Новый. «:

В форме настройки отчёта пишем имя «Урок3» и нажимаем кнопку «Открыть схему компоновки данных«:

Оставляем имя схемы по умолчанию и нажимаем кнопку «Готово«:

Добавляем запрос через конструктор

Вместо того, чтобы писать текст запроса вручную, вновь запускаем конструктор запроса:

На вкладке «Таблицы» перетягиваем таблицу «Еда» из первой колонки во вторую:

Выбираем из таблицы «Еда» поля, которые будем запрашивать. Для этого перетаскиваем поля «Наименование«, «Вкус«, «Цвет» и «Калорийность» из второй колонки в третью:

Получилось вот так:

Формируем настройки представления отчёта

Переходим на закладку «Настройки» и нажимаем на волшебную палочку, чтобы вызвать конструктор настроек:

Выбираем вид отчета «Список. » и нажимаем кнопку «Далее«:

Перетаскиваем из левой колонки в правую поля, которые будут отображаться в списке и нажимаем «Далее«:

А вот и результат работы конструктора. Иерархия нашего отчёта:

Сохраним отчёт (кнопка дискета) и не закрывая конфигуратора тут же откроем его в режиме пользователя. Получилось вот так:

Меняем порядок колонок

Но давайте поменяем порядок колонок (стрелки вверх-вниз), чтобы он был таким как на рисунке ниже:

Сохраним отчёт и вновь откроем в режиме пользователя:

Отлично, так гораздо лучше.

Подводим итог (сумму) по калорийности

Было бы неплохо выводить итог калорийности продуктов по группам. Чтобы видеть сумму калорийности всех продуктов, скажем, белого или жёлтого цвета. Или узнать общую калорийность вообще всех продуктов в базе.

Для этого существует механизм вычисления ресурсов.

Переходим на вкладку «Ресурсы» и перетаскиваем поле «Калорийность» (мы же по нему собираемся итог подводить) из левой колонки в правую.

При этом в поле выражение выбираем из выпадающего списка «Сумма(Калорийность)«, так как итогом будет являться сумма всех входящих в итог элементов:

Сохраняем и формируем отчёт:

У нас появились итоги по каждой из групп и по отчёту в целом.

Подводим итог (среднее) по калорийности

Теперь давайте сделаем так, чтобы в ещё одной колонке выводилась средняя калорийность продуктов по группам и в целом по отчёту.

Чтобы завести такое «виртуальное» поле воспользуемся механизмом вычисляемых полей.

Переходим на закладку «Вычисляемые поля» и нажимаем зелёный плюсик:

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

Поступим вторым способом. Для этого переходим на закладку «Настройки«, выбираем «Отчет» (ведь мы хотим добавить поле в целом к отчёту), выбираем внизу закладку «Выбранные поля» и перетаскиваем поле «СредняяКалорийность» из левой колонки в правую:

Получилось вот так:

Сохраняем и формируем отчет:

Поле появилось и мы видим, что его значениями являются значения поля «Калорийность». Отлично!

Для этого вновь воспользуемся уже знакомым нам механизмом ресурсов (подведение итогов). Переходим на закладку «Ресурсы» и перетаскиваем поле «СредняяКалорийность» из левой колонки в правую:

При этом в колонке «Выражение» выбираем «Среднее(СредняяКалорийность)«:

Сохраняем и формируем отчёт:

Видим, что по группам, то есть по каждому цвету, и по отчёту в целом совершенно верно посчиталось среднее значение. Но присутствуют лишние записи по отдельным продуктам (не по группам), которые хотелось бы убрать из отчёта.

Знаете почему они появились (значения не по группам)? Потому что, когда мы добавляли поле «СредняяКалорийность» в настройки отчёта, на втором шаге мы выделили весь отчёт в целом и это новое поле попало в элемент «Детальные записи«.

Исправим ошибку. Для этого вернёмся на закладку «Настройки«, выберем «Детальные записи» сначала сверху (шаг 2), а затем «Детальные записи» снизу (шаг 3), перейдём на закладку «Выбранные поля» и увидим в её правой колонке элемент «Авто«.

Элемент «Авто» раскрылся в следующие поля:

А вот и наше поле «СредняяКалорийность«, которое попало сюда из пункта «Отчет«, когда мы его туда перетаскивали. Просто снимем галку рядом с этим полем, чтобы убрать его вывода:

Сохраним и сформируем отчёт:

Подводим итог (количество) по вкусам

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

Ну, например, для белого цвета, это значение будет равно 2 (всего два вкуса «Кислый» и «Сладкий»), а для жёлтого 3 («Сладкий», «Солёный» и «Кислый»).

Переходим на закладку «Ресурсы» и перетаскиваем поле «Вкус» из левой колонки в правую:

В качестве выражения выбираем «Количество(Различные Вкус)«:

Сохраняем и формируем отчёт:

Войдите на сайт как ученик

Авторизуйтесь, чтобы получить доступ ко всем материалам школы

Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.

Войдите как ученик, чтобы получить доступ к материалам школы

Источник

1с скд добавить поле вычисляемое поле

1с. СКД. Вычисляемое поле в группировке.
Эта методика используется:
— когда итог в группировке отчета СКД 1с требуется не просто просуммировать колонку подчиненныч строк, а вычислить значение по формуле.
— когда вам надо показать только итог в группировке, не показывая основного значения.

1с скд добавить поле вычисляемое поле

Делается эта фишка следующим образом:
1. В отчет СКД добавить вычисляемое поле, Выражение=0

1с скд добавить поле вычисляемое поле

1с скд добавить поле вычисляемое поле

Немного теории по функции СКД «Вычислить».
Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
— Выражение – строка, содержащая вычисляемое выражение;
— Группировка – строка, содержащая имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка
— ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
— Тип расчета — строка, В случае если данный параметр имеет значение ОбщийИтог, выражение будет вычисляться для всех записей группировки. В случае если значение параметра Группировка, значения будут вычисляться для текущей групповой записи группировки.

Например:
Сумма(Продажи.СуммаОборот) / Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)
В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке.
Еще пример:
ВычислитьВыражение(«Сумма(Стоимость)/Выбор Когда Сумма(Количество)=0 Тогда 1 Иначе Сумма(Количество) Конец»,»Подразделение»,»Группировка»)

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

Источник

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

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