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

Запрос выводит данные только по одному документу

Автор b3ard, 26 сен 2022, 08:30

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

b3ard

Всем доброго времени суток, такая задача, делаю отчет на СКД для финансовой организации, конфигурация 1С:Управление микрофинансовой организацией и кредитным потребительским кооперативом ПРОФ, редакция 3.0, в ТЗ нужно вывести дату и сумму последнего платежа, в 1С:Предприятие, эти данные показываются на панели, которая обновляется в общем модуле АЭ_ДинамическиеСписки, процедура ОбновитьДанныеПанели, для займа используется функция ПолучитьДанныеПанелиПоЗаймуПредоставленномуКредитуПолученному, в этой функции есть запрос, его копирую в отдельный набор данных СКД, связываю с основным набором данных по номеру договора. Когда запускаю отчет, если выбрать конкретный займ (в поле отбора указать например конкретный номер), данные выводятся, но если убрать этот фильтр и вывести весь список займов, то сумма и дата последнего платежа отображаются только у одного займа, и так понимаю что у того, которого дата платежа больше всех.
Сам код запроса:
ВЫБРАТЬ
    АЭ_ЗаймПредоставленный.Организация КАК Организация,
    АЭ_ЗаймПредоставленный.Контрагент КАК Контрагент,
    АЭ_ЗаймПредоставленный.Ссылка КАК Займ,
    АЭ_ЗаймПредоставленный.НомерДоговора КАК НомерДоговора,
    АЭ_ЗаймПредоставленный.ДатаДоговора КАК ДатаДоговора,
    ЕСТЬNULL(АЭ_ЗаймПредоставленный.Контрагент.АЭ_ФизическоеЛицо, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)) КАК ФизическоеЛицо,
    АЭ_ЗаймПредоставленный.Дата КАК Период,
    АЭ_ЗаймПредоставленный.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ЕСТЬNULL(АЭ_ЗаймПредоставленный.ДоговорКонтрагента.Наименование, """") КАК ДоговорКонтрагентаПредставление,
    АЭ_ЗаймПредоставленный.ДатаНачала КАК ДатаНачала,
    АЭ_ЗаймПредоставленный.ДатаОкончания КАК ДатаОкончания,
    АЭ_ЗаймПредоставленный.Номер КАК Номер,
    АЭ_ЗаймПредоставленный.Дата КАК Дата,
    ЕСТЬNULL(АЭ_ЗаймПредоставленный.ФинансовыйПродукт.Наименование, """") КАК ФинансовыйПродуктНаименование
ПОМЕСТИТЬ ВТ_Реквизиты
ИЗ
    Документ.АЭ_ЗаймПредоставленный КАК АЭ_ЗаймПредоставленный
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Реквизиты.Организация КАК Организация,
    ВТ_Реквизиты.Контрагент КАК Контрагент,
    ВТ_Реквизиты.Займ КАК Займ,
    ВТ_Реквизиты.ФизическоеЛицо КАК ФизическоеЛицо,
    ВТ_Реквизиты.НомерДоговора КАК НомерДоговора,
    ВТ_Реквизиты.ДатаДоговора КАК ДатаДоговора,
    ВТ_Реквизиты.Период КАК Период,
    ВТ_Реквизиты.ДатаНачала КАК ДатаНачалаДоговора,
    ВТ_Реквизиты.Номер КАК ЗаймНомер,
    ВТ_Реквизиты.Дата КАК ЗаймДата
ПОМЕСТИТЬ ВТ_АктуальныеРеквизиты
ИЗ
    ВТ_Реквизиты КАК ВТ_Реквизиты

ИНДЕКСИРОВАТЬ ПО
    Организация,
    Контрагент,
    Займ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_АктуальныеРеквизиты.Организация КАК Организация,
    ВТ_АктуальныеРеквизиты.Контрагент КАК Контрагент,
    ВТ_АктуальныеРеквизиты.Займ КАК Займ,
    ВТ_АктуальныеРеквизиты.ФизическоеЛицо КАК ФизическоеЛицо,
    ВТ_АктуальныеРеквизиты.НомерДоговора КАК НомерДоговора,
    ВТ_АктуальныеРеквизиты.ДатаДоговора КАК ДатаДоговора,
    ВТ_АктуальныеРеквизиты.Период КАК Период,
    ВТ_АктуальныеРеквизиты.ДатаНачалаДоговора КАК ДатаНачалаДоговора,
    ВТ_АктуальныеРеквизиты.ЗаймНомер КАК ЗаймНомер,
    ВТ_АктуальныеРеквизиты.ЗаймДата КАК ЗаймДата
ПОМЕСТИТЬ ВТ_АктуальныеУсловия
ИЗ
    ВТ_АктуальныеРеквизиты КАК ВТ_АктуальныеРеквизиты

ИНДЕКСИРОВАТЬ ПО
    Займ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Платежи.Организация КАК Организация,
    Платежи.Контрагент КАК Контрагент,
    Платежи.Займ КАК Займ,
    Платежи.Период КАК Период,
    СУММА(Платежи.СуммаПроцент) КАК СуммаПроцент,
    СУММА(Платежи.СуммаОсновнойДолг) КАК СуммаОсновнойДолг,
    СУММА(Платежи.СуммаКомиссии) КАК СуммаКомиссии,
    СУММА(Платежи.СуммаЧленскиеВзносы) КАК СуммаЧленскиеВзносы,
    СУММА(Платежи.СуммаПени) КАК СуммаПени,
    СУММА(Платежи.СуммаШтрафы) КАК СуммаШтрафы,
    СУММА(Платежи.СуммаГоспошлина) КАК СуммаГоспошлина
ПОМЕСТИТЬ ВТ_Платежи
ИЗ
    (ВЫБРАТЬ
        АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Организация КАК Организация,
        АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Контрагент КАК Контрагент,
        АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Займ КАК Займ,
        АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Период КАК Период,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления = ЗНАЧЕНИЕ(Справочник.АЭ_ВидыНачисленийПоЗаймам.Проценты)
                ТОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ КАК СуммаПроцент,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления = ЗНАЧЕНИЕ(Справочник.АЭ_ВидыНачисленийПоЗаймам.ОсновнойДолг)
                ТОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ КАК СуммаОсновнойДолг,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.Комиссии)
                ТОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ КАК СуммаКомиссии,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.ЧленскиеВзносы)
                ТОГДА АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ КАК СуммаЧленскиеВзносы,
        0 КАК СуммаПени,
        0 КАК СуммаШтрафы,
        0 КАК СуммаГоспошлина
    ИЗ
        РегистрНакопления.АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных КАК АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных
    ГДЕ
        АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Период <= &Период
        И АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Активность
        И АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
        И (АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Организация, АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Контрагент, АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Займ) В
                (ВЫБРАТЬ
                    ВТ_Реквизиты.Организация,
                    ВТ_Реквизиты.Контрагент,
                    ВТ_Реквизиты.Займ
                ИЗ
                    ВТ_Реквизиты КАК ВТ_Реквизиты)
        И АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.Сумма <> 0
        И (АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления = ЗНАЧЕНИЕ(Справочник.АЭ_ВидыНачисленийПоЗаймам.Проценты)
                ИЛИ АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления = ЗНАЧЕНИЕ(Справочник.АЭ_ВидыНачисленийПоЗаймам.ОсновнойДолг)
                ИЛИ АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.Комиссии)
                ИЛИ АЭ_ВзаиморасчетыПоГрафикуЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.ЧленскиеВзносы))
   
    ОБЪЕДИНИТЬ ВСЕ
   
    ВЫБРАТЬ
        АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Организация,
        АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Контрагент,
        АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Займ,
        АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Период,
        0,
        0,
        0,
        0,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.Пени)
                ТОГДА АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.Штрафы)
                ТОГДА АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ,
        ВЫБОР
            КОГДА АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.ПрочиеДоходы)
                ТОГДА АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Сумма
            ИНАЧЕ 0
        КОНЕЦ
    ИЗ
        РегистрНакопления.АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных КАК АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных
    ГДЕ
        АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Период <= &Период
        И АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Активность
        И АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
        И (АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Организация, АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Контрагент, АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Займ) В
                (ВЫБРАТЬ
                    ВТ_Реквизиты.Организация,
                    ВТ_Реквизиты.Контрагент,
                    ВТ_Реквизиты.Займ
                ИЗ
                    ВТ_Реквизиты КАК ВТ_Реквизиты)
        И АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.Сумма <> 0
        И (АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.Пени)
                ИЛИ АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.Штрафы)
                ИЛИ АЭ_ВзаиморасчетыПоШтрафамЗаймовПредоставленных.ВидНачисления.ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.АЭ_ВидыПлатежейПоЗаймам.ПрочиеДоходы))) КАК Платежи

СГРУППИРОВАТЬ ПО
    Платежи.Период,
    Платежи.Организация,
    Платежи.Контрагент,
    Платежи.Займ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Платежи.Организация КАК Организация,
    ВТ_Платежи.Контрагент КАК Контрагент,
    ВТ_Платежи.Займ КАК Займ,
    ВТ_Платежи.Период КАК Период,
    ВТ_Платежи.СуммаПроцент КАК СуммаПроцент,
    ВТ_Платежи.СуммаОсновнойДолг КАК СуммаОсновнойДолг,
    ВТ_Платежи.СуммаКомиссии КАК СуммаКомиссии,
    ВТ_Платежи.СуммаЧленскиеВзносы КАК СуммаЧленскиеВзносы,
    ВТ_Платежи.СуммаПени КАК СуммаПени,
    ВТ_Платежи.СуммаШтрафы КАК СуммаШтрафы,
    ВТ_Платежи.СуммаГоспошлина КАК СуммаГоспошлина
ПОМЕСТИТЬ ВТ_ПоследнийПлатеж
ИЗ
    (ВЫБРАТЬ
        МАКСИМУМ(ВТ_Платежи.Период) КАК Период
    ИЗ
        ВТ_Платежи КАК ВТ_Платежи) КАК ПоследниеПлатежи
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Платежи КАК ВТ_Платежи
        ПО ПоследниеПлатежи.Период = ВТ_Платежи.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_АктуальныеУсловия.Организация КАК Организация,
    ВТ_АктуальныеУсловия.Контрагент КАК Контрагент,
    ВТ_АктуальныеУсловия.Займ КАК Займ,
    ВТ_АктуальныеУсловия.ЗаймНомер КАК ЗаймНомер,
    ВТ_АктуальныеУсловия.ЗаймДата КАК ЗаймДата,
    ВТ_АктуальныеУсловия.ФизическоеЛицо КАК ФизическоеЛицо,
    ВТ_АктуальныеУсловия.НомерДоговора КАК НомерДоговора,
    ВТ_АктуальныеУсловия.ДатаДоговора КАК ДатаДоговора,
    ВТ_АктуальныеУсловия.Период КАК Период,
    ВТ_ПоследнийПлатеж.Период КАК ПоследнийПлатеж_Дата,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаОсновнойДолг, 0) КАК ПоследнийПлатеж_ОсновнойДолг,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаПроцент, 0) КАК ПоследнийПлатеж_Процент,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаКомиссии, 0) КАК ПоследнийПлатеж_Комиссии,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаЧленскиеВзносы, 0) КАК ПоследнийПлатеж_ЧленскиеВзносы,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаПени, 0) КАК ПоследнийПлатеж_Пени,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаШтрафы, 0) КАК ПоследнийПлатеж_Штрафы,
    ЕСТЬNULL(ВТ_ПоследнийПлатеж.СуммаГоспошлина, 0) КАК ПоследнийПлатеж_Госпошлина
ИЗ
    ВТ_АктуальныеУсловия КАК ВТ_АктуальныеУсловия
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПоследнийПлатеж КАК ВТ_ПоследнийПлатеж
        ПО ВТ_АктуальныеУсловия.Займ = ВТ_ПоследнийПлатеж.Займ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АЭ_СостояниеДоговоров КАК АЭ_СостояниеДоговоров
        ПО ВТ_АктуальныеУсловия.Займ = АЭ_СостояниеДоговоров.Документ
Прошу сразу сильно не пинать, в 1С я новичок :xfbnsdfb:

Нужно чтобы эта дата и сумма проставлялась для всех строк отчета, а не только для одной, например, когда вывожу весь список, отображается только в одной строке:
https://yadi.sk/d/efaBumiDB9ljgQ

Если вывожу по каждому по отдельности, то данные выводятся:
https://yadi.sk/d/hU208h1bXaJsJQ


Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск