Имя: Пароль:
1C
 
Как соединить строки по полю СКД 1с
0 HAKv1N
 
26.08.26
09:32
У меня ресурсы рассчитываются по группировке "Ссылка" и на один предмет аренды может быть несколько документов, из за этого идет раздвоение строк, как это объединить в одну. Заранее спасибо
1 xenos
 
26.08.26
09:34
В СКД вроде можно указывать по чему идёт группировка.

А так можно посчитать количество документов и разделить сумму.
2 HAKv1N
 
26.08.26
09:40
Я указал, что ресурсы рассчитываются по группировке "ПредметАренды" и по месяцам, который находится под группировкой "Ссылка", и т.к. на 1 ПредметАренды может быть несколько документов, то строки раздваиваются и получается что 3 месяца будут пустыми и заполнены, а в следующих строках наоборот, а это нужно объединить
3 mikecool
 
26.08.26
09:40
1) исключить документы
2) добавить документы в ресурс Массив()
4 HAKv1N
 
26.08.26
09:45
ВЫБОР
КОГДА ВычислитьВыражение("Сумма(1)", "Ссылка") = НомерПоПорядкуВГруппировке() Тогда ВычислитьВыражение("Сумма(СуммаПлатежа)", "Ссылка") - (ВычислитьВыражение("Сумма(ОКР(СуммаПлатежа, 2))", "Ссылка") - Сумма(СуммаПлатежа))
Иначе Сумма(СуммаПлатежа)
Конец

это расчет ресурса "СуммаПлатежа", то есть расчет идет другой на последний предмет аренды, как я понял это не работает без группировки, т.к. идет проверка "ВычислитьВыражение("Сумма(1)", "Ссылка") = НомерПоПорядкуВГруппировке()", как с помощью массива сделать аналогично?
5 xenos
 
26.08.26
09:49
(2)

ВЫБРАТЬ
    АвансовыйОтчетПрочиеРасходы.Ссылка КАК Документ,
    АвансовыйОтчетПрочиеРасходы.НомерСтроки КАК НомерСтроки,
    АвансовыйОтчетПрочиеРасходы.Содержание КАК Содержание,
    АвансовыйОтчетПрочиеРасходы.Ссылка.СуммаОтклонено КАК СуммаОтклонено
ПОМЕСТИТЬ втДанные
ИЗ
    Документ.АвансовыйОтчет.ПрочиеРасходы КАК АвансовыйОтчетПрочиеРасходы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втДанные.Документ КАК Документ,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ втДанные.НомерСтроки) КАК КоличествоСодержаний
ПОМЕСТИТЬ втКоличествоСодеражний
ИЗ
    втДанные КАК втДанные

СГРУППИРОВАТЬ ПО
    втДанные.Документ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втДанные.Документ КАК Документ,
    втДанные.НомерСтроки КАК НомерСтроки,
    втДанные.Содержание КАК Содержание,
    втДанные.СуммаОтклонено / втКоличествоСодеражний.КоличествоСодержаний КАК СуммаОтклоненоНормированая
ИЗ
    втДанные КАК втДанные
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКоличествоСодеражний КАК втКоличествоСодеражний
        ПО втДанные.Документ = втКоличествоСодеражний.Документ
ИТОГИ
    СУММА(СуммаОтклоненоНормированая)
ПО
    ОБЩИЕ,
    Документ
6 HAKv1N
 
26.08.26
09:52
ВЫБРАТЬ
    ДанныеПредметовАрендыСрезПоследних.Контрагент КАК Лизингодатель,
    ДанныеПредметовАрендыСрезПоследних.ДоговорКонтрагента КАК Договор,
    ДанныеПредметовАрендыСрезПоследних.ПредметАренды КАК ПредметЛизинга,
    ДанныеПредметовАрендыСрезПоследних.Период КАК Период,
    ДанныеПредметовАрендыСрезПоследних.СуммаВзаиморасчетовБУ КАК СуммаВзаиморасчетовБУ
ПОМЕСТИТЬ ВТ_СписокЗаписей
ИЗ
    РегистрСведений.ДанныеПредметовАренды.СрезПоследних(
            &ДатаОкончания,
            Лизинг = ИСТИНА
                И НЕ ПредметАренды В
                        (ВЫБРАТЬ
                            ДанныеПредметовАренды.ПредметАренды
                        ИЗ
                            РегистрСведений.ДанныеПредметовАренды КАК ДанныеПредметовАренды
                        ГДЕ
                            ДанныеПредметовАренды.Период <= &ДатаОкончания
                            И ДанныеПредметовАренды.Регистратор ССЫЛКА Документ.ПрекращениеАренды)) КАК ДанныеПредметовАрендыСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаНачала, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.АрендныеОбязательства), , ) КАК ХозрасчетныйОстатки
        ПО ДанныеПредметовАрендыСрезПоследних.Контрагент = ХозрасчетныйОстатки.Субконто1
            И ДанныеПредметовАрендыСрезПоследних.ДоговорКонтрагента = ХозрасчетныйОстатки.Субконто2
;

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

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

СГРУППИРОВАТЬ ПО
    ИзменениеУсловийАрендыПредметыАренды.ПредметАренды,
    ИзменениеУсловийАрендыПредметыАренды.Ссылка.Дата
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_СписокЗаписей.Договор КАК Договор,
    ВТ_СписокЗаписей.Лизингодатель КАК Лизингодатель,
    ВТ_СписокЗаписей.ПредметЛизинга КАК ПредметЛизинга,
    ВЫБОР
        КОГДА ВТ_СписокИзменений.ДатаПлатежа ЕСТЬ NULL
            ТОГДА ВТ_СписокПоступлений.ДатаПлатежа
        ИНАЧЕ ВТ_СписокИзменений.ДатаПлатежа
    КОНЕЦ КАК ДатаПлатежа,
    ВЫБОР
        КОГДА ВТ_СписокИзменений.СуммаПлатежа ЕСТЬ NULL
            ТОГДА ВТ_СписокПоступлений.СуммаПлатежа
        ИНАЧЕ ВТ_СписокИзменений.СуммаПлатежа
    КОНЕЦ КАК СуммаПлатежа,
    ВЫБОР
        КОГДА ВТ_СписокИзменений.Ссылка ЕСТЬ NULL
            ТОГДА ВТ_СписокПоступлений.Ссылка
        ИНАЧЕ ВТ_СписокИзменений.Ссылка
    КОНЕЦ КАК Ссылка,
    ВЫБОР
        КОГДА ВТ_СписокИзменений.КоличествоПредметов ЕСТЬ NULL
            ТОГДА ВТ_СписокПоступлений.КоличествоПредметов
        ИНАЧЕ ВТ_СписокИзменений.КоличествоПредметов
    КОНЕЦ КАК КоличествоПредметов
ИЗ
    ВТ_СписокЗаписей КАК ВТ_СписокЗаписей
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СписокПоступлений КАК ВТ_СписокПоступлений
        ПО ВТ_СписокЗаписей.ПредметЛизинга = ВТ_СписокПоступлений.ПредметЛизинга
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СписокИзмененийСГрафикомПлатежей КАК ВТ_СписокИзменений
        ПО ВТ_СписокЗаписей.ПредметЛизинга = ВТ_СписокИзменений.ПредметЛизинга

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

вот такой запрос, но выводит не то что нужно, я не пойму как именно запрос нужно изменить
7 xenos
 
26.08.26
10:09
ВЫБРАТЬ
    ДанныеПредметовАрендыСрезПоследних.Контрагент КАК Лизингодатель,
    ДанныеПредметовАрендыСрезПоследних.ДоговорКонтрагента КАК Договор,
    ДанныеПредметовАрендыСрезПоследних.ПредметАренды КАК ПредметЛизинга,
    ДанныеПредметовАрендыСрезПоследних.Период КАК Период,
    ДанныеПредметовАрендыСрезПоследних.СуммаВзаиморасчетовБУ КАК СуммаВзаиморасчетовБУ
ПОМЕСТИТЬ ВТ_СписокЗаписей
ИЗ
    РегистрСведений.ДанныеПредметовАренды.СрезПоследних(
            &ДатаОкончания,
            Лизинг = ИСТИНА
                И НЕ ПредметАренды В
                        (ВЫБРАТЬ
                            ДанныеПредметовАренды.ПредметАренды
                        ИЗ
                            РегистрСведений.ДанныеПредметовАренды КАК ДанныеПредметовАренды
                        ГДЕ
                            ДанныеПредметовАренды.Период <= &ДатаОкончания
                            И ДанныеПредметовАренды.Регистратор ССЫЛКА Документ.ПрекращениеАренды)) КАК ДанныеПредметовАрендыСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаНачала, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.АрендныеОбязательства), , ) КАК ХозрасчетныйОстатки
        ПО ДанныеПредметовАрендыСрезПоследних.Контрагент = ХозрасчетныйОстатки.Субконто1
            И ДанныеПредметовАрендыСрезПоследних.ДоговорКонтрагента = ХозрасчетныйОстатки.Субконто2
;

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

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

СГРУППИРОВАТЬ ПО
    ИзменениеУсловийАрендыПредметыАренды.ПредметАренды,
    ИзменениеУсловийАрендыПредметыАренды.Ссылка.Дата
;

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

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втДанные.Ссылка КАК Ссылка,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ втДанные.НомерЗаписи) КАК КолвоЗаписей
ПОМЕСТИТЬ втКолвоЗаписейПоСылке
ИЗ
    втДанные КАК втДанные

СГРУППИРОВАТЬ ПО
    втДанные.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втДанные.Договор КАК Договор,
    втДанные.Лизингодатель КАК Лизингодатель,
    втДанные.ПредметЛизинга КАК ПредметЛизинга,
    втДанные.ДатаПлатежа КАК ДатаПлатежа,
    втДанные.СуммаПлатежа КАК СуммаПлатежа,
    втДанные.Ссылка КАК Ссылка,
    втДанные.КоличествоПредметов КАК КоличествоПредметов,
    втДанные.СуммаПлатежа / втКолвоЗаписейПоСылке.КолвоЗаписей КАК СуммаПлатежейПоСсылке
ИЗ
    втДанные КАК втДанные
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКолвоЗаписейПоСылке КАК втКолвоЗаписейПоСылке
        ПО втДанные.Ссылка = втКолвоЗаписейПоСылке.Ссылка
8 HAKv1N
 
26.08.26
10:28
нужно для последнего предмета лизинга по другому считать сумма платежа. "Последняя сумма рассчитывается как разность между суммой из графика и рассчитанными суммами платежей по документу"
9 HAKv1N
 
26.08.26
12:28
может быть можно как то через скд сделать?
10 DrZombi
 
гуру
26.08.26
12:54
(0) Используйте в СКД наборы данных.
Тогда каждая сумма будет рассчитана исходя из своего набора, соединённая с основной таблицей.

Я заметил Общие Итоги, в СКД нет так таковых итогов, не имеет смысл сортировать данные в запросе.

Держите, сайты полоны подсказок, по СКД, может чего найдёте для себя.
11 HAKv1N
 
26.08.26
13:32
(10) спасибо за ссылки, я ознакомлюсь, можете еще подсказать, мне нужно новый набор данных делать? или связать один и тот же?
12 DrZombi
 
гуру
26.08.26
13:42
(11) Почитать, Подумать, и решить.
Поиграть с СКД, поработать.

Других вариантов у вас нет. Вы либо учитесь, либо. нет :)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший