выражение итоговых записей в пользовательском поле
Простой пример использования пользовательских полей в отчете на СКД
Отчет
Отчет получает остатки товаров на складах в различных разрезах (характеристики, серии, единицы измерения и т.д.). Чтобы не усложнять пример, оставим лишь группировку по номенклатуре и вывод лишь конечного остатка на дату отчета. Итоговая таблица будет показывать остатки по номенклатуре в зазрезе складов.
Но тут пользователь сообщил, что ему нужно добавить два дополнительных поля:
Конечно тут мог бы вмешаться программист, и изменить запрос схемы компоновки данных и настройку отчета, но мы выполним задачу в пользовательском режиме без изменения отчета в режиме конфигуратора.
Дополнительные поля
И так, приступим. Зайдем в настройки варианта отчета:
Перед нами откроется конструктор настроек варианта отчета СКД. Перейдя на вкладку «Пользовательские поля» начнем их создание.
На скриншоте уже показаны два созданных пользовательских поля, функционал которых был описан выше. Рассмотрим настройки каждого. Начнем с поля «Оповещение».
В настройка нам нужно задать заголовок поля, который будет отображаться в отчете, а также задать выражения для формирования значения в поле детальных записей и в итогах для этого поля. Поскольку оповещение показывать в итогах нет необходимости, напишем выражение только для детальных записей.
Синтаксис выражения похож на язык запросов 1С:Предприятия. Имеются некоторые отличия, но касаться подробно мы в настоящей статье мы их не будем. В выражении используется оператор выбора:
» Выбор Когда Тогда Иначе Конец»,
аналогичный оператору в языке запросов. Поля в выражениях пользовательских полей задаются по их представлению. Для того, чтобы платформа поняла, что введеное представление обозначает некоторое поле, имя представления обрамляется квадратными скобками «[]». Если представление поля имеет одно слово, то квадратные скобки не обязательны. В примере выше мы обращаемся к полю «Конечный остаток».
Аналогично заданы настройки для поля «Формула расчета конечного остатка»:
Здесь нужно сказать о некоторых нюансах:
Настраиваем и формируем отчет
Поле «Формула расчета конечного остатка» добавим в выводимые поля отчета:
Выражение «Оповещение» добавим к детальным записям номенклатуры. Для этого в группировку «Номенклатура» добавим поле выражения «Оповещение». После этого структура отчета примет следующий вид:
Настройка отчета на этом выполнена. При необходимости добавленные настройки можно сохранить для повторного использования. Сформируем отчет:
Как мы видим, в отчет добавлены поля в соответствии с условиями задачи. При этом дорабатывать отчет в режиме конфигуратора не пришлось. В этом и заключается главное преимущество пользовательских полей! Пользователь, обученный ими пользоваться, может использовать их для создания отчета по своим требованиям собственными силами, без участия программиста.
Поверьте мне, обучить его использовать эти возможности можно, ведь это куда проще, чем писать формулы в электронных таблицах Excel.
1С пользовательское поле формула
Отчет
Отчет получает остатки товаров на складах в различных разрезах (характеристики, серии, единицы измерения и т.д.). Чтобы не усложнять пример, оставим лишь группировку по номенклатуре и вывод лишь конечного остатка на дату отчета. Итоговая таблица будет показывать остатки по номенклатуре в зазрезе складов.
Но тут пользователь сообщил, что ему нужно добавить два дополнительных поля:
Конечно тут мог бы вмешаться программист, и изменить запрос схемы компоновки данных и настройку отчета, но мы выполним задачу в пользовательском режиме без изменения отчета в режиме конфигуратора.
Дополнительные поля
И так, приступим. Зайдем в настройки варианта отчета:
Перед нами откроется конструктор настроек варианта отчета СКД. Перейдя на вкладку «Пользовательские поля» начнем их создание.
На скриншоте уже показаны два созданных пользовательских поля, функционал которых был описан выше. Рассмотрим настройки каждого. Начнем с поля «Оповещение».
В настройка нам нужно задать заголовок поля, который будет отображаться в отчете, а также задать выражения для формирования значения в поле детальных записей и в итогах для этого поля. Поскольку оповещение показывать в итогах нет необходимости, напишем выражение только для детальных записей.
Синтаксис выражения похож на язык запросов 1С:Предприятия. Имеются некоторые отличия, но касаться подробно мы в настоящей статье мы их не будем. В выражении используется оператор выбора:
» Выбор Когда Тогда Иначе Конец»,
аналогичный оператору в языке запросов. Поля в выражениях пользовательских полей задаются по их представлению. Для того, чтобы платформа поняла, что введеное представление обозначает некоторое поле, имя представления обрамляется квадратными скобками «[]». Если представление поля имеет одно слово, то квадратные скобки не обязательны. В примере выше мы обращаемся к полю «Конечный остаток».
Аналогично заданы настройки для поля «Формула расчета конечного остатка»:
Здесь нужно сказать о некоторых нюансах:
Настраиваем и формируем отчет
Поле «Формула расчета конечного остатка» добавим в выводимые поля отчета:
Выражение «Оповещение» добавим к детальным записям номенклатуры. Для этого в группировку «Номенклатура» добавим поле выражения «Оповещение». После этого структура отчета примет следующий вид:
Настройка отчета на этом выполнена. При необходимости добавленные настройки можно сохранить для повторного использования. Сформируем отчет:
Как мы видим, в отчет добавлены поля в соответствии с условиями задачи. При этом дорабатывать отчет в режиме конфигуратора не пришлось. В этом и заключается главное преимущество пользовательских полей! Пользователь, обученный ими пользоваться, может использовать их для создания отчета по своим требованиям собственными силами, без участия программиста.
Поверьте мне, обучить его использовать эти возможности можно, ведь это куда проще, чем писать формулы в электронных таблицах Excel.
Изменённый вариант отчета легко сохраняется в базе и используется параллельно с исходным. В то же время, если что-то пошло не так, можно вернуться к стандартным настройкам. В пользовательском режиме в любой отчёт на СКД можно добавить дополнительное поле, настроить по нему отбор, группировку, сортировку или условное оформление.
Рассмотрим добавление пользовательского поля на примере стандартного отчёта Коэффициент текучести кадров в конфигурации 1С:Зарплата и управление персоналом 3.1.
Коэффициент текучести в отчёте можно подсчитать либо по организации в целом, либо в разрезе должностей. Предположим, что нам нужно узнать коэффициент текучести по категории персонала, представляющей собой список должностей.
Внимание! В старых конфигурациях для этого потребовалось бы добавить дополнительный реквизит Категория в справочник Должности, а затем разработать свою версию отчёта, которая учитывала бы эти данные.
Но с СКД всё стало гораздо проще.
1. Для начала сохраним новый вариант отчёта по кнопке Выбрать вариант отчёта или сохранить новый — Сохранить вариант отчёта:
В открывшемся окне заполняем название нового варианта отчёта, затем нажимаем кнопку Сохранить. Пользователь с правами Администратор может сохранить настройку для всех пользователей.
2. Теперь добавим наше поле. Переходим в меню Все действия (или Ещё в интерфейсе 1С 8.3) — Прочее — Изменить вариант отчёта.
Затем переходим на вкладку Пользовательские поля в нижней части формы редактирования варианта, нажимаем на кнопку Добавить — Новое поле выбор:
Заполняем название нашего поля и переходим к нижней части формы, где и произведём разделение должностей по нужным нам категориям. Нажимаем Добавить, заполняем значение поля и его представление, а затем переходим к редактированию отбора по нажатию на «…» в колонке Отбор:
В левой части окна выбираем поле Должность, двойным кликом мыши или перетаскиванием перемещаем его в правую таблицу. Выбираем вид сравнения В списке, затем переходим к редактированию списка по кнопке «…» в колонке Значение:
Заполняем список нужными должностями вручную или с помощью кнопки Подбор. Например, в категорию Административный отнесём должность Директор и Администратор, в категорию Линейный — Продавец и Бухгалтер, а в категорию Охрана — Начальник охраны и Охранник.
В итоге поле Категория персонала будет таким:
Внимание! Т ип значений списка — Число, а наименование категории мы заносим в поле Представление. Если значениям списка сразу присвоить тип Строка, мы в дальнейшем не сможем настроить корректный отбор по этому полю.Отбор по строковым полям настраивается только по принципу Заполнено/Не заполнено.
Затем щёлкаем по строке отбора правой кнопкой мыши и выбираем пункт Свойства элемента пользовательских настроек.
Устанавливаем флаг Включать в пользовательские настройки и выбираем режим редактирования — Быстрый доступ. Это позволит управлять настройкой отбора по категории персонала прямо в шапке отчёта.
5. Попробуем сформировать отчёт:
Отчёт в целом готов, но при необходимости его можно немного улучшить.
Обратите внимание, что сортировка пользовательских полей происходит по значениям, а не по представлениям.
На вкладке Оформление задаём требуемое оформление для полей, удовлетворяющих условию. Например, красный цвет шрифта. Сохраняем нашу настройку:
Теперь отчёт имеет следующий вид:
Не забудьте после всех манипуляций сохранить вариант отчёта!
Настройка отчетов в 1С 8.3 (расширенные возможности). Легасофт.
В первой части статьи мы довольно подробно рассмотрели настройки отчетов, реализованных на базе СКД. Теперь разберем более тонкие и детальные настройки вариантов отчета. Окно «продвинутых» настроек варианта отчета вызывается по команде «Еще» — «Прочее» — «Изменить вариант отчета».
Окно изменения варианта отчета разделено на две части:
1. Структура отчета.
2. Настройки отчета.
Раздел структуры варианта отчета аналогичен вкладке «Структура» стандартных настроек отчета. Назначение и настройка группировок подробно рассмотрена в ч. 1 статьи.
Таблица структуры варианта отчета, кроме непосредственно колонки с группировками, содержит несколько дополнительных колонок:
Раздел настроек варианта отчета дает пользователю широкие возможности по конфигурированию отчета под свои потребности. Она практически полностью совпадает со стандартными настройками отчета, рассмотренными в ч. 1. Рассмотрим все вкладки раздела и отметим различия.
Раздел настроек состоит из следующих вкладок:
1. Параметры. Содержит параметры СКД, доступные пользователю.
Параметр СКД – некоторое значение, использующееся для получения данных отчета. Это может быть значение условия для отбора или проверки данных, а также вспомогательное значение.
Таблица параметров представлена в формате «Параметр»-«Значение». При необходимости можно менять значения параметров. Нажатие на кнопку «Свойства элемента пользовательских настроек» открывает пользовательские настройки элемента.
В данном окне можно выбрать, будет ли элемент включен в пользовательские настройки (т.е. виден пользователю при настройке отчета), задать представление элемента и режим редактирования (быстрый доступ в шапке отчета, обычный в настройках отчета и недоступный).
Свойства элемента пользовательских настроек также имеют группируемые поля, поля, отборы и элементы условного оформления.
2. Пользовательские поля. Содержит поля, которые формирует сам пользователь на основании данных, выбираемых отчетом.
Пользователь может добавить два вида полей:
Поля выбора позволяют вычислять значение по заданному условию. Окно редактирования поля выбора содержит заголовок поле и таблицу в которой задается отбор, значение и представление поле. Отбор представляет собой условие, в зависимости от которого будет подставляться нужное значение.
Например, вычислим оценку количества продаж. Будем считать, что, если продано меньше 10 единиц товара, продали мало, а если больше 10 единиц – много. Для этого зададим 2 значения вычисляемого поля: первое будет с отбором «Количество товаров Меньше или равно «10»», второе с отбором «Количество товаров Больше «10»».
Поля выражения позволяют вычислять значение используя произвольные алгоритмы. В них могут использоваться функции языка запросов и встроенного языка программирования 1С. Окно редактирования поля выражения содержит два поля для выражений детальных и итоговых записей. Итоговые записи – это группировки, настроенные в области «Структура отчета», в них необходимо использовать агрегатные функции («Сумма», «Минимум», «Максимум», «Количество»).
Например, вычислим средний процент скидки. Средний процент скидки рассчитывается по формуле: [Сумма продаж без скидки] — [Сумма продаж со скидкой] / [Сумма продаж без скидки]. Необходимо помнить, что сумма продаж без скидки может быть нулевой, поэтому используем оператор ВЫБОР для проверки. Получим следующие выражения:
· Для детальных записей:
Когда [Сумма продаж без скидки] = 0
Иначе [Сумма продаж без скидки] — [Сумма продаж со скидкой] / [Сумма продаж без скидки]
· Для итоговых записей:
Когда Сумма([Сумма продаж без скидки]) = 0
Иначе Сумма([Сумма продаж без скидки]) — Сумма([Сумма продаж со скидкой]) / Сумма([Сумма продаж без скидки])
Как было сказано ранее, в выражении итоговых записей используем агрегатную функцию «Сумма».
3. Группируемые поля. Содержит поля, по которым будет группироваться результат варианта отчета. Группируемые поля настраиваются отдельно для каждой из группировок, но можно задать общие группируемые поля для варианта отчета, если выбрать в дереве структуры корень «Отчет». Можно добавить поле из результата отчета, пользовательское поле или выбрать авто поле, тогда система подберет поля автоматически. Также данная вкладка позволяет изменять порядок следования группируемых полей.
4. Поля. Содержит поля, которые будут выведены в результат варианта отчета. Поля настраиваются отдельно для каждой из группировок, но можно задать общие поля для варианта отчета, если выбрать в дереве структуры корень «Отчет». Можно добавить поле из результата отчета, пользовательское поле или выбрать авто поле, тогда система подберет поля автоматически. Также данная вкладка позволяет изменять порядок следования полей.
Поля можно группировать, чтобы логически выделить какую-либо часть отчета или задать особое расположение колонок. При добавлении группы становится активна колонка «Расположение» и позволяет выбрать один из вариантов расположения:
5. Отбор. Содержит отборы, используемые в варианте отчета. Настройка отборов была подробно рассмотрена в части 1 данной статьи. Отборы настраиваются отдельно для каждой из группировок, но можно задать общие отборы для варианта отчета, если выбрать в дереве структуры корень «Отчет».
6. Сортировка. Содержит поля сортировки, используемые в варианте отчета. Настройка полей сортировки была подробно рассмотрена в части 1 данной статьи. Сортировка настраиваются отдельно для каждой из группировок, но можно задать общие поля сортировки для варианта отчета, если выбрать в дереве структуры корень «Отчет».
7. Условное оформление. Содержит элементы условного оформления, используемые в варианте отчета. Настройка условного оформления была подробно рассмотрена в части 1 данной статьи. Условное оформление настраивается отдельно для каждой из группировок, но можно задать общие элементы условного оформления для варианта отчета, если выбрать в дереве структуры корень «Отчет».
8. Дополнительные настройки. Содержит дополнительные настройки оформления отчета. Позволяют выбрать общий внешний вид отчета, расположение полей, группировок, реквизитов, ресурсов, итогов, задать настройки диаграммы, управлять выводом заголовка, параметров и отбора, определять позицию ресурсов и закреплять шапку и колонки группировок варианта отчета.
В заключение хотелось бы отметить, что настройки отчета можно не только сохранять в качестве варианта отчета, но и выгружать в файл (меню «Еще» — «Сохранить настройки»). Для загрузки необходимо выбрать «Загрузить настройки» и выбрать сохраненный файл. Таким образом, мы можем передавать настройки варианта отчета между различными базами, имеющими одинаковую конфигурацию.
Исходя из этого, можем резюмировать, что пользователь может не только самостоятельно настроить отчет под свои нужды, но и сохранить свои настройки и использовать их в дальнейшем при необходимости.