Имя: Пароль:
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 - Дата

Никаких документов в результате быть не должно. Если Вы ищете документы, сортируете их по номерам, то Вы ошибаетесь.
Не морочьте людям голову.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс