|   |   | 
| 
 | Получение последнего документа по контрагенту | ☑ | ||
|---|---|---|---|---|
| 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) В смысле? не может быть документов в одну секунду? или что? мля что за бред     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |