|
Получение последнего документа по контрагенту | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
22.11.17
✎
13:46
|
Всем доброго дня. Мне необходимо получить в отчете долг контрагента и последний акт сверки, который был выполнен по данному контрагенту. Не подскажете, как получить этот самый, последний, документ?
Пробовал так, но есественно - фигня. Никакого отбора не идет. Нужно чтобы была сама ссылка на документ последняя и не помеченная на удаление. ВЫБРАТЬ РасчетыСКонтрагентамиОстатки.Контрагент, РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента, АктСверкиВзаиморасчетов.Ссылка КАК Ссылка, РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, РасчетыСКонтрагентамиОстатки.СуммаУпрОстаток, АктСверкиВзаиморасчетов.СверкаСогласована, МАКСИМУМ(АктСверкиВзаиморасчетов.Дата) КАК Дата ИЗ РегистрНакопления.РасчетыСКонтрагентами.Остатки КАК РасчетыСКонтрагентамиОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов ПО РасчетыСКонтрагентамиОстатки.Контрагент = АктСверкиВзаиморасчетов.Контрагент И РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента = АктСверкиВзаиморасчетов.ДоговорКонтрагента ГДЕ АктСверкиВзаиморасчетов.ПометкаУдаления = ЛОЖЬ СГРУППИРОВАТЬ ПО РасчетыСКонтрагентамиОстатки.Контрагент, РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента, РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, РасчетыСКонтрагентамиОстатки.СуммаУпрОстаток, АктСверкиВзаиморасчетов.СверкаСогласована, АктСверкиВзаиморасчетов.Ссылка |
|||
1
Зуекщмшср
22.11.17
✎
13:52
|
Поиск по темам этого форума тебе поможет. Было уже n-цать раз.
|
|||
2
MAPATNK2
naïve
22.11.17
✎
13:57
|
(1) В итоге ничего стоящего
|
|||
3
Ёпрст
22.11.17
✎
14:00
|
максимум(АктСверкиВзаиморасчетов.Ссылка)
|
|||
4
Ёпрст
22.11.17
✎
14:01
|
ну или максимум по дате дока искать
|
|||
5
MAPATNK2
naïve
22.11.17
✎
14:11
|
(4) Не то
|
|||
6
Numerus Mikhail
22.11.17
✎
14:14
|
(5) почему?
|
|||
7
MAPATNK2
naïve
22.11.17
✎
14:15
|
(6) По ссылке выводит не максимум
|
|||
8
MAPATNK2
naïve
22.11.17
✎
14:15
|
(6) По дате ничего не выводит
|
|||
9
Numerus Mikhail
22.11.17
✎
14:17
|
Отдельным запросом получай документ, а потом уже получай остатки и присоединяй документ
|
|||
10
wondkind
22.11.17
✎
14:19
|
(9) поддерживаю. Так же бы сделал
|
|||
11
MAPATNK2
naïve
22.11.17
✎
14:20
|
(9) ВЫБРАТЬ
РасчетыСКонтрагентамиОстатки.Контрагент, РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента, РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, РасчетыСКонтрагентамиОстатки.СуммаУпрОстаток, ВложенныйЗапрос.Ссылка, ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Ссылка) ИЗ РегистрНакопления.РасчетыСКонтрагентами.Остатки КАК РасчетыСКонтрагентамиОстатки ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ АктСверкиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагента, АктСверкиВзаиморасчетов.Контрагент КАК Контрагент, МАКСИМУМ(АктСверкиВзаиморасчетов.Ссылка) КАК Ссылка ИЗ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов СГРУППИРОВАТЬ ПО АктСверкиВзаиморасчетов.ДоговорКонтрагента, АктСверкиВзаиморасчетов.Контрагент) КАК ВложенныйЗапрос ПО РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента = ВложенныйЗапрос.ДоговорКонтрагента И РасчетыСКонтрагентамиОстатки.Контрагент = ВложенныйЗапрос.Контрагент |
|||
12
wondkind
22.11.17
✎
14:23
|
(11) какой вывод из этого сообщения мы должны сделать?
|
|||
13
MAPATNK2
naïve
22.11.17
✎
14:36
|
(12) не выходит до запросом.
|
|||
14
DexterMorgan
22.11.17
✎
14:37
|
||||
15
DexterMorgan
22.11.17
✎
14:38
|
(7), (8) Ну логично, получи сначала последние даты документов сверок, а потом получи последнюю ссылку
|
|||
16
MAPATNK2
naïve
22.11.17
✎
14:42
|
(15) не особо понятно как это работает
|
|||
17
MAPATNK2
naïve
22.11.17
✎
14:45
|
(15) Я понимаю как это сделать со справочником и документом, но с регистром и документом так не выходит
|
|||
18
wondkind
22.11.17
✎
14:45
|
(16)
ВЫБРАТЬ АктСверкиВзаиморасчетов.Ссылка КАК Ссылка, АктСверкиВзаиморасчетов.Контрагент КАК Контрагент, АктСверкиВзаиморасчетов.ДоговорКонтрагента КАК ДоговорКонтрагента ПОМЕСТИТЬ ВТ_АктыСверки ИЗ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ АктСверкиВзаиморасчетов.Контрагент КАК Контрагент, АктСверкиВзаиморасчетов.ДоговорКонтрагента, МАКСИМУМ(АктСверкиВзаиморасчетов.Дата) КАК Дата ИЗ Документ.АктСверкиВзаиморасчетов КАК АктСверкиВзаиморасчетов ГДЕ НЕ АктСверкиВзаиморасчетов.ПометкаУдаления СГРУППИРОВАТЬ ПО АктСверкиВзаиморасчетов.Контрагент, АктСверкиВзаиморасчетов.ДоговорКонтрагента) КАК ВложенныйЗапрос ПО АктСверкиВзаиморасчетов.ДоговорКонтрагента = ВложенныйЗапрос.ДоговорКонтрагента И АктСверкиВзаиморасчетов.Контрагент = ВложенныйЗапрос.Контрагент И АктСверкиВзаиморасчетов.Дата = ВложенныйЗапрос.Дата ; ///////////// ВЫБРАТЬ РасчетыСКонтрагентамиОстатки.Контрагент КАК Контрагент, РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента, ЕСТЬNULL(ВТ_АктыСверки.Ссылка, ЗНАЧЕНИЕ(Документ.АктСверкиВзаиморасчетов.ПустаяСсылка)) КАК АктСверкиСсылка, ЕСТЬNULL(ВТ_АктыСверки.СверкаСогласована, Ложь) КАК СверкаСогласована, РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток, РасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпрОстаток ИЗ РегистрНакопления.РасчетыСКонтрагентами.Остатки КАК РасчетыСКонтрагентамиОстатки ЛЕВОЕ СОЕДИНЕНИЕ ВТ_АктыСверки КАК ВТ_АктыСверки ПО РасчетыСКонтрагентамиОстатки.Контрагент = ВТ_АктыСверки.Контрагент И РасчетыСКонтрагентамиОстатки.ДоговорКонтрагента = ВТ_АктыСверки.ДоговорКонтрагента |
|||
19
wondkind
22.11.17
✎
14:50
|
(17) хоть отпишись как попробуешь
|
|||
20
wondkind
22.11.17
✎
14:55
|
(19) и забыл ИТОГИ. Сам добавишь и должно работать лучше. Уверен на 98,6%. Хоть что-то тебе останется сделать)
|
|||
21
MAPATNK2
naïve
22.11.17
✎
15:00
|
(20) Забили АктСверкиВзаиморасчетов.СверкаСогласована КАК СверкаСогласована, после этого пошло, итоги добавлю. Только все равно не могу разобраться в этом. Берем акт сверки взаиморасчетов без пометки удаления и группируем по макисмальной дате. Потом снова берем акт сверки связываем с полученным подзапросом в разрезе договора, контрагента и даты.... и как я понимаю, получаем последний документ(по дате) по данному контрагенту.Дальше запихиваем это счастье во временную таблицу, потом связываем эту таблицу с регистром и получаем необходимые данные. СЛОЖНА, не могу проверить на правильность. Но спасибо большое.
|
|||
22
wondkind
22.11.17
✎
15:08
|
(21) а, да, забыл в первом запросе добавить данный реквизит документа.
Также будет проблема, если акты сверок по одному контрагенту/договору будут с одинаковой датой и временем. Подумайте над решением/обработкой таких ситуаций. Что именно сложно? Почему проверить не можете? Консоль запросов в этом вам поможет. Вот по шагам: 1. Вначале находим максимальную дату акта сверки у контрагента; 2. Далее находим сам документ с максимальной датой; 3. Помещаем это во временную таблицу для удобства работы; 4. Уже смотрим остатки и присоединяем к ним последний документ. |
|||
23
MAPATNK2
naïve
22.11.17
✎
15:13
|
(22) а почему в пункте 1 нельзя сразу получить ссылку?
|
|||
24
MAPATNK2
naïve
22.11.17
✎
15:15
|
(23) Или это по тому , что группировка в 1 пункте не удастся если добавить ссылку?
|
|||
25
wondkind
22.11.17
✎
15:21
|
(24) группировка не удастся. А искать по МАКСИМУМ(Ссылка) некорректно вообще. Вот пример: как будет определяться максимум ссылки? А если дату у документа изменили? Ссылка то останется прежней.
Правильный вариант узнать последний документ - искать по дате. Единственная, как я думаю, возможная проблема - несколько документов с одинаковыми датой и временем. |
|||
26
wondkind
22.11.17
✎
15:23
|
(25) в таком случае просто задублируется запись по контрагенту/договору
|
|||
27
DexterMorgan
22.11.17
✎
15:26
|
да ну нах, если ты не можешь понять (14) то вообще нах работать, найди че получше
|
|||
28
DexterMorgan
22.11.17
✎
15:27
|
в (14) просто написан код, нужно только свои вт подставить
|
|||
29
DexterMorgan
22.11.17
✎
15:28
|
(25) Ну может именно тогда максимум по ссылке подойдет?
|
|||
30
иубиповец
22.11.17
✎
15:29
|
(21) В разрезе договора, контрагента и даты
А если сделали акт по всем договорам контрагента (не указали договор) в выборку не попадет же. (22) Также будет проблема, если акты сверок по одному контрагенту/договору будут с одинаковой датой и временем. Подумайте над решением/обработкой таких ситуаций. Сначала максимум по дате, получить эти документы, (1,2,10) из множества, затем максимум по ссылке:). Какой вообще смысл разных актов сверки, на один период, вы их оба с контрагентом что ли подписали, один же акт (если уж вы к договору прицепились). т.е. или один общий в момент времени, либо много по каждому договору. |
|||
31
wondkind
22.11.17
✎
15:34
|
(29) именно тогда по бизнес-процессу такое не подойдёт, если только у них не всё через попу
|
|||
32
DexterMorgan
22.11.17
✎
15:45
|
(31) В смысле? не может быть документов в одну секунду? или что? мля что за бред
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |