Имя: Пароль:
1C
1С v8
МИНИМУМ в запросе к справочнику не работает?
☑
0 Климов Сергей
 
06.10.26
✎
13:23
Или лыжи не едут? Простейшая (упрощенная) задача: выбрать из справочника ДоговорыКонтрагентов элемент с минимальной Датой. Запрос:

ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
    МИНИМУМ(ДоговорыКонтрагентов.Дата) КАК Дата
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
СГРУППИРОВАТЬ ПО
    ДоговорыКонтрагентов.Ссылка

И в результате получаем ВСЕ договоры из базы. ЧЯДНТ? При этом похожий по смыслу запрос к регистру сведений замечательно отбирает минимальные значения.
1 Fragster
 
гуру
06.10.26
✎
13:25
ну ты ему написал - выбери минимальную дату для каждой ссылки, он тебе это и сделал
2 Kongo2019
 
06.10.26
✎
13:27
(0)
 ВЫБРАТЬ ПЕРВЫЕ 1
    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
    ДоговорыКонтрагентов.Дата КАК Дата
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
    ДоговорыКонтрагентов.ПометкаУдаления = ЛОЖЬ
УПОРЯДОЧИТЬ ПО
    ДоговорыКонтрагентов.Дата ВОЗРАСТАЮЩЕЙ
3 Волшебник
 
06.10.26
✎
13:28
Выбрать первые 1 ссылка
Из спр.Дог
Упорядочить по дата
4 Baiji
 
06.10.26
✎
13:34
ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
    ДоговорыКонтрагентов.Дата В
            (ВЫБРАТЬ
                МИНИМУМ(Справочник.ДоговорыКонтрагентов.Дата) КАК Дата
            ИЗ
                Справочник.ДоговорыКонтрагентов)
5 Fragster
 
гуру
06.10.26
✎
13:34
скорее всего у него задача "для каждого контрагента" и это типовая задача на собеседовании на джуна
6 Fragster
 
гуру
06.10.26
✎
13:35
хотя я даю "три последних продажи"
7 PLUT
 
гуру
06.10.26
✎
13:36
(0) добавь временную табличку или вложенный запрос в запрос
8 Климов Сергей
 
06.10.26
✎
13:36
(5) Совершенно верно. Это упрощённая задача. Реально нужно для каждого из неопределённого количества контрагентов выбрать один договор, дата которого минимально отклоняется от заданной.
9 Garykom
 
гуру
06.10.26
✎
13:40
(0) Все правильно
Выбрал таблицу минимальных дат относительно договоров
Получил
Договор|МинимальнаяДата

Но так как у тебя Дата идет из самих элементов Договор (каждый договор имеет реквизит дата) - в итоге выбирает все договоры

Тебе надо выбрать вероятно самый ранний договор по контрагенту?
Или просто один самый ранний договор?
10 Garykom
 
гуру
06.10.26
✎
13:42
Или лыжи не едут?

Нет, просто летом стоишь в них одетый
11 Климов Сергей
 
06.10.26
✎
13:42
(9) Нужно для каждого из некоего набора контрагентов выбрать один договор, дата которого минимально отклоняется от заданной.
12 Климов Сергей
 
06.10.26
✎
13:42
(10) это я понимаю.
13 Garykom
 
гуру
06.10.26
✎
13:43
Задачка выбора самых ранних договоров в пределах каждого контрагента решается слегка иначе
Там или ВТ или подзапрос нужен
14 Garykom
 
гуру
06.10.26
✎
13:45
1. Сначала для каждого Контрагента выбери самую раннюю дату Договора, только Даты без самих ссылок на Договор
2. Затем уже имея табличку Контрагент - ДатаДоговора, банально отбираем нужные договоры и получаем Контрагент - Договор - Дата
15 PLUT
 
гуру
06.10.26
✎
13:45
(11) так вот жы, не благодари

https://share.google/aimode/gyhg6FIJbhbfio998

дисклеймер: всё не читал, что ИИчко написало
16 Garykom
 
гуру
06.10.26
✎
13:46
(14)+
3. Случай когда по одному Контрагенту, два и более Договора имею одинаковую минимальную дату - уже сам...
17 Garykom
 
гуру
06.10.26
✎
13:47
(15) а ИИ это (16) предусмотрел?
Или что дата может быть пустой и такие не нуна
18 Климов Сергей
 
06.10.26
✎
13:52
(15) Всё равно спасибо! )))
(16) (17) Разгребусь уже.
Я понял, что они не пересекаются. Но ПОЧЕМУ они не пересекаются? (с) Ералаш
Почему запрос к регистру сведений работает "в один приём", а к справочнику - нет? Или стараться не думать об этом?
19 PLUT
 
гуру
06.10.26
✎
13:53
(17) я х.з. (мопед не мой)

https://share.google/aimode/tpWP8YO9QAuw3K147
20 Garykom
 
гуру
06.10.26
✎
13:59
(18)
Почему запрос к регистру сведений работает "в один приём", а к справочнику - нет? Или стараться не думать об этом?

потому что запрос к РС другой, только кажется что похожий
21 Chameleon1980
 
06.10.26
✎
15:36
(18) потому, что у РС есть измерения. Почитай обязательно про особенности запросов к РС - тоже пригодится уже на следующем собесе.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.