Имя: Пароль:
1C
1С v8
Как найти дату последней реализации по контрагенту (партнеру)
Ø (Волшебник 16.02.2024 12:21)
0 Cmertim
 
16.02.24
09:29
Нужно запросом найти дату последнего документа реализации по контрагенту (партнеру).

Пример:
Партнер1 - Дата
Партнер2 - Дата
...

Подскажите, пожалуйста, как это можно реализовать? Может есть регистр, который это хранит и тп?

1С:УТ 11 (11.5.13.104)
1 Волшебник
 
16.02.24
09:31
Запрос к документам. Должно сработать
2 Климов Сергей
 
16.02.24
09:32
Регистр ПродажиИСебестоимостьОбороты, периодичность - регистратор. Выбрать Контрагент и максимум(Регистратор.Дата).
3 vicof
 
16.02.24
09:32
(0) "Нужно запросом найти дату"
Разрешаю.
4 Буковка
 
16.02.24
09:37
(0) нужна эмуляция среза последних по документу

Запрос.Текст = "
|ВЫБРАТЬ
|      ПоследниеДокументыКонтрагентов.Ссылка,
|      ПоследниеДокументыКонтрагентов.Дата,
|      ПоследниеДокументыКонтрагентов.Контрагент
|ИЗ Документ.РеализацияТоваровУслуг КАК ПоследниеДокументыКонтрагентов
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
|      (ВЫБРАТЬ
|            Доки.Контрагент КАК Контрагент,
|            МАКСИМУМ(Доки.Дата) КАК ДатаПоследнегоДокумента
|      ИЗ Документ.РеализацияТоваровУслуг КАК Доки
|СГРУППИРОВАТЬ ПО Доки.Контрагент)
|КАК ДатыПоследнихДокументовКонтрагентов
|ПО ПоследниеДокументыКонтрагентов.Контрагент =
|ДатыПоследнихДокументовКонтрагентов.Контрагент      
|И ПоследниеДокументыКонтрагентов.Дата =
|ДатыПоследнихДокументовКонтрагентов.ДатаПоследнегоДокумента";
РезультатЗапроса = Запрос.Выполнить();
5 Ненавижу 1С
 
гуру
16.02.24
09:44
(2) и отбор по виду регистратора, проще через документ тогда
6 Ненавижу 1С
 
гуру
16.02.24
09:45
(4) слишком сложно, в задаче не требовалось найти сам документ реализации
7 Буковка
 
16.02.24
09:48
(6) группировкой?
8 Волшебник
 
16.02.24
10:29
ВЫБРАТЬ
	Док.Контрагент,
	МАКСИМУМ(Док.Дата) КАК Дата
ИЗ
	Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
	Док.Проведен
	И Док.Дата МЕЖДУ &Нач И &Кон

СГРУППИРОВАТЬ ПО
	Док.Контрагент
9 Волшебник
 
16.02.24
10:30
(4) фу
10 Cmertim
 
16.02.24
11:05
(4) и (8), а если документы с одинаковой датой, то как отобрать по наибольшему номеру документа?
11 Cmertim
 
16.02.24
11:06
(10) допустим получаем 2 документа с одинаковой датой и временем (у меня так и получилось), то как среди них отобрать наибольший по номеру. У меня именно в запросе не получается это сделать
12 vicof
 
16.02.24
11:34
(11) Добавить поле номер, запихать во временную таблицу и выбрать максимальный номер с группировкой по контрагенту и дате.
13 Cmertim
 
16.02.24
11:42
(12) пробовал, не работает, все равно эти же 2 док-та вылетают
14 Волшебник
 
16.02.24
11:43
(10) В задаче сказано "дата", значит из двух одинаковых дат можно выбрать любую.
Номер смотреть не надо
15 Cmertim
 
16.02.24
19:12
(14) Да, изначально так и было, но вылетают документы с одинаковой датой и временем. И чтобы понять, какой док-т был последним (а должно выходить: партнер - дата), нужно получается как то сделать отбор по номеру (который наибольший). Верно?
16 Волшебник
 
16.02.24
11:52
(15) В задаче сказано "дата последнего документа", там не сказано "последний документ". Перестаньте бредить
17 Cmertim
 
16.02.24
11:52
(15) вот у меня и следственный вопрос, как это реализовать в запросе)?
18 Cmertim
 
16.02.24
11:54
(16) Эммм... "найти дату последнего документа реализации". Документа, не документов. Выйти должен 1 документ
19 Cmertim
 
16.02.24
11:55
(16) Может конечно я что то не понимаю, объясните, пожалуйста
20 d4rkmesa
 
гуру
16.02.24
12:08
(13) Что-то вы не то поняли, если номера документов разные, должно было получиться.
21 Волшебник
 
16.02.24
19:12
(18) Вы ошибаетесь. Сказано найти дату, а не документ. В результате должна быть дата. Почитайте своё сообщение:

Партнер1 - Дата
Партнер2 - Дата

Никаких документов в результате быть не должно. Если Вы ищете документы, сортируете их по номерам, то Вы ошибаетесь.
Не морочьте людям голову.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан