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

соединение таблиц

Автор maxxi, 09 дек 2025, 12:16

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

maxxi

ВЫБРАТЬ
    ВзаиморасчетыОстаткиИОбороты.Клиент КАК Клиент,
    ВзаиморасчетыОстаткиИОбороты.Валюта КАК Валюта,
    СУММА(ВзаиморасчетыОстаткиИОбороты.СуммаКонечныйОстаток) КАК Остаток,
    КОНЕЦПЕРИОДА(ВзаиморасчетыОстаткиИОбороты.ПериодМесяц, МЕСЯЦ) КАК ПериодМесяц
ПОМЕСТИТЬ вт_MEB
ИЗ
    РегистрНакопления.Взаиморасчеты.ОстаткиИОбороты(&Нач, КОНЕЦПЕРИОДА(&Кон, ДЕНЬ), Авто, , Клиент В ИЕРАРХИИ (&Клиент)) КАК ВзаиморасчетыОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    КОНЕЦПЕРИОДА(ВзаиморасчетыОстаткиИОбороты.ПериодМесяц, МЕСЯЦ),
    ВзаиморасчетыОстаткиИОбороты.Валюта,
    ВзаиморасчетыОстаткиИОбороты.Клиент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КОНЕЦПЕРИОДА(ВалютаКурс.Период, МЕСЯЦ) КАК Период,
    ВалютаКурс.Филиал КАК Филиал,
    ВалютаКурс.Валюта КАК Валюта,
    ВалютаКурс.Курс КАК Курс
ПОМЕСТИТЬ вт_ВалютаКурс
ИЗ
    РегистрСведений.ВалютаКурс КАК ВалютаКурс
ГДЕ
    ВалютаКурс.Курс > 1
    И ВалютаКурс.Период МЕЖДУ &нач И КОНЕЦПЕРИОДА(&кон, ДЕНЬ)
    И ВалютаКурс.Период В
            (ВЫБРАТЬ
                МАКСИМУМ(ВК.Период)
            ИЗ
                РегистрСведений.ВалютаКурс КАК ВК
            ГДЕ
                ВК.Валюта = ВалютаКурси.Валюта
                И ВК.Филиал = ВалютаКурс.Филиал
                И ВК.Период МЕЖДУ &нач И КОНЕЦПЕРИОДА(&кон, ДЕНЬ))
    И ВалютаКурс.Филиал.Код = "000000001"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_ВалютаКурс.Период КАК Период,
    вт_ВалютаКурс.Филиал КАК Филиал,
    вт_ВалютаКурс.Курс КАК Курс,
    вт_MEB.Клиент КАК Клиент,
    вт_MEB.Валюта КАК Валюта,
    вт_MEB.Остаток КАК Остаток,
    вт_MEB.ПериодМесяц КАК ПериодМесяц,
    ВЫБОР
        КОГДА вт_MEB.Валюта.Код = "Вал000001"
            ТОГДА вт_MEB.Остаток / вт_ВалютаКурс.Курс
        ИНАЧЕ вт_MEB.Остаток
    КОНЕЦ КАК ДолгВДолларах
ПОМЕСТИТЬ вт_Степ
ИЗ
    вт_MEB КАК вт_MEB
        ЛЕВОЕ СОЕДИНЕНИЕ вт_ВалютаКурс КАК вт_ВалютаКурс
        ПО вт_MEB.ПериодМесяц = вт_ВалютаКурс.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_Степ.Клиент КАК КлиентМЕБ,
    вт_Степ.ПериодМесяц КАК ПериодМесяц,
    вт_Степ.ДолгВДолларах*(-1) КАК МЕБДолг
ИЗ
    вт_Степ КАК вт_Степ

Ребята помогите пожалуйста, если скажем внутри выбранного периода курс менялся, показывает остатки, а если курс не изменился в этот период,тогда не показывает долг кроме долларов.
   

Максим75

maxxi, какой то сумбур в коде.
что надо получить? сальдо взаиморасчетов? так просто возьмите сумму долга на нужную дату и на эту же дату получите курс валюты. и потом умножьте/делите одно на другое.
зачем выбирать курс за период?
есть по каждому контрагенту сумма долга на конец периода, вот ее и пересчитайте.

Теги:

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

Рейтинг@Mail.ru

Поиск