![]() |
|
Получить запросом последний документ | ☑ | ||
---|---|---|---|---|
0
bebibo
12.04.24
✎
16:02
|
Здравствуйте!
Подскажите пожалуйста. Запросом получаю все продажи (регистр) ,вытаскиваю оттуда номенклатуру ,сумму и количество. Далее мне нужно получить из документа "Поступление товаров и услуг" ставку НДС по данной номенклатуре. И получить нужно не на дату продажи, а на самую последнюю дату. то есть было поступление товара 10.04 со ставкой 18% ,и было поступление 11.04 со ставкой 20% ндс. Мне нужен документ от 11.04, со ставкой 20% Вот подскажите, как мне взять этот самый последний документ? |
|||
1
maxab72
12.04.24
✎
16:03
|
ВЫБРАТЬ ПЕРВЫЕ 1
СОРТИРОВАТЬ ПО МойДокумент.Дата УБЫВ |
|||
2
Кондер
12.04.24
✎
16:07
|
Бессмысленно, нужна партия
|
|||
3
bebibo
12.04.24
✎
16:08
|
(1) не работает. Выбрать первые берет 1 позицию. А у меня продаж то не одна строка
|
|||
4
maxab72
12.04.24
✎
16:10
|
(3) А сколько надо? Задавайте правильный вопрос - получите требуемый ответ.
|
|||
5
yopQua
12.04.24
✎
16:12
|
(0) максимум по дате, потом соединение
|
|||
6
bebibo
12.04.24
✎
16:23
|
(5) всё равно несколько строк выдаёт. Было 2 поступления, 2 строки и выдает
|
|||
7
bebibo
12.04.24
✎
16:24
|
(4) нужен последний документ по номенклатуре каждой
|
|||
8
arsik
гуру
12.04.24
✎
16:30
|
(7) Вот как то так :)
https://imgur.com/z71r9az |
|||
9
youalex
12.04.24
✎
16:31
|
(6) у поступлений одинаковая дата?
показывай запрос |
|||
10
Мультук
гуру
12.04.24
✎
16:31
|
(0)
1) Запрос в цикле, да плохо - mista высказывает своё фу, но позволяет получить результат, после оценки которого произойдет сюжетный твист в тех.задании (если оно конечно есть) 2) Можно построить сначала временную таблицу ВТ_ПОСЛЕДНИЕ_ПОСТУПЛЕНИЯ с колонками: Номенклатура СтавкаНДС ДокуменПоступленияЧистоЧтобыБыл В (5) подсказали как, но... 3) Что будешь делать если например на 31.03.2023 23:59:59 по номенклатуре "НекийТовар" Будет три поступления БезНДС 18% 20% Какая из ставок будет "правильная" ? |
|||
11
arsik
гуру
12.04.24
✎
16:35
|
(10)
3) Что будешь делать если например на 31.03.2023 23:59:59 по номенклатуре "НекийТовар"
Будет три поступления БезНДС 18% 20% И ежу понятно, что такого быть не может |
|||
12
СвинТуз
12.04.24
✎
16:37
|
(0)
Примерно такое часто спрашивают на собеседованиях. Хорошо бы понять как делается. |
|||
13
СвинТуз
12.04.24
✎
16:39
|
(0)
У Радченко насколько я помню подобный пример был в его самой массовой книге. |
|||
14
bebibo
12.04.24
✎
16:47
|
(9) данный запрос в первой таблице выдаёт все поступления по выбранной номенклатуре. Во второй таблице получается получить последний документ по дате, но когда я добавляю после ставка, строки становится две.
Третий пакет соответственно дублирует всё по 2 раза. ВЫБРАТЬ ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровТовары.СтавкаНДС КАК СтавкаНДС, ПоступлениеТоваровТовары.Ссылка.Дата КАК Дата ПОМЕСТИТЬ втПоступления ИЗ Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары ГДЕ ПоступлениеТоваровТовары.Номенклатура = &Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втПоступления.Номенклатура КАК Номенклатура, МАКСИМУМ(втПоступления.Дата) КАК Дата, втПоступления.СтавкаНДС КАК СтавкаНДС ПОМЕСТИТЬ втПоследниеДокументы ИЗ втПоступления КАК втПоступления ГДЕ втПоступления.Номенклатура = &Номенклатура СГРУППИРОВАТЬ ПО втПоступления.Номенклатура, втПоступления.СтавкаНДС ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втПоступления.Номенклатура КАК Номенклатура, втПоступления.СтавкаНДС КАК СтавкаНДС ИЗ втПоступления КАК втПоступления внутреннее СОЕДИНЕНИЕ втПоследниеДокументы КАК втПоследниеДокументы ПО втПоступления.Номенклатура = втПоследниеДокументы.Номенклатура |
|||
15
bebibo
12.04.24
✎
16:51
|
Вот вроде заработало
ВЫБРАТЬ ПоступлениеТоваровТовары.Номенклатура КАК Номенклатура, ПоступлениеТоваровТовары.СтавкаНДС КАК СтавкаНДС, ПоступлениеТоваровТовары.Ссылка.Дата КАК Дата ПОМЕСТИТЬ втПоступления ИЗ Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары ГДЕ ПоступлениеТоваровТовары.Номенклатура = &Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втПоступления.Номенклатура КАК Номенклатура, МАКСИМУМ(втПоступления.Дата) КАК Дата ПОМЕСТИТЬ втПоследниеДокументы ИЗ втПоступления КАК втПоступления ГДЕ втПоступления.Номенклатура = &Номенклатура СГРУППИРОВАТЬ ПО втПоступления.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втПоступления.Номенклатура КАК Номенклатура, втПоступления.СтавкаНДС КАК СтавкаНДС ИЗ втПоступления КАК втПоступления ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПоследниеДокументы КАК втПоследниеДокументы ПО (втПоступления.Номенклатура = втПоследниеДокументы.Номенклатура И втПоступления.Дата = втПоследниеДокументы.Дата) |
|||
16
bebibo
12.04.24
✎
16:52
|
Только теперь сейчас попробую всё это связать с регистром продаж
|
|||
17
СвинТуз
12.04.24
✎
16:54
|
(0)
Я Вам сейчас в Ваш документ две строки помещу номенклатуры с разными ставками НДС. Что делать будете? Еще одного взломали. Не верю что после 5 лет можно такое писать. |
|||
18
СвинТуз
12.04.24
✎
16:55
|
(15)
Таки открыли Радченко? Как оттуда срисовано. |
|||
19
d4rkmesa
гуру
12.04.24
✎
17:00
|
(3) Мне кажется, это намек на коррелируемый запрос.
|
|||
20
СвинТуз
12.04.24
✎
17:01
|
(15) (17)
Только видимо номенклатура должна быть в каком то списке. И то что в (15) может двоить строки потенциально. Если в документе будет две строки по одной номенклатуре с разными ставками. А так ... БИНГО! |
|||
21
СвинТуз
12.04.24
✎
17:03
|
(20)
И ... Дата это не комильфо. По одной дате можно больше одного документа получить. Это Вам не регистр сведений. |
|||
22
СвинТуз
12.04.24
✎
17:04
|
А так же признак проведения. Или хотя бы отсутствие пометки удаления.
Средней паршивости код. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |