К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

БП8.0 Как правильно сформировать обход результата запроса по вложенным группировкам??

Гость
0 - 29.01.2016 - 13:45
Есть запрос, который формирует Дебиторскую задолженность по договорам. Но нужно еще итоги выбирать по ЦФО по 62.01 счету. Документ реализации и оплаты делают проводки с 3 Субконтами : Контрагент, Договор, ЦФО

Запрос1 = Новый Запрос;

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


ВыборкаИтоги = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппир овкам);

ТабДокумент = Новый ТабличныйДокумент;

Пока ВыборкаИтоги.Следующий() Цикл
Если ВыборкаИтоги.СуммаДт > ВыборкаИтоги.СуммаКт Тогда
ДебетоваяЗадолженностьПоДоговору = ВыборкаИтоги.СуммаДт-ВыборкаИтоги.СуммаКт;
ВыборкаДетальныеЗаписи = ВыборкаИтоги.Выбрать();
ОсталосьСписать = ДебетоваяЗадолженностьПоДоговору;
СуммаВсего=0; Сумма1=0; Сумма13=0; Сумма36=0; Сумма6=0; КСуммаРезерв = 0; КСуммаВсегоПр = 0; СуммаОпл = 0;
Оплачено = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ОсталосьСписать = ОсталосьСписать - ВыборкаДетальныеЗаписи.СуммаДт;
Если ВыборкаДетальныеЗаписи.СуммаДт>0 И ВыборкаДетальныеЗаписи.СуммаКт=0 Тогда
ДнейЗадолженности = (НачалоДня(ДатаК) - НачалоДня(ВыборкаДетальныеЗаписи.РегистраторДата))/86400;

Если ОсталосьСписать >0 Тогда //Это строки.....

СуммаВсего = СуммаВсего+ВыборкаДетальныеЗаписи.СуммаДт; // СуммаВсего +
Если ДнейЗадолженности < 30 Тогда
Сумма1= Сумма1 + ВыборкаДетальныеЗаписи.СуммаДт; // Сумма45 +
ИначеЕсли ДнейЗадолженности < 90 Тогда
Сумма13 = Сумма13 + ВыборкаДетальныеЗаписи.СуммаДт; // Сумма4590 +
ИначеЕсли ДнейЗадолженности < 180 Тогда
Сумма36 = Сумма36 + ВыборкаДетальныеЗаписи.СуммаДт; // Сумма90365 +
Иначе
Сумма6 = Сумма6 + ВыборкаДетальныеЗаписи.СуммаДт; // Сумма1год +
КонецЕсли;



Гость
1 - 29.01.2016 - 14:12
БП 8.0 - это что?

2 - 29.01.2016 - 14:21
2(1) Это гость(я) из будущего... У них уже БП 8.0...
P.S. мне кажется сам запрос неправильный... если мы хотим выделить обороты по корреспондирующему счету, это и надо указывать в запросе.
Гость
3 - 29.01.2016 - 14:28
И ХозрасчетныйОстаткиИОбороты.Регистратор <> НЕОПРЕДЕЛЕНО

дальше читать не стал
Гость
4 - 29.01.2016 - 14:30
Да ещё и туева хуча левых соединений
Гость
5 - 29.01.2016 - 14:31
БП редакция 1.5 ((
Гость
6 - 29.01.2016 - 14:33
По Договору павильно формирует остатки, мне еще нужно даты вычислять, с которой образовалась задолженность. Для этого и создавалась виртуальная таблица....
Гость
7 - 29.01.2016 - 14:35
Дебиторская задолженность - это сальдо конечное по дебету 62 счета )


К списку вопросов






Copyright ©, Все права защищены