Группировка с условием

1. Неопределено 90 09.06.18 09:59 Сейчас в теме
Всем привет.

В КА 2.2 есть отчёт Ведомость по товарам в ценах номенклатуры. Сегодня обнаружил что он не сходится и всему виной оказались два приходных ордера, сформированных на одну дату и время, содержащие одинаковую номенклатуру. В отчёте есть вложенный запрос, в котором включена группировка
Как ясно из вышеописанного, для данной номенклатуры на выходе получилось 2 записи типа Остаток на начало, Приход, Расход, Остаток на конец. Из остатка на конец формируется СуммаКонечныйОстаток с помощью нехитрого уравнения:
ЕСТЬNULL(ЦеныНоменклатуры.Цена * ТаблицаТоварыНаСкладахМаксимальныйПериод.КоличествоКонечныйОстаток, 0)
Затем эта СуммаКонечныйОстаток попадает в ресурс, где для неё приготовлено выражение:
ВЫБОР
	КОГДА &КоличественныеИтогиПоЕдИзм И Количество(Различные ЕдиницаОтчета) > 1
		ТОГДА 0
	ИНАЧЕ Сумма(КоличествоКонечныйОстаток)
КОНЕЦ
Поняли в чём дело? Сумма(КоличествоКонечныйОстаток) У нас есть 2 записи на дату. Сначала пришло 200 единиц товара, затем 25. Остаток на конец 200, потом остаток на конец 225. После прихода была переоценка и на начало переоценки (как и на конец) имеем 425 единиц товара и отчёт не сошёлся. Вопрос: можно ли как-нибудь сгруппировать результат вложенного запроса по условию? Например, исключить регистратор и дальше смотреть если приход <> 0 Тогда МАКСИМУМ(КонечныйОстаток). Что-то вроде этого, или так нельзя? Как вообще решить эту ситуацию?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 09.06.18 18:21 Сейчас в теме
(1)
оказались два приходных ордера, сформированных на одну дату и время

А нельзя время на 1 сек. поменять?
3. Неопределено 90 10.06.18 04:25 Сейчас в теме
(2) Каждый раз перед формированием отчёта смотреть чтобы не было документов на одну дату? Разумеется, я её сразу сменил. Но это решение последствий, а не источника проблемы. Это не ошибка товароучёта, а некорректный запрос в СКД.
9. Akuji 22 13.06.18 08:46 Сейчас в теме
(1)

Тут сгруппировалось и нашлась цена... вроде все верно
Остаток на конец 200, потом остаток на конец 225


Мне кажется проблема дальше...
на начало переоценки (как и на конец) имеем 425 единиц товара
4. Неопределено 90 13.06.18 01:53 Сейчас в теме
5. akim2040 41 13.06.18 06:36 Сейчас в теме
(4) Я вот думаю на сколько корректно будет переделать и брать регистратор максимум? Будет тупо группироваться по номенклатуре, и максимальной дате и регистратору
6. Неопределено 90 13.06.18 08:33 Сейчас в теме
(5)
брать регистратор максимум

(5)
Будет тупо группироваться по номенклатуре, и максимальной дате и регистратору

Как-то непонятно. Если я укажу МАКСИМУМ(Регистратор), он будет не группируемым, а суммируемым полем. Эти две цитаты взаимоисключающие. Нельзя одновременно группировать по регистратору и брать его максимум, или я чего-то не знаю?
7. akim2040 41 13.06.18 08:40 Сейчас в теме
Я просто смотрю аналогичный отчет в ERP и там вообще Максимальный регистратор отдельно определяется. У Вас присутствует данная временная таблица "РегистраторМаксимумПоПериоду"?
10. Неопределено 90 13.06.18 08:55 Сейчас в теме
(7) Да, но группировка которую я скинул находится во вложенном запросе ТаблицаТоварыНаСкладахМаксимальныйПериод результирующего пакета.
8. akim2040 41 13.06.18 08:45 Сейчас в теме
Отдельно определяется максимальный период. Отдельно определяется максимальный регистратор
Потом в последнем пакете идёт левое соединение
Прикрепленные файлы:
11. Неопределено 90 13.06.18 08:57 Сейчас в теме
(8) Посмотрите связи первого запроса. Там то о чём я пишу.
12. akim2040 41 13.06.18 09:23 Сейчас в теме
(11) Смысла смотреть нет. Там не много по другому запросы. Давайте про общую логику. Вы говорите что у вас в одном периоде получилось два регистратора. Так что мешает сделать ещё одну таблицу, и получить максимальный регистратор? и в конечном пакете отсечь лишнюю группировку, связав по этому регистратору и периоду.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот