Имя: Пароль:
1C
 
max Дата отгрузки
0 ne6o
 
11.12.07
13:38
ВЫБРАТЬ
   ПродажиОбороты.ДокументПродажи.Ссылка,
   ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка КАК ДокументПродажиКонтрагентСсылка
ИЗ
   РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
ГДЕ
   ПродажиОбороты.ДокументПродажи.Дата > &Дата
ИТОГИ ПО
   ДокументПродажиКонтрагентСсылка

Так я достаю всех контрагентов и все документы отгрузки связанные с этим контрагентом.
Как вытащить только последнюю отгрузку?
Т.е. в итоге получить таблицу типа
клиент - документ последней отгрузки
1 Три буквы
 
11.12.07
13:40
ВЫБРАТЬ ПЕРВЫЕ 1
....

Упорядочить ПО Дата Убыв
2 Три буквы
 
11.12.07
13:42
а, тебе по всем..
тогда так:
ВЫБРАТЬ
Максимум(ПродажиОбороты.ДокументПродажи.Дата),
ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка  КАК Клиент
СГРУППИРОВАТЬ ПО Клиент
3 alexsy
 
11.12.07
14:47
а если 5 документов с временем 23:59:59
какой из них последний?
4 Три буквы
 
11.12.07
14:52
(3)тогда надо юзать позицию.
5 hhhh
 
11.12.07
15:18
(3) это как ралли: пять тяжелогруженых камазов ровно в 23.59.59 одновременно сорвались с места, снеся ворота склада.
6 ne6o
 
11.12.07
15:30
ВЫБРАТЬ
Максимум(ПродажиОбороты.ДокументПродажи.Дата),
ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка  КАК Клиент
ИЗ
   РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка
7 ne6o
 
11.12.07
15:32
ВЫБРАТЬ
Максимум(ПродажиОбороты.ДокументПродажи.Дата),
ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка  КАК Клиент
ИЗ
   РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка

Возвращает Дату и клиента, а как сделать чтобы возвращалась ссылка на эту реализацию у которой Максимум(ПродажиОбороты.ДокументПродажи.Дата)
8 Три буквы
 
11.12.07
15:56
(7)тогда как-то так:
ВЫБРАТЬ МАКСИМУМ(ПродажиОбороты.ДокументПродажи),
ВложенныйЗапрос.Контрагент КАК Клиент
ИЗ
(ВЫБРАТЬ МАКСИМУМ(ПродажиОбороты.ДокументПродажи.Дата),
ПродажиОбороты.ДокументПродажи.Контрагент
ИЗ
РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.ДокументПродажи.Контрагент.Ссылка ) КАК ВложенныйЗапрос
ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
ПО ПродажиОбороты.ДокументПродажи.Дата = ВложенныйЗапрос.Дата И
ПродажиОбороты.ДокументПродажи.Контрагент = ВложенныйЗапрос.Контрагент
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Контрагент
9 ne6o
 
11.12.07
16:18
Так виснет

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

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Контрагент
10 Три буквы
 
11.12.07
16:36
(9)ну поищи ошибку. должно работать.
смысл такой, что во внутреннем запросе ты получаешь контрагентов и соответствующую каждому максимальную дату элементов, а далее эту таблицу соединяешь с исходной по контрагенту и дате и из документов выбираешь максимальную ссылку за нужную дату - это и будет нужный документ, группируешь опять по контрагенту. соединенние внутреннее - чтобы отсечь лишние даты
11 ne6o
 
11.12.07
17:05
Что означает сртрока
МАКСИМУМ(ПродажиОбороты.ДокументПродажи)
и в чем отличие от
МАКСИМУМ(ПродажиОбороты.ДокументПродажи.Дата)
12 Три буквы
 
11.12.07
17:09
(11)первое максимум по ссылке, второе - по дате. это разные вещи
13 ne6o
 
11.12.07
17:13
Максимум по дате понятно
А максимум по ссылке это как? тоже самое только возвращает ссылку а не дату?
14 Три буквы
 
11.12.07
17:17
(13) да, возвращает максимальную ссылку,(в пределах одной даты, в нашем случае),
а просто максимальная дата и максимальная ссылка разные вещи (то есть, документ с максимальной ссылкой не обязаательно будет иметь максимальную дату).
но если мы сначала определим макс дату, а потом среди всех документов с такой датой мы найдем док с макс. ссылкой, то это и будет последний(по хронологии) документ.
15 Три буквы
 
11.12.07
17:18
то, что мы ищем -  дата+ссылка = позиция документа
16 ne6o
 
12.12.07
11:18
Получилось, получаю таблицу с клиентом и последней его реализацией. Как теперь достать из этой реализации номенклатуру?


ВЫБРАТЬ
   ВложенныйЗапрос.Клиент,
   ПродажиОбороты.ДокументПродажи.Ссылка
ИЗ
   (ВЫБРАТЬ
       МАКСИМУМ(ПродажиОборотыВЗ.ДокументПродажи.Дата) КАК ДатаМах,
       ПродажиОборотыВЗ.ДокументПродажи.Контрагент.Ссылка КАК Клиент
   ИЗ
       РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОборотыВЗ
   
   СГРУППИРОВАТЬ ПО
       ПродажиОборотыВЗ.ДокументПродажи.Контрагент.Ссылка) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты
       ПО ПродажиОбороты.ДокументПродажи.Дата = ВложенныйЗапрос.ДатаМах
           И ПродажиОбороты.ДокументПродажи.Контрагент = ВложенныйЗапрос.Клиент

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.Клиент,
   ПродажиОбороты.ДокументПродажи.Ссылка
Программист всегда исправляет последнюю ошибку.