1С 8. Запрос из регистра сведений по периодам с отбором по измерению #757354


#0 by mishkerdon
Добрый день! Есть регистр сведений "Собственники помещения" с периодичностью "Месяц". Он состоит из измерения "Помещение" и ресурса "Собственник". Нужно вытащить историю владения определенного помещения определенным собственником. Допустим, с 1 ноября 2014 по 31 декабря 2015 и с 1 апреля 2015 по 1 июля 2015 собственник1 владел помещением. Все это забито в регистре в виде записей: 1 - 01.11.2014 собственник1 4 - 01.07.2015 собственник3 Как вытащить историю владения собственником1 через запрос? (т.е. с датой начала и конца владения)
#1 by Горогуля
сначала выбрать, потом из, затем где
#2 by Molinor
За тебя предлагаешь сделать? Показывай что сделал, что не получается.
#3 by mishkerdon
не предлагаю сделать, просто может кто-то сталкивался. На данный момент вижу только возможность через код сначала вывести конец каждого месяца в указанном периоде, и на конец каждого месяца отдельный запрос запускать, затем результат запроса опять через код сгруппировать по непрерывным периодам. Но чтобы все это в одном запросе, никак в голову не входит.
#4 by Ващета
Две таблицы со срезами можно соединить с условием период второй больше периода первой из первой вытаскивать начало пользования, из второй по группировке минимум вытаскивать окончание пользования
#5 by mishkerdon
что-то не очень понял. Как это сделать, если несколько раз владел помещением?
#6 by Molinor
Вытаскиваешь все начала владения помещением нужным собственником, левым соединением цепляешь этот же РС, где период больше начала владения и сменился собственник. И находишь минимум, вот твоя дата окончания владения.
#7 by hhhh
запрос разве бывает НЕ несколько? Всегда ведь несколько.
#8 by mishkerdon
разве в этом случае не вернет несколько раз типа 01.11.2014-01.01.2015 и 01.11.2014-01.07.2015 и 01.04.2015-01.07.2015 ?
#9 by Molinor
До конца дочитай "И находишь минимум, вот твоя дата окончания владения."
#10 by mishkerdon
спасибо большое! попробую написать запрос, если что отпишусь :)
#11 by mishkerdon
В общем ситуация такая, немножко дополню вышеуказанный совет - после группировки по началу владения и выборки минимального конца владения, нужно затем группировать по концу владения и выбрать минимальное начало владения. Это делается для исключения двойных записей, когда в РС идут записи типа
#12 by Molinor
Ну почему нельзя полностью. то прочитать? "левым соединением цепляешь этот же РС, где период больше начала владения и !!!сменился собственник!!!"
#13 by Molinor
Ошибся, немного не о том подумал.
#14 by MrKartez
Получаешь периоды владения собственника под номером один. Тащишь это фигню в отдельную вложенную таблицу. во втором пакетном запросе тащишь эту вт и вдовесок физическую таблицу регистра, соединяя по условию ВТ.Период <РегистрСведений.Период, при этом делаешь группировку Минимум (РЕГИСТРСВЕДЕНИЙ.ПИРЕИОД)ВТ.Период - это дата начала владения, Минимум - дата окончания владения, но так как минимум будет означать начала следующего владельца, для понта можешь отнять от даты одну секунду, чтобы вместо 01.11.2015, например, было окончания месяца 31.10.2015 23:59:59
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С

Back to top