Отчёты СКД 1С — создание и настройка

Система компоновки данных (СКД) — мощный инструмент для создания отчётов в 1С без программирования.

📋 Что такое СКД

Система компоновки данных — механизм платформы 1С для построения отчётов. Преимущества:

  • ✅ Визуальный конструктор — минимум кода
  • ✅ Гибкие настройки для пользователя
  • ✅ Автоматические группировки и итоги
  • ✅ Условное оформление
  • ✅ Расшифровки по щелчку

Создание отчёта СКД

Шаг 1. Схема компоновки

  1. Создайте новый отчёт в конфигураторе
  2. Откройте основную схему компоновки данных
  3. Добавьте набор данных (запрос, объект или объединение)

Шаг 2. Набор данных — Запрос

ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Контрагент КАК Контрагент,
    СУММА(Продажи.Количество) КАК Количество,
    СУММА(Продажи.Сумма) КАК Сумма
ИЗ
    РегистрНакопления.Продажи КАК Продажи
ГДЕ
    Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.Контрагент

Шаг 3. Настройка полей

На вкладке «Поля» укажите:

  • Заголовок — название колонки в отчёте
  • Ограничение — доступность для пользователя
  • Роль — период, измерение, ресурс

Вычисляемые поля

Добавляйте поля с формулами на вкладке «Вычисляемые поля»:

// Наценка в процентах
Поле: Наценка
Выражение: (Сумма - Себестоимость) / Себестоимость * 100

// Доля от общего
Поле: ДоляПроцент
Выражение: Сумма / ВычислитьВыражение("Сумма", , "ОбщийИтог") * 100

// Накопительный итог
Поле: НарастающийИтог
Выражение: ВычислитьВыражение("Сумма", , "ТекущийИтогНарастающим")

Настройки отчёта

Группировки

Структура → Добавить группировку:

  • Контрагент (группа)
  • — Номенклатура (детальные записи)

Отборы

Параметры → Добавить отбор. Важные свойства:

  • Использование — включен ли отбор
  • Доступность — может ли пользователь менять
  • Режим отображения — быстрый доступ, обычный

Условное оформление

// Пример: выделить отрицательную маржу красным
Условие: Наценка < 0
Оформление:
  - ЦветФона = Красный
  - ЦветТекста = Белый

Программная работа с СКД

Формирование отчёта программно

Схема = Отчеты.АнализПродаж.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;

// Установка параметра
Параметр = Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
Параметр.Значение = НачалоМесяца(ТекущаяДата());
Параметр.Использование = Истина;

// Формирование
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.Вывести(ПроцессорКомпоновки, ТабличныйДокумент);

⚠️ Частые проблемы

Отчёт формируется медленно

  • Оптимизируйте запрос — добавьте индексы
  • Уменьшите период выборки
  • Избегайте вложенных запросов в вычисляемых полях

Неправильные итоги

Проверьте роль поля: ресурсы суммируются, измерения — нет.

Настройки не сохраняются

Используйте механизм сохранения настроек через ХранилищеНастроекДанныхФормОтчетов.

Нужен сложный отчёт?

Разработаю отчёт любой сложности с группировками, условным оформлением и расшифровками.

Заказать разработку →