Система компоновки данных избавляет от рутины: группировки, итоги, отборы, сортировку и настройки пользователя она берёт на себя. Разработчику остаётся запрос и оформление. Разберём на задаче «продажи по менеджерам за период с долей каждого в общей сумме».
Заготовка
Файл → Новый → Внешний отчёт, добавляем основную схему компоновки данных. Набор данных — запрос.
ВЫБРАТЬ
Продажи.Менеджер КАК Менеджер,
Продажи.Номенклатура КАК Номенклатура,
Продажи.Контрагент КАК Контрагент,
Продажи.Период КАК Период,
Продажи.Количество КАК Количество,
Продажи.Стоимость КАК Выручка,
Продажи.Себестоимость КАК Себестоимость
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК Продажи
Имена регистра и его измерений различаются между редакциями УНФ — сверьтесь с конфигуратором своей базы, прежде чем копировать запрос. Периодичность День в виртуальной таблице оборотов нужна, если в отчёте предполагается разрез по датам; иначе оставьте пустой.
Ресурсы, поля и параметры
Ресурсы — то, что суммируется в группировках: Количество, Выручка, Себестоимость. Не назначив ресурсы, вы получите отчёт без итогов — самая частая ошибка новичка.
Поля: задайте понятные заголовки, скройте служебные, для сумм установите формат ЧДЦ=2; ЧН=.
Параметры: НачалоПериода и КонецПериода. Чтобы пользователь выбирал период одним элементом, добавьте параметр типа СтандартныйПериод и свяжите с ним границы выражениями &Период.ДатаНачала и &Период.ДатаОкончания, а сами границы сделайте недоступными для пользователя.
Вычисляемое поле: доля менеджера
На закладке «Вычисляемые поля» добавляем поле ДоляВВыручке с выражением:
Выручка / ВычислитьВыражение("Сумма(Выручка)", "ОбщийИтог") * 100
Для вычисляемых полей обязательно задать выражение ресурса на закладке «Ресурсы» — иначе в группировках доля не посчитается, а просуммируется, что бессмысленно. Выражение ресурса пишется то же самое.
Валовая прибыль считается проще: отдельное вычисляемое поле Выручка - Себестоимость с ресурсом «Сумма».
Настройки: что увидит пользователь
На закладке «Настройки» соберите вариант отчёта:
- структура: группировка «Менеджер», внутри — «Номенклатура», детальные записи не выводим;
- выбранные поля: Выручка, Себестоимость, Валовая прибыль, Доля в выручке;
- отбор: по организации и по менеджеру, оба вынесены в пользовательские настройки с быстрым доступом;
- условное оформление: строки с валовой прибылью меньше нуля — красным. Это делается один раз и экономит пользователю глаза.
Пользовательские настройки — то, что видно в шапке отчёта без входа в «Изменить вариант». Выносите туда период, организацию и один-два отбора, не больше: перегруженная шапка пугает не хуже пустого отчёта.
Подключение отчёта в базе
Внешний отчёт подключается тем же механизмом, что и печатные формы, только вид другой:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.4.1.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОтчетаДополнительныйОтчет();
ПараметрыРегистрации.Наименование = "Продажи по менеджерам";
ПараметрыРегистрации.Версия = "1.0.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
ПараметрыРегистрации.Информация = "Выручка, себестоимость и доля каждого менеджера за период.";
Возврат ПараметрыРегистрации;
КонецФункции
Дальше: «Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты», загрузить файл, указать раздел размещения и права доступа.
Что часто идёт не так
| Симптом | Причина |
|---|---|
| Отчёт пустой | Не заданы параметры периода или отбор режет всё; проверьте настройки под учётной записью пользователя |
| Нет итогов | Не назначены ресурсы |
| Доля считается неверно | У вычисляемого поля не задано выражение ресурса |
| Отчёт строится минутами | Отбор наложен в настройках вместо параметров виртуальной таблицы |
| У пользователя пусто, у администратора есть данные | Ограничение доступа на уровне записей |
Последняя строка таблицы — самая частая причина обращений «отчёт сломался». Прежде чем править схему, зайдите в базу под учётной записью того, кто жалуется.