Потребовалось подредактировать отчет по просроченной задолженности поставщиков в разрезе документов - это получилось, встал другой вопрос, хотелось бы увидеть группировку по контрагенту и итогу по нему же, вот с этим и возникли проблемы, никак не получается их получить.
Чтоб итог задолженности по контрагенту был общий, просроченные платежи по нему же были, а группировка по документам: только просроченные по оплате. Получается либо без группировки по документам но с итогами по контрагенту общими и просроченными, либо в разрезе документов, но без итогов по контрагенту. Помогите, сам новичек в восьмерке, опыта семерки не очень хватает на это...
Примерно так:
"Контрагент" Всего долг Просрочено
Контрагент1 200 100
Док1 50
Док2 50
Контрагент2 100 25
Док1 25
Чтоб итог задолженности по контрагенту был общий, просроченные платежи по нему же были, а группировка по документам: только просроченные по оплате. Получается либо без группировки по документам но с итогами по контрагенту общими и просроченными, либо в разрезе документов, но без итогов по контрагенту. Помогите, сам новичек в восьмерке, опыта семерки не очень хватает на это...
Примерно так:
"Контрагент" Всего долг Просрочено
Контрагент1 200 100
Док1 50
Док2 50
Контрагент2 100 25
Док1 25
Запрос = Новый Запрос;
ВидыСубконтоКД = Новый СписокЗначений;
ВидыСубконтоКД.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
ВидыСубконтоКД.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры);
ВидыСубконтоКД.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ДокументыРасчетовСКонтрагентами);
Запрос.УстановитьПараметр("ВидыСубконтоКД", ВидыСубконтоКД);
Запрос.УстановитьПараметр("ГраницаОстатков", Новый Граница(КонецДня(КонецПериода), ВидГраницы.Включая));
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("СтандартныйСрокОплатыПоставщикам", Константы.СрокОплатыПоставщикам.Получить());
Запрос.УстановитьПараметр("КонецИнтервала", КонецДня(КонецПериода));
Запрос.УстановитьПараметр("ИсключенныеСчета", СтандартныеОтчеты.ПолучитьСписокСчетовИсключаемыхИзРасчетаЗадолженности(2));
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ТекстЗапросаПоОстаткам =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| СчетаКонтрагентов.Ссылка КАК Счет
|ПОМЕСТИТЬ СчетаКД
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК СчетаКонтрагентов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ХозрасчетныйВидыСубконто.Ссылка КАК Ссылка
| ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
| ГДЕ
| ХозрасчетныйВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры)) КАК СчетаДоговоров
| ПО СчетаКонтрагентов.Ссылка = СчетаДоговоров.Ссылка
|ГДЕ
| СчетаКонтрагентов.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты)
|
|ИНДЕКСИРОВАТЬ ПО
| Счет
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВложенныйЗапрос.Организация КАК Организация,
| ВложенныйЗапрос.Контрагент КАК Контрагент,
| ВложенныйЗапрос.Договор КАК Договор,
| ВложенныйЗапрос.СрокОплаты КАК СрокОплаты,
| ВложенныйЗапрос.СуммаОстаток КАК ОстатокДолга,
| ВложенныйЗапрос.Документ
|ПОМЕСТИТЬ ОстаткиДолга
|ИЗ
| (ВЫБРАТЬ
| ВзаиморасчетыОстатки.Организация КАК Организация,
| ВзаиморасчетыОстатки.Субконто1 КАК Контрагент,
| ВзаиморасчетыОстатки.Субконто2 КАК Договор,
| ВЫБОР
| КОГДА ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов).УстановленСрокОплаты
| ТОГДА ВЫРАЗИТЬ(ВзаиморасчетыОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов).СрокОплаты
| ИНАЧЕ &СтандартныйСрокОплатыПоставщикам
| КОНЕЦ КАК СрокОплаты,
| ВзаиморасчетыОстатки.Счет КАК Счет,
| ВзаиморасчетыОстатки.СуммаРазвернутыйОстатокКт КАК СуммаОстаток,
| ВзаиморасчетыОстатки.Субконто3 КАК Документ
| ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &ГраницаОстатков,
| Счет В
| (ВЫБРАТЬ
| СчетаКД.Счет
| ИЗ
| СчетаКД КАК СчетаКД)
| И (НЕ Счет.Забалансовый)
| И (НЕ Счет В ИЕРАРХИИ (&ИсключенныеСчета)),
| &ВидыСубконтоКД,
| ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов).ВидДоговора В (ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком), ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомитентом))
| И Организация = &Организация) КАК ВзаиморасчетыОстатки) КАК ВложенныйЗапрос
|
|ИНДЕКСИРОВАТЬ ПО
| Контрагент,
| Договор
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ОстаткиДолга.СрокОплаты КАК СрокОплаты
|ИЗ
| ОстаткиДолга КАК ОстаткиДолга
|
|УПОРЯДОЧИТЬ ПО
| СрокОплаты";
Если НЕ ЗначениеЗаполнено(Организация) Тогда
ТекстЗапросаПоОстаткам = СтрЗаменить(ТекстЗапросаПоОстаткам, "И Организация = &Организация", "");
КонецЕсли;
Запрос.Текст = ТекстЗапросаПоОстаткам;
МассивСроковОплаты = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("СрокОплаты");
Если МассивСроковОплаты.Количество() = 0 Тогда
МассивСроковОплаты.Добавить(0);
КонецЕсли;
ТекстОстатки =
"ВЫБРАТЬ
| ОстаткиДолга.Организация,
| ОстаткиДолга.Контрагент,
| ОстаткиДолга.Договор,
| ОстаткиДолга.Документ,
| ОстаткиДолга.СрокОплаты,
| ОстаткиДолга.ОстатокДолга,
| ЕСТЬNULL(Обороты.УвеличениеДолга, 0) КАК УвеличениеДолга
|ИЗ
| ОстаткиДолга КАК ОстаткиДолга";
ТекстОборотыПоСроку =
"ВЫБРАТЬ
| ВзаиморасчетыОбороты.Организация КАК Организация,
| ВзаиморасчетыОбороты.Субконто1 КАК Контрагент,
| ВзаиморасчетыОбороты.Субконто2 КАК Договор,
| ВзаиморасчетыОбороты.Субконто3 КАК Документ,
| ВЫБОР
| КОГДА ВзаиморасчетыОбороты.СуммаОборотКт > 0
| ТОГДА ВзаиморасчетыОбороты.СуммаОборотКт
| ИНАЧЕ 0
| КОНЕЦ - ВЫБОР
| КОГДА ВзаиморасчетыОбороты.СуммаОборотДт < 0
| ТОГДА ВзаиморасчетыОбороты.СуммаОборотДт
| ИНАЧЕ 0
| КОНЕЦ КАК УвеличениеДолга
|ПОМЕСТИТЬ Обороты1
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| &НачалоИнтервала1,
| &КонецИнтервала,
| ,
| Счет В
| (ВЫБРАТЬ
| СчетаКД.Счет
| ИЗ
| СчетаКД КАК СчетаКД)
| И (НЕ Счет.Забалансовый)
| И (НЕ Счет В ИЕРАРХИИ (&ИсключенныеСчета)),
| &ВидыСубконтоКД,
| (Субконто1, Субконто2) В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОстаткиДолга.Контрагент,
| ОстаткиДолга.Договор
| ИЗ
| ОстаткиДолга КАК ОстаткиДолга
| ГДЕ
| ОстаткиДолга.СрокОплаты = &СрокОплаты1)
| И Организация = &Организация,
| ,
| ) КАК ВзаиморасчетыОбороты
|";
Если НЕ ЗначениеЗаполнено(Организация) Тогда
ТекстОборотыПоСроку = СтрЗаменить(ТекстОборотыПоСроку, "И Организация = &Организация", "");
КонецЕсли;
МаксКоличествоЧастей = 10;
КоличествоСроковОплаты = МассивСроковОплаты.Количество();
ОстатокОтДеления = КоличествоСроковОплаты % МаксКоличествоЧастей;
КоличествоЧастей = (КоличествоСроковОплаты - ОстатокОтДеления) / МаксКоличествоЧастей + ?(ОстатокОтДеления > 0, 1, 0);
ТекстОборотыПоВсемСрокам = "";
ТекстВсеОбороты = "";
Для ИндексЧасти = 1 По КоличествоЧастей Цикл
НачальныйИндекс = МаксКоличествоЧастей * (ИндексЧасти - 1) + 1;
КонечныйИндекс = Мин(КоличествоСроковОплаты, МаксКоличествоЧастей * ИндексЧасти);
ТекстОбороты = "";
Для ИндексЗапроса = НачальныйИндекс По КонечныйИндекс Цикл
СрокОплаты = МассивСроковОплаты[ИндексЗапроса - 1];
Запрос.УстановитьПараметр("НачалоИнтервала" + ИндексЗапроса, НачалоДня(КонецПериода - (СрокОплаты - 1)* 60*60*24));
Запрос.УстановитьПараметр("СрокОплаты" + ИндексЗапроса, СрокОплаты);
ТекстОборотыПоСрокуНом = СтрЗаменить(ТекстОборотыПоСроку, "&НачалоИнтервала1", "&НачалоИнтервала" + ИндексЗапроса);
ТекстОборотыПоСрокуНом = СтрЗаменить(ТекстОборотыПоСрокуНом, "&СрокОплаты1", "&СрокОплаты" + ИндексЗапроса);
Если ИндексЗапроса = НачальныйИндекс Тогда
ТекстОборотыПоСрокуНом = СтрЗаменить(ТекстОборотыПоСрокуНом, "ПОМЕСТИТЬ Обороты1", "ПОМЕСТИТЬ Обороты" + ИндексЧасти);
Иначе
ТекстОборотыПоСрокуНом = СтрЗаменить(ТекстОборотыПоСрокуНом, "ПОМЕСТИТЬ Обороты1", "");
КонецЕсли;
ТекстОбороты = ТекстОбороты
+ ?(ПустаяСтрока(ТекстОбороты), "", "
|
|ОБЪЕДИНИТЬ ВСЕ
|")
+ ТекстОборотыПоСрокуНом;
КонецЦикла;
ТекстВсеОбороты = ТекстВсеОбороты + ТекстОбороты + "
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| Контрагент,
| Договор
|;
|";
ТекстОборотыПоВсемСрокам = ТекстОборотыПоВсемСрокам
+ ?(ПустаяСтрока(ТекстОборотыПоВсемСрокам), "", "
|
|ОБЪЕДИНИТЬ ВСЕ
|")
+ "
|ВЫБРАТЬ
| Обороты" + ИндексЧасти + ".Организация,
| Обороты" + ИндексЧасти + ".Контрагент,
| Обороты" + ИндексЧасти + ".Договор,
| Обороты" + ИндексЧасти + ".Документ,
| Обороты" + ИндексЧасти + ".УвеличениеДолга
|ИЗ
| Обороты" + ИндексЧасти + " КАК Обороты" + ИндексЧасти;
КонецЦикла;
ТекстОстаткиИОбороты = ТекстОстатки + "
|ЛЕВОЕ СОЕДИНЕНИЕ
| (" + ТекстОборотыПоВсемСрокам + ") КАК Обороты
| ПО ОстаткиДолга.Организация = Обороты.Организация
| И ОстаткиДолга.Контрагент = Обороты.Контрагент
| И ОстаткиДолга.Документ = Обороты.Документ
| И ОстаткиДолга.Договор = Обороты.Договор
|";
ТекстПросрочено =
"ВЫБРАТЬ
| ОстаткиИОбороты.Организация,
| ОстаткиИОбороты.Контрагент,
| ОстаткиИОбороты.Договор,
| ОстаткиИОбороты.Документ,
| ОстаткиИОбороты.СрокОплаты,
| ОстаткиИОбороты.ОстатокДолга,
| ОстаткиИОбороты.ОстатокДолга -
| ВЫБОР
| КОГДА ОстаткиИОбороты.ОстатокДолга < ОстаткиИОбороты.УвеличениеДолга
| ТОГДА ОстаткиИОбороты.ОстатокДолга
| ИНАЧЕ ОстаткиИОбороты.УвеличениеДолга
| КОНЕЦ КАК Просрочено
|ИЗ
| (" + ТекстОстаткиИОбороты + ") КАК ОстаткиИОбороты
|ГДЕ
| ОстаткиИОбороты.ОстатокДолга -
| ВЫБОР
| КОГДА ОстаткиИОбороты.ОстатокДолга < ОстаткиИОбороты.УвеличениеДолга
| ТОГДА ОстаткиИОбороты.ОстатокДолга
| ИНАЧЕ ОстаткиИОбороты.УвеличениеДолга
| КОНЕЦ > 0
|СГРУППИРОВАТЬ ПО
| ОстаткиДолга.Контрагент
|";
ПоказатьПо теме из базы знаний
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот