Имя: Пароль:
1C
1С v8
Отбор последних документов по условию в запросе
0 Kookish
 
17.02.15
16:46
Добрый день.
Вопрос следующий: надо отобрать последние (по дате) документы, в табличной части которых имеется номенклатура из списка. Делаю что-то вроде
ВЫБРАТЬ
    Номы.Номенклатура, Отчеты.Дата, Отчеты.Цена
ИЗ
    Номы
ЛЕВОЕ СОЕДИНЕНИЕ
    (ВЫБРАТЬ
        МАКСИМУМ(Ссылка.Дата) КАК Дата, Номенклатура, Цена
    ИЗ
        Документ.ОтчетКомиссионераОПродажах.Товары
    ГДЕ
        Ссылка.Дата < &Дата
    СГРУППИРОВАТЬ ПО
        Номенклатура, Цена
    ) КАК Отчеты
ПО
    Номы.Номенклатура = Отчеты.Номенклатура И Номы.Цена = Отчеты.Цена

Получаю даты документов. Но хотелось бы получить именно ссылки, чтобы ТОЧНО однозначно найти нужные документы. Есть ли такая возможность, и как это сделать? Намекните пожалуйста.
1 mikecool
 
17.02.15
16:49
разрешаю выбрать помимо даты еще и ссылку
2 Лефмихалыч
 
17.02.15
16:49
ВЫБРАТЬ ПЕРВЫЕ 10 РАЗЛИЧНЫЕ
Ссылка
ИЗ Документ.ОтчетКомиссионераОПродажах.Товары как Т
ГДЕ Т.Номенклатура в (&ТвойСписок)
3 Лефмихалыч
 
17.02.15
16:50
упорядочить по Т.Ссылка.Дата ВОЗР
4 Крошка Ру
 
17.02.15
16:51
(2) А почему 10?
5 Лефмихалыч
 
17.02.15
16:52
(4) а почему бы и нет?
6 Kookish
 
17.02.15
16:54
(1) Тогда придется и группировать по ссылке.
(2) Гипотетически может существовать не один документ с точно таким же временем, но не имеющий в своей табличной части этой номенклатуры. Или не от того контрагента. Как однозначно его отсеять? Ага, отбирать не из всех документов, а только из тех, где соблюдены нужные условия. Все, разобрался вроде. Всем спасибо.
7 Лефмихалыч
 
17.02.15
16:56
(6) надо сделать над собой усилие и наложить условия в запросе
8 ам794123
 
17.02.15
17:03
попробуй Критерии отбора
9 Kookish
 
17.02.15
17:03
(8) Это как?
10 Лефмихалыч
 
17.02.15
17:04
(8) подорожник еще посоветуй
11 Крошка Ру
 
17.02.15
17:04
(6) Во временную таблицу ссылку и дату(и номенклатуру). Во-вторую из первой - дату и номенклатуру(группировка по номенклатуре, дата- максимум). Потом - соединение первой и второй по номенклатуре и дате.
Если за одну дату есть несколько ссылок, тогда будет несколько строк.
12 Kookish
 
17.02.15
17:04
Сделал вот так:

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

Получилось, но все равно остается легкое ощущение несовершенства...
13 MSOliver
 
17.02.15
17:32
надо понимать что есть срез последних
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.