Версионирование объектов , нужен запрос #796507


#0 by Tarlich
Есть договор , реквизит менеджер. Хочу отчет по менеджерам за месяц о взаиморасчетах где в  договорах.менеджер= &Менеджер в середине месяца  договор.менеджер может поменяться механизм версионирования включен Так вот хочу тогда что бы если поменяли на другого менеджера то только с &НачалаМесяца  по &ДатаКогдаПоменяли а если другого менеджера поменяли на &Менеджера тогда с &ДатаКогдаПоменяли по &КонецМнсяца Подскажите набросок хлть. спасибо!
#1 by Tarlich
а еще получается что могли поменять 2 раза менеджера (т.е он был менеджером с 8.03.2017 по 24.03.2017) тогда надо с &8.03.2017 по &24.03.2017
#2 by Tarlich
а может и на оборот - в начале был ОН , потом 10 дней другой, потом опять он..
#3 by Tarlich
трудность в том что не могу вносить изменения в конфу , а то бы сделал в документе или регистре запись о тек менеджере..
#4 by MrStomak
Кто-нибудь что-нибудь понял? Версионирование реквизиты сохраняет в fastinfoset двоичные данные, запросом не доберешься. Только распаковывать все версии, помещать в тз и далее во временную таблицу запроса.
#5 by Flip
Если версионирование (как подсистима прикладного решения, а не платформеннное), включено, то можно в конфе отфильтровать метаданные по этой подсистеме, посмотреть в какие регистры пишутся данные, ну и по составу регистров уже писать запрос. Если в регистрах есть период записи, то запрос в СКД будет строится по принципу "получить курсы валют на каждый день".
#6 by Tarlich
понял - брать не месяц а каждый день....
#7 by Aleksey
Там же XML структура с данными. Т.е. запросом ты ничего не вытащишь. Нужно каждую запись разворачивать и смотреть реквизиты
#8 by Flip
Эм, чего-то не очень понимаю о чем речь, я просто переносил из УПП 2.1 эту подсистему, и там вполне себе есть регистр: Или может в новых конфигурациях подсистема версионирования по другому реализована?
#9 by Flip
Пардон:
#10 by Галахад
Вот и вопрос, как запросом понять, какой из реквизитов объекта изменился?
#11 by Aleksey
Все так. У тебя Измерения - ссылка на текущий объект и номер версии. А сами изменения хранятся в Ресурсе - версия объекта. И тип у него "ХранилищеЗначения" (ХЗ). С комментарием "Представление объекта в виде Fast InfoSet". Т.е. сериализация объекта в XML с сохранением этой строки в ХЗ. И как ты предлагаешь делать запрос к строке хранящейся в ХЗ? МенеджерЗаписи.ВерсияОбъекта = Новый ХранилищеЗначения(ДанныеДляХранения(Объект.Ссылка), Новый СжатиеДанных);
#12 by Aleksey
Т.е.
#13 by Tarlich
Может как то в начале получу таблицу нужных договоров где будет 4 колонки : Договор, менеджер, ДатаС , датаПо?
#14 by Aleksey
см
#15 by Flip
Ага, теперь понятно, сам просто никогда такой задачей не занимался, поэтому подумалось, что в теории это просто будет, в том случае если объект - это составной тип, беру свои рекомендации назад... ТС, сори что ввел в заблуждение :)
#16 by Klesk666
Если УТ 11, то частично наверно может помочь реквизит "Автор", в заказе клиента
#17 by Tarlich
"Автор" - это оператор а "Менеджер" - Это менеджер
#18 by Flip
Как вариант, попробовать вот такой запрос (заказ надо поменять на менеджера), так ты увидишь в разрезе договора, по дням, как менялся менеджер: ГДЕ     ВерсииОбъектов.Объект ССЫЛКА Документ.ЗаказПокупателя
#19 by Flip
Но вот как дальше сделать так чтобы, таблица была до даты изменения менеджера договора, хз, можно наверное сделать 2 набора данных и объединить их по датам, может и проканает ... :)
#20 by Tarlich
Зашел в тупик : Количество договоров огромное)
#21 by Tarlich
Запрос то работает. задействовал типовые механизмы что бы разложить: КонецФункции     то же работает
#22 by Tarlich
как сделать что бы в тз попали договора у которых за данный период был нужный мне менеджер и он за этот месяц не менялся ??? (закипаю...)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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