Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Срез последних и предпоследних, но по списку валют
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
ssedox
собственной есть вариант

ВЫБРАТЬ
    КурсыВалютСрезПоследних.Период КАК Период,
    КурсыВалютСрезПоследних.Валюта КАК Валюта,
    КурсыВалютСрезПоследних.Курс КАК Курс
ПОМЕСТИТЬ ПоследнийКурс
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалютСрезПоследних
ГДЕ
    КурсыВалютСрезПоследних.Период < &ДатаОтчета
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 2
    КурсыВалют.Валюта,
    КурсыВалют.Период КАК ПредпоследнийПериод,
    КурсыВалют.Курс КАК ПредпоследнийКурс,
    ПоследнийКурс.Период КАК ПоследнийПериод,
    ПоследнийКурс.Курс КАК ПоследнийКурс
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КурсыВалют.Валюта КАК Валюта,
            МАКСИМУМ(КурсыВалют.Период) КАК Период
        ИЗ
            РегистрСведений.КурсыВалют КАК КурсыВалют
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследнийКурс КАК ВложенныйЗапрос
                ПО КурсыВалют.Период < ВложенныйЗапрос.Период
                    И КурсыВалют.Валюта = ВложенныйЗапрос.Валюта
        
        СГРУППИРОВАТЬ ПО
            КурсыВалют.Валюта) КАК ПредпоследнийПериод
        ПО (ПредпоследнийПериод.Валюта = КурсыВалют.Валюта)
            И (ПредпоследнийПериод.Период = КурсыВалют.Период)
        ЛЕВОЕ СОЕДИНЕНИЕ ПоследнийКурс КАК ПоследнийКурс
        ПО (ПоследнийКурс.Валюта = КурсыВалют.Валюта)

УПОРЯДОЧИТЬ ПО
    ПоследнийПериод УБЫВ

хотелось бы что бы это работало для всего списка валют
ssedox
результат

ВЫБРАТЬ
    КурсыВалютСрезПервых.Период,
    КурсыВалютСрезПервых.Валюта
ПОМЕСТИТЬ ПОСЛ
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсыВалютСрезПервых
;

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

СГРУППИРОВАТЬ ПО
    КурсыВалют.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПОСЛ.Период КАК Период,
    ПОСЛ.Валюта КАК Валюта
ПОМЕСТИТЬ ВСЕКУРСЫ
ИЗ
    ПОСЛ КАК ПОСЛ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ПРЕДП.Период,
    ПРЕДП.Валюта
ИЗ
    ПРЕДП КАК ПРЕДП
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВСЕКУРСЫ.Валюта КАК Валюта,
    ВСЕКУРСЫ.Период КАК Период,
    КурсыВалют.Курс
ПОМЕСТИТЬ ВТ
ИЗ
    ВСЕКУРСЫ КАК ВСЕКУРСЫ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО ВСЕКУРСЫ.Период = КурсыВалют.Период
            И ВСЕКУРСЫ.Валюта = КурсыВалют.Валюта
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПОСЛ.Период КАК Период,
    ЛЕВ.Валюта КАК Валюта,
    ЛЕВ.Курс КАК ПоследнийКурс,
    ПРАВ.Курс КАК ПредпоследнийКурс
ИЗ
    ВТ КАК ЛЕВ
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ПРАВ
        ПО ЛЕВ.Валюта = ПРАВ.Валюта
            И ЛЕВ.Период < ПРАВ.Период
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПОСЛ КАК ПОСЛ
        ПО ЛЕВ.Валюта = ПОСЛ.Валюта

УПОРЯДОЧИТЬ ПО
    Валюта,
    Период
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.