Получение реквизита из непериодического регистра

1. sh1718 06.02.24 14:25 Сейчас в теме
Здравствуйте,
Не могу разобраться, как мне вывести в отчете одну запись из регистра История сроков действия документов, я так понял, что сначала нужно в одной ВТ получить дату макс, присоединить ко второй
Если в консоли пройти только по куску, где я из регистра получаю одну запись все ок, но присобачить к основному не могу

ВЫБРАТЬ
    ИсторияСроковДействияДокументов.Комментарий КАК Комментарий,
    ИсторияСроковДействияДокументов.ДатаИзменения КАК ДатаИзменения,
    ИсторияСроковДействияДокументов.Документ КАК Документ
ПОМЕСТИТЬ Вт_комментарий
ИЗ
    РегистрСведений.ИсторияСроковДействияДокументов КАК ИсторияСроковДействияДокументов
;

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

СГРУППИРОВАТЬ ПО
    ИсторияСроковДействияДокументов.Документ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВнутренниеДокументы.Ссылка КАК Ссылка,
    ВнутренниеДокументы.Ссылка КАК ВнутреннийДокумент,
    ВнутренниеДокументы.Наименование КАК Наименование,
    ВнутренниеДокументы.ВидДокумента КАК ВидДокумента,
    ВнутренниеДокументы.ДатаРегистрации КАК ДатаРегистрации,
    ВнутренниеДокументы.ДатаСоздания КАК ДатаСоздания,
    ВнутренниеДокументы.Заголовок КАК Заголовок,
    ВнутренниеДокументы.Зарегистрировал КАК Зарегистрировал,
    ОбщиеРеквизитыДокументов.КонтрагентыДляСписков КАК Контрагенты,
    ВнутренниеДокументы.Организация КАК Организация,
    ВнутренниеДокументы.Ответственный КАК Ответственный,
    ВнутренниеДокументы.Подготовил КАК Подготовил,
    ВнутренниеДокументы.Подразделение КАК Подразделение,
    ВнутренниеДокументы.РегистрационныйНомер КАК РегистрационныйНомер,
    ВнутренниеДокументы.Утвердил КАК Утвердил,
    ВнутренниеДокументы.Сумма КАК Сумма,
    ВнутренниеДокументы.Валюта КАК Валюта,
    ВнутренниеДокументы.ДатаНачалаДействия КАК ДатаНачалаДействия,
    ВнутренниеДокументы.ДатаОкончанияДействия КАК ДатаОкончанияДействия,
    ВнутренниеДокументы.Бессрочный КАК Бессрочный,
    ВнутренниеДокументы.ПорядокПродления КАК ПорядокПродления,
    ВнутренниеДокументы.НеДействует КАК НеДействует,
    СвязьРасторгнутДокументом.СвязанныйДокумент КАК РасторгнутДокументом,
    НАЧАЛОПЕРИОДА(ВнутренниеДокументы.ДатаРегистрации, МЕСЯЦ) КАК ПериодМесяц,
    ВнутренниеДокументы.Проект КАК Проект,
    Вт_комментарий.Комментарий КАК Комментарий
ПОМЕСТИТЬ ВТ_Основная
ИЗ
    Вт_комментарий КАК Вт_комментарий
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СвязиДокументов КАК СвязьРасторгнутДокументом
            ПО (СвязьРасторгнутДокументом.Документ = ВнутренниеДокументы.Ссылка)
                И (СвязьРасторгнутДокументом.ТипСвязи = ЗНАЧЕНИЕ(Справочник.ТипыСвязей.НеДействуетВСоответствии))
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбщиеРеквизитыДокументов КАК ОбщиеРеквизитыДокументов
            ПО ВнутренниеДокументы.Ссылка = ОбщиеРеквизитыДокументов.Документ
        ПО Вт_комментарий.Документ = ВнутренниеДокументы.Ссылка
ГДЕ
    ВнутренниеДокументы.ВидДокумента.ЯвляетсяДоговором
    И НЕ ВнутренниеДокументы.ПометкаУдаления
{ГДЕ
    (ИСТИНА В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    ИСТИНА
                ИЗ
                    РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
                ГДЕ
                    КатегорииОбъектов.ОбъектДанных = ВнутренниеДокументы.Ссылка
                    И КатегорииОбъектов.КатегорияДанных В (&СписокКатегорий))
            ИЛИ ЛОЖЬ В
                (ВЫБРАТЬ
                    Константы.ИспользоватьКатегорииДанных
                ИЗ
                    Константы КАК Константы)),
    (ВнутренниеДокументы.ДатаРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания),
    (ВнутренниеДокументы.ДатаОкончанияДействия МЕЖДУ &РасторгнутыС И &РасторгнутыПо),
    (ВнутренниеДокументы.Ссылка = &Договор),
    (&ПоказыватьДокументыСрокИстекает = 0
                И КОНЕЦПЕРИОДА(&НаДату, НЕДЕЛЯ) >= ВнутренниеДокументы.ДатаОкончанияДействия
            ИЛИ &ПоказыватьДокументыСрокИстекает = 1
                И КОНЕЦПЕРИОДА(&НаДату, НЕДЕЛЯ) < ВнутренниеДокументы.ДатаОкончанияДействия
                И ВнутренниеДокументы.ДатаОкончанияДействия <= КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НаДату, НЕДЕЛЯ, 1), НЕДЕЛЯ)
            ИЛИ &ПоказыватьДокументыСрокИстекает = 2
                И КОНЕЦПЕРИОДА(&НаДату, МЕСЯЦ) >= ВнутренниеДокументы.ДатаОкончанияДействия
            ИЛИ &ПоказыватьДокументыСрокИстекает = 3
                И КОНЕЦПЕРИОДА(&НаДату, МЕСЯЦ) < ВнутренниеДокументы.ДатаОкончанияДействия
                И ВнутренниеДокументы.ДатаОкончанияДействия <= КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НаДату, МЕСЯЦ, 1), МЕСЯЦ)
            ИЛИ &ПоказыватьДокументыСрокИстекает = 4),
    (&Действующие = 0
                И НЕ ВнутренниеДокументы.НеДействует
                И (ВнутренниеДокументы.Бессрочный
                    ИЛИ ВнутренниеДокументы.ДатаОкончанияДействия >= &НаДату1)
            ИЛИ &Действующие = 1
                И (НЕ ВнутренниеДокументы.Бессрочный
                        И ВнутренниеДокументы.ДатаОкончанияДействия < &НаДату1
                    ИЛИ ВнутренниеДокументы.НеДействует)
            ИЛИ &Действующие = 2)}
;

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

СГРУППИРОВАТЬ ПО
    ИсторияСостоянийДокументовСрезПоследних.Период,
    ВЫБОР
        КОГДА ИсторияСостоянийДокументовСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументов.НеСогласован)
            ТОГДА ИсторияСостоянийДокументовСрезПоследних.Документ
    КОНЕЦ
;

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

СГРУППИРОВАТЬ ПО
    ИсторияСостоянийДокументовСрезПоследних.Период,
    ВЫБОР
        КОГДА ИсторияСостоянийДокументовСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументов.Отклонен)
            ТОГДА ИсторияСостоянийДокументовСрезПоследних.Документ
    КОНЕЦ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ВТ_Основная.Ссылка КАК Ссылка,
    ВТ_Основная.ВнутреннийДокумент КАК ВнутреннийДокумент,
    ВТ_Основная.Наименование КАК Наименование,
    ВТ_Основная.ВидДокумента КАК ВидДокумента,
    ВТ_Основная.ДатаРегистрации КАК ДатаРегистрации,
    ВТ_Основная.ДатаСоздания КАК ДатаСоздания,
    ВТ_Основная.Заголовок КАК Заголовок,
    ВТ_Основная.Зарегистрировал КАК Зарегистрировал,
    ВТ_Основная.Контрагенты КАК Контрагенты,
    ВТ_Основная.Организация КАК Организация,
    ВТ_Основная.Ответственный КАК Ответственный,
    ВТ_Основная.Подготовил КАК Подготовил,
    ВТ_Основная.Подразделение КАК Подразделение,
    ВТ_Основная.РегистрационныйНомер КАК РегистрационныйНомер,
    ВТ_Основная.Утвердил КАК Утвердил,
    ВТ_Основная.Сумма КАК Сумма,
    ВТ_Основная.Валюта КАК Валюта,
    ВТ_Основная.ДатаНачалаДействия КАК ДатаНачалаДействия,
    ВТ_Основная.ДатаОкончанияДействия КАК ДатаОкончанияДействия,
    ВТ_Основная.Бессрочный КАК Бессрочный,
    ВТ_Основная.ПорядокПродления КАК ПорядокПродления,
    ВТ_Основная.НеДействует КАК НеДействует,
    ВТ_Основная.РасторгнутДокументом КАК РасторгнутДокументом,
    ВТ_Основная.ПериодМесяц КАК ПериодМесяц,
    ВТ_Основная.Проект КАК Проект,
    ВТ_Основная.Комментарий КАК Комментарий
ИЗ
    ВТ_Основная КАК ВТ_Основная
ГДЕ
    НЕ ВТ_Основная.Ссылка В
                (ВЫБРАТЬ
                    ВТ_НесогласованныеДоговоры.Документ
                ИЗ
                    ВТ_НесогласованныеДоговоры)
    И НЕ ВТ_Основная.Ссылка В
                (ВЫБРАТЬ
                    ВТ_ОтклоненныеДоговоры.Документ
                ИЗ
                    ВТ_ОтклоненныеДоговоры)
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 06.02.24 15:24 Сейчас в теме
(1) попробуйте так, вот это уберите
ВЫБРАТЬ
ИсторияСроковДействияДокументов.Комментарий КАК Комментарий,
ИсторияСроковДействияДокументов.ДатаИзменения КАК ДатаИзменения,
ИсторияСроковДействияДокументов.Документ КАК Документ
ПОМЕСТИТЬ Вт_комментарий
ИЗ
РегистрСведений.ИсторияСроковДействияДокументов КАК ИсторияСроковДействияДокументов
;

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

СГРУППИРОВАТЬ ПО
ИсторияСроковДействияДокументов.Документ
;

Показать


на его место вставьте вот это

ВЫБРАТЬ
ИсторияСроковДействияДокументов.Комментарий КАК Комментарий,
ИсторияСроковДействияДокументов.ДатаИзменения КАК ДатаИзменения,
ИсторияСроковДействияДокументов.Документ КАК Документ
ПОМЕСТИТЬ Вт_комментарий
ИЗ
РегистрСведений.ИсторияСроковДействияДокументов КАК ИсторияСроковДействияДокументов
левое соединение
РегистрСведений.ИсторияСроковДействияДокументов КАК Рег
по Рег.Документ = ИсторияСроковДействияДокументов/Документ
и Рег.ДатаИзменения  < ИсторияСроковДействияДокументов.ДатаИзменения
Где
Рег.ДатаИзменения
;

Показать
3. sh1718 06.02.24 15:39 Сейчас в теме
(2) ругается на операция не разрешена в предложении где
4. soft_wind 06.02.24 15:50 Сейчас в теме
(3) что-то не докопировалось, вот это целиком вставьте
ВЫБРАТЬ
ИсторияСроковДействияДокументов.Комментарий КАК Комментарий,
ИсторияСроковДействияДокументов.ДатаИзменения КАК ДатаИзменения,
ИсторияСроковДействияДокументов.Документ КАК Документ
ПОМЕСТИТЬ Вт_комментарий
ИЗ
РегистрСведений.ИсторияСроковДействияДокументов КАК ИсторияСроковДействияДокументов
левое соединение
РегистрСведений.ИсторияСроковДействияДокументов КАК Рег
по Рег.Документ = ИсторияСроковДействияДокументов/Документ
и Рег.ДатаИзменения  > ИсторияСроковДействияДокументов.ДатаИзменения
Где
Рег.ДатаИзменения Есть Null
;
;
Показать
5. Vladimir-R 171 06.02.24 15:56 Сейчас в теме
(1)
ВЫБРАТЬ
ИсторияСроковДействияДокументов.Комментарий КАК Комментарий,
ИсторияСроковДействияДокументов.ДатаИзменения КАК ДатаИзменения,
ИсторияСроковДействияДокументов.Документ КАК Документ
ПОМЕСТИТЬ Вт_комментарий
ИЗ
РегистрСведений.ИсторияСроковДействияДокументов КАК ИсторияСроковДействияДокументов
;

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

СГРУППИРОВАТЬ ПО
ИсторияСроковДействияДокументов.Документ
Показать


здесь вы что хотите получить?
полученный максимум дальше в запросе хотите использовать? почему результат выполнения этого запроса не помещаете в ВТ?
8. sh1718 06.02.24 16:02 Сейчас в теме
(5) я уже и результат помещал, по итогу у меня получилось так, что по каким-то документам он мне выводит 1 запись по макс дате, а по другим опять список и таких много, то 1, то куча, в разнобой
6. soft_wind 06.02.24 15:58 Сейчас в теме
(5) автор хочет получить последние записи в разрезе документов (это же из кода понятно)
7. sh1718 06.02.24 16:00 Сейчас в теме
(6) Спасибо огромное, помогло, у вас интересный подход, без всяких лишних ВТ с группировками по дате
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот