21.06.2026 Екатерина Плешка 118
Объединение наборов данных в отчетах СКД в 1С...

Содержание:

1.    Два подхода к объединению при работе в системе 1С: «Связь» и «Объединение»

2.    Практический пример: строим отчет «План-факт продаж»

 

Система компоновки данных (СКД) в 1С — это гибкий инструмент для построения отчетов любой сложности. Одной из ключевых его возможностей является работа с несколькими источниками данных. Часто возникает задача, когда нужную информацию невозможно получить одним SQL-подобным запросом, так как данные лежат в разных, не связанных напрямую таблицах или регистрах. Классический пример — план-фактный анализ, где данные о планах и фактических продажах хранятся раздельно.


Для решения таких задач в СКД существует механизм объединения наборов данных, который позволяет «собрать» итоговый отчет из нескольких независимых запросов.


1.    Два подхода к объединению при работе в системе 1С: «Связь» и «Объединение»


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

1.  Связь наборов данных. Это аналог оператора JOIN в языке запросов. Он используется, чтобы обогатить данные одного набора полями из другого по какому-то общему измерению (например, к таблице продаж «присоединить» из справочника номенклатуры поле «Артикул»). Этот способ добавляет колонки.


2. Объединение наборов данных. Это аналог оператора UNION ALL. Он используется, чтобы сложить строки из разных наборов данных в одну общую таблицу. Этот способ добавляет строки.  


Именно второй способ идеально подходит для задачи план-фактного анализа, и мы рассмотрим его подробно.


2. Практический пример: строим отчет «План-факт продаж»


Задача: Создать отчет, который по каждой номенклатуре покажет плановое количество, фактическое количество проданного товара и отклонение.

•            Источник 1 (План): Регистр накопления «ПланыПродаж».

•            Источник 2 (Факт): Регистр накопления «Продажи».


Шаг 1: Создание набора данных для «Факта»

В конструкторе СКД создаем первый Набор данных - Запрос. Назовем его ФактПродаж. Текст запроса будет получать данные о фактических продажах.


Ключевой момент здесь — мы сразу должны предусмотреть поля для плановых показателей, заполнив их значением NULL. Это необходимо, чтобы структура нашего запроса совпадала со структурой запроса по планам.


ВЫБРАТЬ

    ПродажиОбороты.Номенклатура КАК Номенклатура,

    ПродажиОбороты.КоличествоОборот КАК КоличествоФакт,

    NULL КАК КоличествоПлан

ИЗ

    РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты


Шаг 2: Создание набора данных для «Плана»

Аналогично создаем второй Набор данных - Запрос и называем его ПланПродаж. В нем мы получаем плановые показатели, а поля для факта заполняем NULL. Важно, чтобы псевдонимы полей (КАК ...) полностью совпадали с псевдонимами в первом запросе!


ВЫБРАТЬ

    ПланыПродажОбороты.Номенклатура КАК Номенклатура,

    NULL КАК КоличествоФакт,

    ПланыПродажОбороты.КоличествоОборот КАК КоличествоПлан

ИЗ

    РегистрНакопления.ПланыПродаж.Обороты КАК ПланыПродажОбороты


Теперь у нас есть два независимых источника с одинаковой структурой колонок: Номенклатура, КоличествоФакт, КоличествоПлан.


Шаг 3: Создание набора данных «Объединение»

Это кульминация. Мы создаем третий, главный набор данных.

1.        Правой кнопкой мыши по ветке «Наборы данных» -> «Добавить набор данных - Объединение». Назовем его ПланФактИтог.

2.        В открывшемся окне в левой части будут доступны наши наборы ФактПродаж и ПланПродаж. Перетаскиваем их в правую часть («Используемые наборы данных»).

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


После этого шага СКД будет работать с набором ПланФактИтог так, как будто это единая таблица, в которой собраны строки и из планов, и из продаж.


Шаг 4: Настройка отчета

Теперь все просто. Переходим на вкладку «Настройки».

1.        Вычисляемые поля: Создаем поле «Отклонение» с формулой: ЕстьNull(КоличествоФакт, 0) - ЕстьNull(КоличествоПлан, 0). Использование ЕстьNull обязательно, так как в каждой строке одно из полей будет NULL.

2.        Структура отчета:

◦           В «Строки» добавляем группировку по полю Номенклатура.

◦           В «Выбранные поля» добавляем наши ресурсы: КоличествоПлан, КоличествоФакт и вычисляемое поле Отклонение. Для ресурсов СКД автоматически применит агрегатную функцию Сумма.


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


Механизм объединения наборов данных — это мощный инструмент СКД, который позволяет решать нетривиальные задачи, не прибегая к сложным, громоздким запросам с ВЛОЖЕННЫЕ ЗАПРОСЫ и ПОЛНОЕ СОЕДИНЕНИЕ. Разделение логики на несколько простых запросов и их последующее объединение делает схему отчета более понятной, гибкой и простой в поддержке.


Специалист компании ООО "Кодерлайн"

Екатерина Плешка

Наши проекты

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление зак...

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

Отрасль:
Нефтесервис

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конф...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

Внедрение ПП «1С:Предприятие 8. Аренда и управление недвижимостью на базе "1С:Бухгалтерия 8"» в компании «Бутово Молл»
ООО «Бутово Молл»

Отрасль:
Недвижимость

Внедренное типовое решение:
1С:Аренда и управление недвижимостью на базе «1С:Бухгалтерия 8»

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Оформление зак...

ООО "ТК "Сытый Дом-НН"
ООО "ТК "Сытый Дом-НН"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Управление торговлей 8

Взаиморасчеты с покупателями
Оптовая торговля
Управление складскими за...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

Отрасль:
Оптовая торговля

Внедренное типовое решение:
1С:Комплексная автоматизация

- Оперативный учет...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Бухгалтерский учет Банк и касса Расчеты с контрагентами Торговые операции ...

ООО «ПраксисКом»
ООО «ПраксисКом»

Отрасль:
Аутсорсинг бухгалтерских услуг

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

- Взаиморасчеты с поставщиками
- Учет прихода ТМЦ
- Взаиморасчеты с поку...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

ООО «ПКП КАБЭЛЕКТРОСНАБ»
ООО «ПКП КАБЭЛЕКТРОСНАБ»

Отрасль:
Производство кабельной продукции

Внедренное типовое решение:
1С:Управление небольшой фирмой 1.6

- Оформление заказов покупателей;
- Управление складскими запасами;
- Ана...

ООО "СЖД"
ООО "СЖД"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение