Имя: Пароль:
1C
 
Отбор по полям регистра в динамическом списке
0 Александр9988
 
05.08.25
16:38
Всем привет, подскажите в какую сторону думать. Есть ФормаСписка документа - Динамический список. В этот список был добавлен последний статус из регистра. (У документа может быть несколько статусов). Все отлично работает. Но если сделать пользовательский отбор по этим статусам (например хочу найти документы со статусом создано) то в список попадают все документы, которые когда либо были в этом статусе, а не те, у которых он последний. Как будто отбор применяется не к результату динамического списка, а к началу выборки данных. Как починить отбор?
1 Волшебник
 
05.08.25
16:49
покажите запрос
2 Александр9988
 
05.08.25
17:07
ВЫБРАТЬ
    МАКСИМУМ(СтатусыДокументовСрезПоследних.Период) КАК Период,
    СтатусыДокументовСрезПоследних.Регистратор КАК Регистратор
ПОМЕСТИТЬ ДатаПоследнегоСтатуса
ИЗ
    РегистрСведений.СтатусыДокументов.СрезПоследних(, Регистратор ССЫЛКА Документ.Документ1) КАК СтатусыДокументовСрезПоследних

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Документ.Ссылка КАК Ссылка,
    Документ.Дата КАК Дата,
    Документ.Проведен КАК Проведен,
    Документ.АвторДокумента КАК АвторДокумента,
    Документ.Клиент КАК Клиент,
    НаличиеФайлов.ЕстьФайлы КАК ЕстьФайлы,
    вт_СтатусыИЭтапы.СтатусДокумента КАК СтатусДокумента,
    вт_СтатусыИЭтапы.Этап КАК Этап
ИЗ
    Документ.Документ1 КАК Документ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
        ПО (Документ.Ссылка = НаличиеФайлов.ОбъектСФайлами)
        ЛЕВОЕ СОЕДИНЕНИЕ вт_СтатусыИЭтапы КАК вт_СтатусыИЭтапы
        ПО (Документ.Ссылка = вт_СтатусыИЭтапы.Регистратор)
3 Волшебник
 
05.08.25
17:15
Документ1 - плохое имя документа
4 maxab72
 
05.08.25
17:18
(2) Пропробуйте в последнем запросе  вт_СтатусыИЭтапы.СтатусДокумента КАК СтатусДокумента, поменять на  вт_СтатусыИЭтапы.СтатусДокумента КАК р_СтатусДокумента,
И посмотрите как будет работать отбор.
5 San787
 
05.08.25
17:24
(2) Попробуйте определять максимальные даты статуса при отборе и по ним выводить статусы
6 Timon1405
 
05.08.25
17:31
(0) перепишите ВТ на подзапрос и соединитесь с ним
7 craxx
 
05.08.25
17:31
(0) Директивы компоновщика используйте в явном виде (Которые {})
8 mikecool
 
05.08.25
17:52
взять схему из запроса, закинуть в консоль СКД ИР - посмотреть результирующий запрос, подумать, использовать (7)
9 ангел
 
05.08.25
18:10
(0) а dt можно загрузить в облако и дать ссылку ?
10 Волшебник
 
05.08.25
20:56
(9) Не тратьте своё время. Это какой-то тупой бот или задачка на собеседовании.
Автор даже не использовал СрезПоследних по измерениям. У него там детализация по регистратору. Это не срез последних. Ебануться.