Как в СКД сделать отчет взяв информацию из двух разных документов
Про все возможности системы компоновки данных (СКД) рассказать не то что в одной статье а в принципе не возможно. Система очень гибкая с множеством настроек, которые позволяют сформировать практически любой отчет. Получить один и тот же очень можно разными способами, все будет зависеть от знаний и мышления того кто его создавал. Например, код (Запрос) не опытного разработчика будет в несколько раз больше чем у опытного, так же будет отличаться и сам алгоритм формирования отчета. В интернете на тему СКД очень много материалов и различный курсов, большинство их которых абсолютно бесплатные, знакомство с СКД лучше начинать с видео материалов, в них как правило рассказывают основу, общие принципы и правила создания отчетов в СКД. А вообще для того чтобы изучить СКД нужна практика. Сегодня рассмотрим один из вариантов создания отчета, информацию для которого будем брать из двух разных документов.
Я не раз говорил о том что не являюсь гуру 1С программирования, поэтому если Вы нашли ошибку или знаете более оптимальный способ решение подобной задачи прошу поделиться. Описанный мной вариант рабочий а значит имеет место быть.
Отчет на СКД с данными из разных документов
И так есть два документа «Акт об оказании услуг» и «Счет фактура», с небольшим набором одинаковых реквизитов это «Контрагент», «Услуга», «Цена», «НДС» и «Сумма».
Многие наверно знают о том что счет фактура создается на основе акта. Поэтому в СФ будет еще один реквизит «Основание» в котором указывается ссылка на Акт.
Задача
Нам требуется отчет в котором будут отображаться документы по связи, «контрагент», «Цена», «НДС» и «Сумма Документа» каждого документа, последовательность полей в отчете должны быть следующей.
Акт|Счет фактура|Контрагент|Акт Цена|СФ Цена|Акт НДС|СФ НДС|Акт Сумма|Акт НДС|СФ Сумма|
Акт и счет фактуры должны иметь связь, т.е. счет фактура должна сопоставляться с актом на основе которого она создана. В результате Мы сможет сверять акты и счет фактуры.
Решение
Создаем новый отчет, открываем основную схему компоновки данных и запускаем «Конструктор запроса».
Из базы выбираем два нужных нам документа «Акт об оказании услуг» и «Счет фактуру». Из каждого документа нам потребуются следующие поля «Ссылка», «Контрагент», «Услуга», «Цена», «НДС» и «Сумма».
Далее переходим во вкладку «Связи» и устанавливаем связь между двумя этими документами, как мы знаем она осуществляется с помощью поля в счет фактуре «Основание». Первой таблицей выбираем «Счет фактуру» второй «Акт», в условиях связи сначала выбираем «СчетФактура.Основание» далее ставим знак равенства «АктОбОказанииУслуг.Ссылка».
Для того чтобы не запутаться в выбранных полях необходимо переименовать их, сделать это можно на вкладке «Объединения/Псевдонимы».
Закрываем конструктор запроса, и переходим во вкладку «Настройки» основной схемы. Нам остается только добавить новую группировку, и выбрать необходимые поля.
Поля необходимо размещать в той последовательно в которой мы хотим видеть их в отчете.
В принципе на этом можно закончить, обновляем и запускаем 1С, пробуем сформировать отчет. Все что нам было необходимо мы сделали, как вариант можно еще добавить итого по колонкам.
Сделать это можно в основной схеме компоновки данных на вкладке «Ресурсы». Просто перетаскиваем поля по которым хотим посчитать итоги и выбираем выражение «Сумма».
Вот теперь отчет выглядит более менее нормальным.
Конечно поставленную задачу мы решили, но не полностью. Как минимум еще необходимо сделать отбор по периоду, настроить внешний вид, добавить заголовок так сказать причесать отчет. Кстати можно настроить автоматическое сравнивание значений в колонках, об этом я как то уже рассказывал.
На тему СКД у меня достаточно много статей,рекомендую с ними обязательно ознакомиться, найти их можно через поиск.