Отчёты СКД 1С — создание и настройка
Система компоновки данных (СКД) — мощный инструмент для создания отчётов в 1С без программирования.
📋 Что такое СКД
Система компоновки данных — механизм платформы 1С для построения отчётов. Преимущества:
- ✅ Визуальный конструктор — минимум кода
- ✅ Гибкие настройки для пользователя
- ✅ Автоматические группировки и итоги
- ✅ Условное оформление
- ✅ Расшифровки по щелчку
Создание отчёта СКД
Шаг 1. Схема компоновки
- Создайте новый отчёт в конфигураторе
- Откройте основную схему компоновки данных
- Добавьте набор данных (запрос, объект или объединение)
Шаг 2. Набор данных — Запрос
ВЫБРАТЬ
Продажи.Номенклатура КАК Номенклатура,
Продажи.Контрагент КАК Контрагент,
СУММА(Продажи.Количество) КАК Количество,
СУММА(Продажи.Сумма) КАК Сумма
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура,
Продажи.Контрагент
Шаг 3. Настройка полей
На вкладке «Поля» укажите:
- Заголовок — название колонки в отчёте
- Ограничение — доступность для пользователя
- Роль — период, измерение, ресурс
Вычисляемые поля
Добавляйте поля с формулами на вкладке «Вычисляемые поля»:
// Наценка в процентах
Поле: Наценка
Выражение: (Сумма - Себестоимость) / Себестоимость * 100
// Доля от общего
Поле: ДоляПроцент
Выражение: Сумма / ВычислитьВыражение("Сумма", , "ОбщийИтог") * 100
// Накопительный итог
Поле: НарастающийИтог
Выражение: ВычислитьВыражение("Сумма", , "ТекущийИтогНарастающим")
Настройки отчёта
Группировки
Структура → Добавить группировку:
- Контрагент (группа)
- — Номенклатура (детальные записи)
Отборы
Параметры → Добавить отбор. Важные свойства:
- Использование — включен ли отбор
- Доступность — может ли пользователь менять
- Режим отображения — быстрый доступ, обычный
Условное оформление
// Пример: выделить отрицательную маржу красным Условие: Наценка < 0 Оформление: - ЦветФона = Красный - ЦветТекста = Белый
Программная работа с СКД
Формирование отчёта программно
Схема = Отчеты.АнализПродаж.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = Схема.НастройкиПоУмолчанию;
// Установка параметра
Параметр = Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
Параметр.Значение = НачалоМесяца(ТекущаяДата());
Параметр.Использование = Истина;
// Формирование
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.Вывести(ПроцессорКомпоновки, ТабличныйДокумент);
⚠️ Частые проблемы
Отчёт формируется медленно
- Оптимизируйте запрос — добавьте индексы
- Уменьшите период выборки
- Избегайте вложенных запросов в вычисляемых полях
Неправильные итоги
Проверьте роль поля: ресурсы суммируются, измерения — нет.
Настройки не сохраняются
Используйте механизм сохранения настроек через ХранилищеНастроекДанныхФормОтчетов.
Нужен сложный отчёт?
Разработаю отчёт любой сложности с группировками, условным оформлением и расшифровками.
Заказать разработку →