Задача состояла в том, чтобы создать отчет, который показывал бы оплаты по заказу покупателя. Деятельность компании подразумевает что оплаты по заказу могут производится частями. Такой отчет:

Микрозадачи, которые нужно было решить по ходу выполнения:

- объединение данных из двух запросов
- связь запросов по ключевому полю
- установка стандартного периода в отчете
- собственная шапка заголовка в отчете
- вычисляемые поля в отчете

ЗАПРОС

Первое что нужно проделать - выборку данных. Для этого создаем в СКД обычный набор данных, отбираем Заказ покупателя (основной запрос) и Платежное поручение входящее (вложенный запрос). Во вложенном запросе обязательно должно быть поле со ссылкой на сделку, по которой проходит платеж. В итоге должна получится такая выборка данных:

 

СВЯЗЬ ТАБЛИЦ ЗАПРОСА

Во вложенном и в основном запросе необходимо установить связь по полю - заказ покупателя. Нужно применить Левое соединение к заказу, чтобы заказы в отчете показывались все, а оплаты в зависимости от наличия.

 

ПЕРИОД В ОТЧЕТЕ

Для реализации отбора документов за период в конструктор запроса нужно добавить условие отбора с полем Дата и критерием Между. 

На вкладке Параметры конструктора СКД нужно добавить вручную новое поле с названием "Период" с типом Стандартный период. Стандартный период будет использоваться при настройке отчета. Начальную и Конечную дату передаем как параметр в стандартный период с помощью &Период.ДатаНачала / &Период.ДатаОкончания. Отключаем из пользовательской доступности параметры ДатаНачала, ДатаОкончания.

СВОЯ ШАПКА ОТЧЕТА

Бывает так, что при разработке отчета используется слишком много полей в группировке, которые все отображаются в шапке. Это не очень удобно с точки зрения пользования. К тому же часто пользователи хотят видеть в отчете название колонок со знакомыми и понятными им названиями. Решается эта задача так.
1. На вкладке Настройки конструктора СКД назначаете имя для верхней группировки с помощью меню Установить имя.

2. На вкладке Макеты добавляете Добавить Макет заголовка группировки. Выбираете диапазон применения как в Excel и пропишите на макете свои названия колонок.

ВЫЧИСЛЯЕМЫЕ ПОЛЯ

Для математических вычислений, в нашем случае разница между суммой заказа и суммой оплаты, мы использовали механизм вычисляемые поля. На соответствующей вкладке СКД создаете новое поле с произвольным названием, а в поле Выражение прописываете формулу  СуммаДокумента - СуммаДокумента1. Не забываем добавить вычисляемое поле в Ресурсы отчета, как и другие суммы, чтобы данные выводились в отчет.

СКРИНШОТ ШАБЛОНА КОДА ОТЧЕТА

ИТОГОВЫЙ КОД ОТЧЕТА

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

СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка,
ЗаказПокупателя.Дата,
ЗаказПокупателя.Контрагент,
ЗаказПокупателя.СуммаДокумента,
ВложенныйЗапрос.Ссылка.Проведен

Пример отчета вы можете скачать по ссылке ниже.

Наши проекты | Купить 1С | Услуги по 1С | ПрограммированиеАренда сервера | FAQ 1C

Сопровождение, доработка, консультация, обучение, по программе 1С. Информационно-технический консалтинг, почасовая и сдельная оплата. Запуск новых проектов, реализация решений под ключ.

© 2021 1С ПРОЕКТЫ И РЕШЕНИЯ /1С СЕРВИС 24/7