База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как объединить части кода в один запрос для отчёта в СКД? › Ответ в теме: Как объединить части кода в один запрос для отчёта в СКД?
Вот как можно объединить этот код в единый запрос для отчёта на СКД, используя временную таблицу для хранения оборотов с нужной логикой по периоду и регистратору:
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.Период < &ДатаНачала
| ТОГДА &ДатаНачала
| ИНАЧЕ ХозрасчетныйОбороты.Период
| КОНЕЦ КАК Период,
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.Период < &ДатаНачала
| ТОГДА NULL
| ИНАЧЕ ХозрасчетныйОбороты.Регистратор
| КОНЕЦ КАК Регистратор,
| ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.Договор, «Без договора») КАК Договор,
| ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
| ХозрасчетныйОбороты.Субконто2 КАК Субконто2,
| ХозрасчетныйОбороты.Организация КАК Организация,
| ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт,
| ХозрасчетныйОбороты.КоличествоОборотДт КАК КоличествоОборотДт,
| ХозрасчетныйОбороты.КоличествоОборотКт КАК КоличествоОборотКт
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| ,
| &ДатаОкончания,
| Регистратор,
| Счет В ИЕРАРХИИ (&Счет),
| ,
| {(Организация = &Организация), (Подразделение = &Подразделение), (Субконто1 = &Субконто1), (Субконто2 = &Субконто2)},
| ,
| ) КАК ХозрасчетныйОбороты
|
|ИНДЕКСИРОВАТЬ ПО
| Период,
| Субконто1,
| Субконто2,
| Организация;
|
|////////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| *
|ИЗ
| ВТ_Обороты
|ГДЕ
| (Период >= &ДатаНачала)
|УПОРЯДОЧИТЬ ПО
| Период,
| Регистратор,
| Договор,
| Субконто1,
| Субконто2,
| Организация
Объяснение:
— Сначала создаём временную таблицу ВТ_Обороты с нужными данными и корректируем период и регистратор в зависимости от даты начала.
— Затем из ВТ_Обороты выбираем записи, где период >= &ДатаНачала (то есть только нужный период).
— Индексация и упорядочивание для оптимизации и удобства.
Такой подход позволяет использовать данные с корректировкой по периоду и регистратору в одном запросе для отчёта на СКД.