Имя: Пароль:
1C
1С v8
Как лучше сформировать запрос?
0 123GO
 
18.12.19
10:21
Добрый день. Что-то уперся в стену( Нужно получить срез последних по регистру сведений с несколькими измерениями. Входные параметры разные: для заполненных Реквизит1 и Реквизит2 удобно левым соединением получить ресурс сравнением по Измерение1 и Измерение2. Но вот в некоторых строках Реквизит2 не заполнен, и задача получить 1 строку с последним по периоду ресурсом, а не несколько по всем Измерениям2..
1 sqr4
 
18.12.19
10:25
Ну так и задай отбор в параметры виртуальной таблицы
2 sqr4
 
18.12.19
10:26
На заполненность того что тебе нужно
3 leonidk
 
18.12.19
10:28
незаполненность это неопределено или пустаяссылка, по этим значениям тоже можно отбирать же.
4 123GO
 
18.12.19
10:29
Объясняю я так себе)
Допустим в РС:
01.01.2019 Товар1 Партия1 100 руб.
01.01.2019 Товар1 Партия2 150 руб.
01.11.2019 Товар1 Партия3 120 руб.

Хочу, чтоб левым соединением с ТЗ:
0 Товар1 Партия1
1 Товар1 ""

На текущую дату результат был
0 Товар1 Партия1 100 руб
1 Товар1 ""      120 руб

А не:
0 Товар1 Партия1 100 руб
1 Товар1 Партия2 150 руб
1 Товар1 Партия3 120 руб
5 123GO
 
18.12.19
10:30
(3) Да, но мне нужно не по ним) а именно если не заполнено (реквизит строковый) - то по всем Измерениям2
6 123GO
 
18.12.19
10:31
(4) Тьфу. А не:
0 Товар1 Партия1 100 руб
1 Товар1 ""      150 руб
1 Товар1 ""      120 руб
7 123GO
 
18.12.19
10:32
Хочется как-то одним запросом получить, а не городить несколько виртуальных таблиц с выбором максимальных периодов..
8 123GO
 
18.12.19
11:00
Эх, пришлось городить(
9 D_E_S_131
 
18.12.19
11:04
Тебе придется сделать выборку в ВТ для получения максимума по Периоду (ты же хочешь "срез последних") и уже потом будешь соединять с учетом этого поля. Просто по ТЗ с полями "Товар" и "Партия" не сделать.
10 pechkin
 
18.12.19
11:11
для начала тебе нужно последнюю партию найти и по ней уже соединять
11 pechkin
 
18.12.19
11:14
ВЫБРАТЬ
    *
ИЗ
    Документ.МойДокумент.Товары КАК Док
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрыСведений.Партии КАК Рег
    ПО Док.Товар = Рег.Товар
        И Рег.Партия В
        (ВЫБРАТЬ ПЕРВЫЕ 1
            Рег.Партия
         ИЗ
             РегистрыСведений.Партии КАК Рег
         ГДЕ
             Рег.Товар = Док.Товар
         УПОРЯДОЧИТЬ ПО
                 Рег.Период УБЫВ)
12 leonidk
 
18.12.19
11:30
(11) некорректный запрос
13 pechkin
 
18.12.19
11:30
(12) в чем некорректность?