Имя: Пароль:
1C
 
Найти последнюю отгрузку
,
0 lamme
 
24.05.17
17:22
Есть запрос. Большой. Который выводит вот такую вот таблицу в итоге
http://skrinshoter.ru/s/240517/v04llpYH

Этот запрос оформлен как вложенный запрос
http://skrinshoter.ru/s/240517/Xy2bOugS

Вот как бы - в итоговой таблице все красиво.

Пытаюсь определить дату последней отгрузки:

ВЫБРАТЬ ПЕРВЫЕ 1
    РеализацияТоваровУслуг.Дата КАК ДатаПоследнейОтгрузки,
    РеализацияТоваровУслуг.ЗаказКлиента КАК ЗаказКлиента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

УПОРЯДОЧИТЬ ПО
    ДатаПоследнейОтгрузки УБЫВ

Вроде работает. Отдельно работает. Отдельно от основного запроса.
Этот запрос оформляю вложенным.
Связываю два запроса - большой и этот ..
http://skrinshoter.ru/s/240517/xO7NBFzA


и в колонке ДатаПоследнейОтгрузки - большого запроса - нет ничего ...

мне грустно ...
1 lamme
 
24.05.17
17:29
чянд ?
2 dezss
 
24.05.17
17:30
А этот заказ в этом большом запросе точно есть?
3 h-sp
 
24.05.17
17:31
(1) так у вас один заказ? какой смысл в этом запросе?
4 dezss
 
24.05.17
17:31
(2) + заказ самой последней отгрузки.
5 lamme
 
24.05.17
17:33
большой запрос выбирает заказы.
надо найти последнюю отгрузку.
так что этот заказ там точно есть

заказ не один. много.
и у этого заказа есть 3 отгрузки разными датами

в запросе установил отбор по одному заказу - чтобы не получалось большой итоговой таблицы
6 Buster007
 
24.05.17
17:36
все не читал, скрины не смотрел, но похоже проблема здесь:
ВЫБРАТЬ ПЕРВЫЕ 1
7 lamme
 
24.05.17
17:37
а почему тут проблема?
Выбирается первый документ - с сортировкой по убыванию
8 lamme
 
24.05.17
17:37
пока не уловил почему
9 lamme
 
24.05.17
17:38
Если убрать  ВЫБРАТЬ ПЕРВЫЕ 1
то в итоговой таблице получается строк - ровно в три раза (по количеству отгрузок) больше строк - чем в самом документе заказ.
10 lamme
 
24.05.17
17:39
но при этом ДатаПоследнейОтгрузки - заполняется ...


так ..
и что тогда в логике не так ?
11 Buster007
 
24.05.17
18:03
(10) похоже проблема в понимании...
убери "первые 1" и
Максимум(РеализацияТоваровУслуг.Дата)
...
сгруппировать по
РеализацияТоваровУслуг.ЗаказКлиента
12 eryomin
 
24.05.17
20:11
(10) а где у тебя логика? построй сначала таблицу последних отгрузок по заказам, а потом уже ее связывай. последние - это с максимальной датой, а среди них - с максимальной ссылкой
13 lamme
 
25.05.17
09:22
(12)

почему то думалось - что подзапрос .. там где выбрать первые 1 - это и есть таблица с отгрузками - отсортированная по дате ...


(11)
да - так заработало.
логика не понятна.
понимание - не понятно (
14 h-sp
 
25.05.17
09:23
(13)  выбрать первые 1  - это одна реализация. Причем всегда одинаковая, одна и та же. Независимо от заказа.
15 lamme
 
25.05.17
09:27
(14)

тогда почему вот такой вот запрос

ВЫБРАТЬ ПЕРВЫЕ 1
    РеализацияТоваровУслуг.Дата КАК ДатаПоследнейОтгрузки,
    РеализацияТоваровУслуг.ЗаказКлиента КАК ЗаказКлиента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.ЗаказКлиента = &Заказ

УПОРЯДОЧИТЬ ПО
    ДатаПоследнейОтгрузки УБЫВ


выдает правильный результат ?
16 lamme
 
25.05.17
09:28
разницы не вижу между отдельным запросом в (15) и этим же запросом - оформленным в подзапрос в большом запросе
17 Ёпрст
 
25.05.17
09:31
(16) выбрать всегда 1 (одну, КАРЛ!) запись, или много, но с максимумом по дате, для вас, одинаково ?
:)
18 dezss
 
25.05.17
09:31
(16) у тебя всегда будет только одна реализация по одному заказу, а в большом запросе он же у тебя не один...
19 lamme
 
25.05.17
09:32
(17)
нет, не одинаково.
20 Ёпрст
 
25.05.17
09:36
(19) ну вот и ответ, в чем разница, между Выбрать Первые 1 с упорядочиванием, от
выбрать Максимум(дата) сгруппировать по параметр
21 eryomin
 
25.05.17
18:39
(15) запрос дает правильный результат, потому что для одного конкретного заказа в результат выводится ровно одна строка (или вообще ни одной), которая тебе нравится. а если ты в параметр &Заказ загрузишь список заказов, то тоже получишь ровно одну строку. с последней датой для всего этого списка.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший