8 августа 2023 в 08:13:35
(1 год 19 недель 4 дня 19 часов назад)
47100
19.06.2017 06:41:33
Текст задания
Требуется запрос по долгам покупателей без учёта авансов - чтобы были видны оплаты, начисления и долг на начало и конец периода.
Код написал, но запрос работает медленно... и не правильно, судя по всему.
Прошу оперативно помочь.
Писать прошу прямо здесь (не в скайп и не в личку).
ЗапросДолг = Новый Запрос;
ЗапросДолг.УстановитьПараметр("Адрес", Адрес);
ЗапросДолг.УстановитьПараметр("НачПериода", Новый Граница(НачалоМесяца(Дата),ВидГраницы.Включая));
ЗапросДолг.УстановитьПараметр("КонПериода", Новый Граница(КонецМесяца(Дата),ВидГраницы.Включая));
//ЗапросДолг.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками);
//ЗапросДолг.УстановитьПараметр("Счет51", ПланыСчетов.Хозрасчетный.НайтиПоКоду("51"));
ЗапросДолг.УстановитьПараметр("Счет62", ПланыСчетов.Хозрасчетный.НайтиПоКоду("62"));
//ЗапросДолг.УстановитьПараметр("Счет90", ПланыСчетов.Хозрасчетный.НайтиПоКоду("90"));
ЗапросДолг.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток,
| ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент0,
| ХозрасчетныйОборотыДт.СубконтоДт1 КАК Контрагент1,
| ХозрасчетныйОборотыКт.СубконтоКт1 КАК Контрагент2,
| ХозрасчетныйОборотыДт.СуммаОборот КАК СуммаОборотДт,
| ХозрасчетныйОборотыКт.СуммаОборот КАК СуммаОборотКт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет62), , Субконто1 В ИЕРАРХИИ (&Адрес)) КАК ХозрасчетныйОстаткиИОбороты
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , СчетДт В ИЕРАРХИИ (&Счет62), , НЕ СчетКт В ИЕРАРХИИ (&Счет62), , ) КАК ХозрасчетныйОборотыКт
| ПО (ХозрасчетныйОстаткиИОбороты.Субконто1 = ХозрасчетныйОборотыКт.СубконтоДт1
| ИЛИ ХозрасчетныйОстаткиИОбороты.Субконто1 = ХозрасчетныйОборотыКт.СубконтоКт1)
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , НЕ СчетДт В ИЕРАРХИИ (&Счет62), , СчетКт В ИЕРАРХИИ (&Счет62), , ) КАК ХозрасчетныйОборотыДт
| ПО (ХозрасчетныйОстаткиИОбороты.Субконто1 = ХозрасчетныйОборотыДт.СубконтоДт1
| ИЛИ ХозрасчетныйОстаткиИОбороты.Субконто1 = ХозрасчетныйОборотыДт.СубконтоКт1)";
Оборотка = ЗапросДолг.Выполнить().Выгрузить();
Оборотка.Колонки.Добавить("КонтрагентНП");
Оборотка.Колонки.Добавить("Контрагент");
Для Каждого СтрокаОборотки Из Оборотка Цикл
Если СтрокаОборотки.Контрагент<>Null И СокрЛП(СтрокаОборотки.Контрагент)<>"" Тогда
СтрокаОборотки.Контрагент=СтрокаОборотки.Контрагент;
ИначеЕсли СтрокаОборотки.Контрагент1<>Null И СокрЛП(СтрокаОборотки.Контрагент1)<>""Тогда
СтрокаОборотки.Контрагент=СтрокаОборотки.Контрагент1;
ИначеЕсли СтрокаОборотки.Контрагент2<>Null И СокрЛП(СтрокаОборотки.Контрагент2)<>""Тогда
СтрокаОборотки.Контрагент=СтрокаОборотки.Контрагент2;
КонецЕсли;