Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 09:09

Помогите сделать запрос

Автор макс, 29 окт 2010, 07:04

0 Пользователей и 1 гость просматривают эту тему.

макс

Есть начальное сальдо

ВЫБРАТЬ РАЗРЕШЕННЫЕ
СальдоПоПериодам.Период КАК ПериодРегистрации,
СальдоПоПериодам.Организация КАК Организация,
ВЫБОР
КОГДА СальдоПоПериодам.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СальдоПоПериодам.Организация
ИНАЧЕ СальдоПоПериодам.Организация.ГоловнаяОрганизация
КОНЕЦ КАК ГоловнаяОрганизация,
СальдоПоПериодам.Физлицо КАК ФизЛицо,
"Начальное сальдо" КАК ВидРасчета,
СУММА(СальдоПоПериодам.Результат) КАК Результат,
NULL КАК ПриоритетВидаРасчета,
"А" КАК Группа,
1 КАК ПриоритетГруппы,
NULL КАК Регистратор,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ КАК СтатьяФинансирования,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.КОСГУ
ИНАЧЕ NULL
КОНЕЦ КАК КОСГУ
ПОМЕСТИТЬ НачальныйОстаток
ИЗ
(ВЫБРАТЬ
Периоды.Период КАК Период,
Сальдо.Физлицо КАК Физлицо,
Сальдо.Организация КАК Организация,
СУММА(Сальдо.СуммаВзаиморасчетовОстаток) КАК Результат,
Сальдо.СтатьяФинансирования КАК СтатьяФинансирования,
Сальдо.КОСГУ КАК КОСГУ
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Период
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода) КАК Периоды
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Организация КАК Организация,
&НачалоПериода КАК Период,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Физлицо КАК Физлицо,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СтатьяФинансирования КАК СтатьяФинансирования,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.КОСГУ КАК КОСГУ
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Организация,
ДОБАВИТЬКДАТЕ(ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Период, МЕСЯЦ, 1),
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Физлицо,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СуммаВзаиморасчетовОборот,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СтатьяФинансирования,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.КОСГУ
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
НДФЛКЗачету.Организация,
&НачалоПериода,
НДФЛКЗачету.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачетуОстаток,
НДФЛКЗачету.СтатьяФинансирования,
НДФЛКЗачету.КОСГУ
ИЗ
РегистрНакопления.НДФЛКЗачету.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК НДФЛКЗачету

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
НДФЛКЗачету.Организация,
ДОБАВИТЬКДАТЕ(НДФЛКЗачету.Период, МЕСЯЦ, 1),
НДФЛКЗачету.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачетуОборот,
НДФЛКЗачету.СтатьяФинансирования,
НДФЛКЗачету.КОСГУ
ИЗ
РегистрНакопления.НДФЛКЗачету.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету) КАК Сальдо
ПО (Сальдо.Период <= Периоды.Период)

СГРУППИРОВАТЬ ПО
Сальдо.Организация,
Сальдо.Физлицо,
Периоды.Период,
Сальдо.СтатьяФинансирования,
Сальдо.КОСГУ) КАК СальдоПоПериодам
ГДЕ
(НЕ СальдоПоПериодам.Физлицо ЕСТЬ NULL )
И (СальдоПоПериодам.Период = &НачалоПериода
ИЛИ &ЕстьГруппировкаПоПериодуРегисрации)

СГРУППИРОВАТЬ ПО
СальдоПоПериодам.Период,
СальдоПоПериодам.Организация,
СальдоПоПериодам.Физлицо,
СальдоПоПериодам.СтатьяФинансирования,
СальдоПоПериодам.КОСГУ,
ВЫБОР
КОГДА СальдоПоПериодам.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СальдоПоПериодам.Организация
ИНАЧЕ СальдоПоПериодам.Организация.ГоловнаяОрганизация
КОНЕЦ

ИМЕЮЩИЕ
СУММА(СальдоПоПериодам.Результат) <> 0
;

макс

Есть "Всего начислено"

ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВидыДвижения.ВидДвижения КАК Группа,
Взаиморасчеты.Организация КАК Организация,
ВЫБОР
КОГДА Взаиморасчеты.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА Взаиморасчеты.Организация
ИНАЧЕ Взаиморасчеты.Организация.ГоловнаяОрганизация
КОНЕЦ КАК ГоловнаяОрганизация,
НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, МЕСЯЦ) КАК ПериодРегистрации,
Взаиморасчеты.Физлицо КАК ФизЛицо,
"Компенсация за задержку выплаты заработной платы" КАК ВидРасчета,
"Г2" КАК ПриоритетВидаРасчета,
СУММА(ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК Результат,
Взаиморасчеты.Регистратор,
Взаиморасчеты.Ведомость,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА Взаиморасчеты.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ КАК СтатьяФинансирования,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА Взаиморасчеты.КОСГУ
ИНАЧЕ NULL
КОНЕЦ КАК КОСГУ
ПОМЕСТИТЬ КомпенсацияЗаЗадержкуЗП
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК Взаиморасчеты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
ПО Взаиморасчеты.Физлицо = ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо
И Взаиморасчеты.Ведомость = ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка,
(ВЫБРАТЬ
"Всего начислено" КАК ВидДвижения,
2 КАК ПриоритетГруппы

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
"Всего выплачено",
5) КАК ВидыДвижения
ГДЕ
Взаиморасчеты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
И Взаиморасчеты.СуммаВзаиморасчетов <> 0
И Взаиморасчеты.Период МЕЖДУ &НачалоПериода И &КонецПериода
И ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты <> 0
{ГДЕ
Взаиморасчеты.Физлицо.*,
Взаиморасчеты.Организация.*}

СГРУППИРОВАТЬ ПО
Взаиморасчеты.Организация,
Взаиморасчеты.Физлицо,
НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, МЕСЯЦ),
ВидыДвижения.ВидДвижения,
ВЫБОР
КОГДА Взаиморасчеты.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА Взаиморасчеты.Организация
ИНАЧЕ Взаиморасчеты.Организация.ГоловнаяОрганизация
КОНЕЦ,
Взаиморасчеты.Регистратор,
Взаиморасчеты.Ведомость,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА Взаиморасчеты.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА Взаиморасчеты.КОСГУ
ИНАЧЕ NULL
КОНЕЦ
;

макс

Есть "Всего удержано"
ВЫБРАТЬ РАЗРЕШЕННЫЕ
БУУдержания.ОбособленноеПодразделение КАК Организация,
БУУдержания.Организация КАК ГоловнаяОрганизация,
БУУдержания.ФизЛицо КАК ФизЛицо,
БУУдержания.ВидРасчета КАК ВидРасчета,
"А" + БУУдержания.ВидРасчета.Код КАК ПриоритетВидаРасчета,
"Всего удержано" КАК Группа,
4 КАК ПриоритетГруппы,
БУУдержания.Результат КАК Результат,
БУУдержания.ПериодРегистрации КАК ПериодРегистрации,
БУУдержания.Регистратор КАК Регистратор,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА БУУдержания.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ КАК СтатьяФинансирования,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА БУУдержания.КОСГУ
ИНАЧЕ NULL
КОНЕЦ КАК КОСГУ
ПОМЕСТИТЬ Удержания
ИЗ
РегистрРасчета.БУУдержания КАК БУУдержания
ГДЕ
БУУдержания.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
{ГДЕ
БУУдержания.ФизЛицо.*,
БУУдержания.ОбособленноеПодразделение.* КАК Организация}
;

макс

Есть "Всего выплачено"

ВЫБРАТЬ РАЗРЕШЕННЫЕ
Взаиморасчеты.Организация КАК Организация,
ВЫБОР
КОГДА Взаиморасчеты.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА Взаиморасчеты.Организация
ИНАЧЕ Взаиморасчеты.Организация.ГоловнаяОрганизация
КОНЕЦ КАК ГоловнаяОрганизация,
Взаиморасчеты.Физлицо КАК ФизЛицо,
ВЫБОР
КОГДА Взаиморасчеты.СпособВыплаты = ЗНАЧЕНИЕ(Перечисление.СпособыВыплатыЗарплаты.ЧерезКассу)
ТОГДА "Через кассу "
КОГДА Взаиморасчеты.СпособВыплаты = ЗНАЧЕНИЕ(Перечисление.СпособыВыплатыЗарплаты.ЧерезБанк)
ТОГДА "Перечислено в банк "
ИНАЧЕ "Способ выплаты не указан "
КОНЕЦ + ВЫБОР
КОГДА Взаиморасчеты.ХарактерВыплаты = ЗНАЧЕНИЕ(Перечисление.ХарактерВыплатыЗарплаты.ПлановыйАванс)
ИЛИ Взаиморасчеты.ХарактерВыплаты = ЗНАЧЕНИЕ(Перечисление.ХарактерВыплатыЗарплаты.АвансЗаПервуюПоловинуМесяца)
ТОГДА "(аванс)"
КОГДА Взаиморасчеты.ХарактерВыплаты = ЗНАЧЕНИЕ(Перечисление.ХарактерВыплатыЗарплаты.Зарплата)
ТОГДА "(под расчет)"
КОГДА Взаиморасчеты.ХарактерВыплаты = ЗНАЧЕНИЕ(Перечисление.ХарактерВыплатыЗарплаты.ПустаяСсылка)
И Взаиморасчеты.СуммаВзаиморасчетов > 0
ТОГДА "(не указано)"
КОГДА Взаиморасчеты.ХарактерВыплаты = ЗНАЧЕНИЕ(Перечисление.ХарактерВыплатыЗарплаты.ПустаяСсылка)
И Взаиморасчеты.СуммаВзаиморасчетов < 0
ТОГДА "(погашено задолженности)"
ИНАЧЕ "(межрасчет)"
КОНЕЦ КАК ВидРасчета,
"А" КАК ПриоритетВидаРасчета,
НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, МЕСЯЦ) КАК ПериодРегистрации,
"Всего выплачено" КАК Группа,
5 КАК ПриоритетГруппы,
Взаиморасчеты.СуммаВзаиморасчетов КАК Результат,
Взаиморасчеты.Регистратор КАК Регистратор,
Взаиморасчеты.Ведомость КАК Ведомость,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА Взаиморасчеты.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ КАК СтатьяФинансирования,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА Взаиморасчеты.КОСГУ
ИНАЧЕ NULL
КОНЕЦ КАК КОСГУ
ПОМЕСТИТЬ Взаиморасчеты
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК Взаиморасчеты
ГДЕ
Взаиморасчеты.Период МЕЖДУ &НачалоПериода И &КонецПериода
И Взаиморасчеты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
И Взаиморасчеты.СуммаВзаиморасчетов <> 0
{ГДЕ
Взаиморасчеты.Физлицо.*,
Взаиморасчеты.Организация.*}
;

макс

Надо определить "Конечное сальдо", вот код он неправильно вычисляет
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СальдоПоПериодам.Период КАК ПериодРегистрации,
СальдоПоПериодам.Организация КАК Организация,
ВЫБОР
КОГДА СальдоПоПериодам.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СальдоПоПериодам.Организация
ИНАЧЕ СальдоПоПериодам.Организация.ГоловнаяОрганизация
КОНЕЦ КАК ГоловнаяОрганизация,
СУММА(СальдоПоПериодам.СуммаВзаиморасчетовКонечныйОстаток) КАК Результат,
"Я" КАК Группа,
6 КАК ПриоритетГруппы,
NULL КАК ПриоритетВидаРасчета,
СальдоПоПериодам.Физлицо КАК Физлицо,
"Конечное сальдо" КАК ВидРасчета,
NULL КАК Регистратор,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ КАК СтатьяФинансирования,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.КОСГУ
ИНАЧЕ NULL
КОНЕЦ КАК КОСГУ
ПОМЕСТИТЬ КонечныйОстаток
ИЗ
(ВЫБРАТЬ
Периоды.Период КАК Период,
Сальдо.Физлицо КАК Физлицо,
Сальдо.Организация КАК Организация,
СУММА(Сальдо.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток,
Сальдо.СтатьяФинансирования КАК СтатьяФинансирования,
Сальдо.КОСГУ КАК КОСГУ
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Период
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода) КАК Периоды
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Организация КАК Организация,
&НачалоПериода КАК Период,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Физлицо КАК Физлицо,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СтатьяФинансирования КАК СтатьяФинансирования,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.КОСГУ КАК КОСГУ
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Организация,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Период,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Физлицо,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СуммаВзаиморасчетовОборот,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СтатьяФинансирования,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.КОСГУ
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
НДФЛКЗачету.Организация,
&НачалоПериода,
НДФЛКЗачету.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачетуОстаток,
НДФЛКЗачету.СтатьяФинансирования,
НДФЛКЗачету.КОСГУ
ИЗ
РегистрНакопления.НДФЛКЗачету.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК НДФЛКЗачету

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
НДФЛКЗачету.Организация,
НДФЛКЗачету.Период,
НДФЛКЗачету.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачетуОборот,
НДФЛКЗачету.СтатьяФинансирования,
НДФЛКЗачету.КОСГУ
ИЗ
РегистрНакопления.НДФЛКЗачету.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету) КАК Сальдо
ПО (Сальдо.Период <= Периоды.Период)
ГДЕ
(НЕ Сальдо.Физлицо ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
Сальдо.Организация,
Сальдо.Физлицо,
Периоды.Период,
Сальдо.СтатьяФинансирования,
Сальдо.КОСГУ) КАК СальдоПоПериодам
ГДЕ
(СальдоПоПериодам.Период = НАЧАЛОПЕРИОДА(&КонецПериода, МЕСЯЦ)
ИЛИ &ЕстьГруппировкаПоПериодуРегисрации)
И (НЕ СальдоПоПериодам.Физлицо ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
СальдоПоПериодам.Период,
СальдоПоПериодам.Организация,
СальдоПоПериодам.Физлицо,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.КОСГУ
ИНАЧЕ NULL
КОНЕЦ,
ВЫБОР
КОГДА СальдоПоПериодам.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СальдоПоПериодам.Организация
ИНАЧЕ СальдоПоПериодам.Организация.ГоловнаяОрганизация
КОНЕЦ

ИМЕЮЩИЕ
СУММА(СальдоПоПериодам.СуммаВзаиморасчетовКонечныйОстаток) <> 0
;

макс

Код запроса полностью не закидывается, запрос состоит из кучи маленьких пакетов, хочу сделать так, чтобы конечное сальдо вычислялось вот так КонечноеСальдо = НачальноеСальдо + ВсегоНачислено-ВсегоУдержано-ВсегоВыплачено;
вычисляются они в поле "Результат";
думаю как можно сделать, они все помещаются во временные таблицы, можно как-нибудь из запроса "Конечное Сальдо" обратиться к полям временных таблиц "Результат" других запросов?

progmikon

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

макс

Вот я пытаюсь в запрос "конечное сальдо", перекинуть результат из временной таблицы "начальное сальдо",помогите понять написал, пишет что  "поле не входит в группу начальныйОстаток.Результат"

ВЫБРАТЬ РАЗРЕШЕННЫЕ
НачальныйОстаток.Результат КАК НачСальдоРезультат,
СальдоПоПериодам.Период КАК ПериодРегистрации,
СальдоПоПериодам.Организация КАК Организация,
ВЫБОР
КОГДА СальдоПоПериодам.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СальдоПоПериодам.Организация
ИНАЧЕ СальдоПоПериодам.Организация.ГоловнаяОрганизация
КОНЕЦ КАК ГоловнаяОрганизация,
СУММА(СальдоПоПериодам.СуммаВзаиморасчетовКонечныйОстаток) КАК Результат,
"Я" КАК Группа,
6 КАК ПриоритетГруппы,
NULL КАК ПриоритетВидаРасчета,
СальдоПоПериодам.Физлицо КАК Физлицо,
"Конечное сальдо" КАК ВидРасчета,
NULL КАК Регистратор,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ КАК СтатьяФинансирования,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.КОСГУ
ИНАЧЕ NULL
КОНЕЦ КАК КОСГУ
ПОМЕСТИТЬ КонечныйОстаток
ИЗ
НачальныйОстаток КАК НачальныйОстаток,
(ВЫБРАТЬ
Периоды.Период КАК Период,
Сальдо.Физлицо КАК Физлицо,
Сальдо.Организация КАК Организация,
СУММА(Сальдо.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток,
Сальдо.СтатьяФинансирования КАК СтатьяФинансирования,
Сальдо.КОСГУ КАК КОСГУ
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Период
ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода) КАК Периоды
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Организация КАК Организация,
&НачалоПериода КАК Период,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Физлицо КАК Физлицо,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СтатьяФинансирования КАК СтатьяФинансирования,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.КОСГУ КАК КОСГУ
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Организация,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Период,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.Физлицо,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СуммаВзаиморасчетовОборот,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.СтатьяФинансирования,
ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты.КОСГУ
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК ВзаиморасчетыСРаботникамиОрганизацииОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
НДФЛКЗачету.Организация,
&НачалоПериода,
НДФЛКЗачету.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачетуОстаток,
НДФЛКЗачету.СтатьяФинансирования,
НДФЛКЗачету.КОСГУ
ИЗ
РегистрНакопления.НДФЛКЗачету.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК НДФЛКЗачету

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
НДФЛКЗачету.Организация,
НДФЛКЗачету.Период,
НДФЛКЗачету.ФизЛицо,
НДФЛКЗачету.СуммаНДФЛКЗачетуОборот,
НДФЛКЗачету.СтатьяФинансирования,
НДФЛКЗачету.КОСГУ
ИЗ
РегистрНакопления.НДФЛКЗачету.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету) КАК Сальдо
ПО (Сальдо.Период <= Периоды.Период)
ГДЕ
(НЕ Сальдо.Физлицо ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
Сальдо.Организация,
Сальдо.Физлицо,
Периоды.Период,
Сальдо.СтатьяФинансирования,
Сальдо.КОСГУ) КАК СальдоПоПериодам
ГДЕ
(СальдоПоПериодам.Период = НАЧАЛОПЕРИОДА(&КонецПериода, МЕСЯЦ)
ИЛИ &ЕстьГруппировкаПоПериодуРегисрации)
И (НЕ СальдоПоПериодам.Физлицо ЕСТЬ NULL )

СГРУППИРОВАТЬ ПО
СальдоПоПериодам.Период,
СальдоПоПериодам.Организация,
СальдоПоПериодам.Физлицо,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.СтатьяФинансирования
ИНАЧЕ NULL
КОНЕЦ,
ВЫБОР
КОГДА &ВыводитьИФ
ТОГДА СальдоПоПериодам.КОСГУ
ИНАЧЕ NULL
КОНЕЦ,
ВЫБОР
КОГДА СальдоПоПериодам.Организация.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
ТОГДА СальдоПоПериодам.Организация
ИНАЧЕ СальдоПоПериодам.Организация.ГоловнаяОрганизация
КОНЕЦ

ИМЕЮЩИЕ
СУММА(СальдоПоПериодам.СуммаВзаиморасчетовКонечныйОстаток) <> 0
;

макс

А можно поместить в виртуальные таблицы конечный результат, то есть как я понимаю он в запросе пробегает по многим таблицам, я хочу значение этих полей суммировать и конечный результат поместить в виртуальные таблицы, а после вычислить сальдо

progmikon

Очень тяжело читать ваш запрос.
Могу сказать следующее, сколько раз вы используете агрегатную функцию СУММА, столько же раз должна быть и группировка.
Проверьте корректность группировок.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск