Имя: Пароль:
1C
 
Срез документов на дату
0 Coldboy
 
24.06.15
11:22
Здравствуйте. Есть документы со складами, мне нужно выбрать самые последние документы на текущую дату в разрезе этих складов.
Например
Дата1 Склад1 Док№1
Дата2 Склад1 Док№2
Дата3 склад1 Док№3
Дата1 Склад2 Док№4
Дата2 Склад2 Док№5

Нужно, чтобы выбрались, документы Док№5 по склад2 и Док №3 по Склад1.
Как такое в запросе отразить, чтобы потом в скд вывести ТЗ этих документов. По регистрам они движения не делают сразу говорю.
1 Dmitrii
 
гуру
24.06.15
11:25
группировать по складу с МАКСИМУМ(Док.Дата).
2 Coldboy
 
24.06.15
11:34
(1) так вы имели виду?
ВЫБРАТЬ
    ПересчетТоваровТовары.Номенклатура,
    ПересчетТоваровТовары.Ссылка.Склад,
    МАКСИМУМ(ПересчетТоваровТовары.Ссылка.Дата) КАК Дата,
    ПересчетТоваровТовары.Ссылка.Магазин,
    ПересчетТоваровТовары.КоличествоУпаковок,
    ПересчетТоваровТовары.КоличествоУпаковокФакт
ИЗ
    Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
ГДЕ
    ПересчетТоваровТовары.Ссылка.Проведен = ИСТИНА

СГРУППИРОВАТЬ ПО
    ПересчетТоваровТовары.Ссылка.Склад,
    ПересчетТоваровТовары.Номенклатура,
    ПересчетТоваровТовары.Ссылка.Магазин,
    ПересчетТоваровТовары.КоличествоУпаковок,
    ПересчетТоваровТовары.КоличествоУпаковокФакт
3 D_E_S_131
 
24.06.15
11:46
А что выводить если есть несколько документов с на дату с временем 23:59:59?
4 Dmitrii
 
гуру
24.06.15
11:54
(2) Про другие поля типа Количество... в (0) ничего сказано не было.
Но сути это не меняет. Просто усложняет задачу. Нужно либо во временной таблице, либо во вложенном запросе сгруппировать данные по складам и с МАКСИМУМ по дате, а потом сделать левое соединение с основной таблицей документа. Единственный нюанс - если по одному складу было два документа с одинаковой датой - может имеет смысл группировать МАКСИМУМ по моменту времени, а не по дате.
5 Coldboy
 
24.06.15
12:07
(3) таких документов не будет.
6 Coldboy
 
24.06.15
12:08
(4) а количество просто как сумму же брать и все
7 Coldboy
 
24.06.15
12:09
ВЫБРАТЬ
    ПересчетТоваровТовары.Номенклатура,
    ПересчетТоваровТовары.Ссылка.Склад,
    МАКСИМУМ(ПересчетТоваровТовары.Ссылка.Дата) КАК Дата,
    ПересчетТоваровТовары.Ссылка.Магазин,
    СУММА(ПересчетТоваровТовары.КоличествоУпаковок) КАК КоличествоУпаковок,
    СУММА(ПересчетТоваровТовары.КоличествоУпаковокФакт) КАК КоличествоУпаковокФакт
ИЗ
    Документ.ПересчетТоваров.Товары КАК ПересчетТоваровТовары
ГДЕ
    ПересчетТоваровТовары.Ссылка.Проведен = ИСТИНА

СГРУППИРОВАТЬ ПО
    ПересчетТоваровТовары.Ссылка.Склад,
    ПересчетТоваровТовары.Номенклатура,
    ПересчетТоваровТовары.Ссылка.Магазин
8 Coldboy
 
24.06.15
12:09
(3) или будет проблема с данными?
9 Coldboy
 
24.06.15
12:10
точнее (4) был вопрос
10 D_E_S_131
 
24.06.15
12:14
Суть в том, что ты выбираешь свои документы ПересчетТоваров , получаешь из этой выборки с помощью группировки по Складу максимальные даты (и, если будут 23:59:59, максимальные Ссылки). Помещаешь это все во временную таблицу. Потом опять делаешь выборку документов, соединяя внутренним соединением с твоей ВТ по полям Склад, Дата (или Склад, Дата, Ссылка).