Имя: Пароль:
1C
 
Быстрое получение последнего документа по дате в запросе
0 ИС-2
 
naïve
19.02.15
10:49
Функция Максимум() возвращает некорректные данные т.к работает по внутренним идентификатором, а не по дате.

Получение в начале последней даты и соединение потом по ней с основной таблице работает медленно.

Еще есть какие-то способы получить последний документ по какому-то полю (например, контрагент) во временной таблице?
1 Зеленый пень
 
19.02.15
10:51
(0)  "...последней даты и соединение потом по ней с основной таблице работает медленно. " - быстро оно работает.
2 Maxus43
 
19.02.15
10:53
ничо не понял.

Выбрать Первые 1
Ссылка
Из Документ
Где Документ.Контаргент = &Контр
УПОРЯДОЧИТЬ ПО
ССылка Дата УБЫВ
3 DrZombi
 
гуру
19.02.15
11:00
(2) +100500 :)
4 DrZombi
 
гуру
19.02.15
11:00
+(0) Пиши через Временные таблицы
5 ИС-2
 
naïve
19.02.15
11:11
(1) нет. В начале получаешь вложенным запрос крайние даты, а потом их соединяешь с основной таблицей. Это замедляет скорость + усложнение запроса
(2) и как сделать по группировкам, чтобы поместить в временную таблицу? Например,

       ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентами.Сделка,
    МАКСИМУМ(ВзаиморасчетыСКонтрагентами.Регистратор) КАК Регистратор
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентами.Сделка
6 Ёпрст
 
19.02.15
11:13
(5) максимум по дате, пото мсоединение с этой табличкой
7 Зеленый пень
 
19.02.15
13:13
(5) Как правило, бывают доп.условия.
И в таких случаях выгоднее собрать физ.таблицу после наложения всех отборов в ВТ, и дальше все соединения делать уже только с ней.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.