Срез последних: почему не последнее? #202459


#0 by Фабрикантъ
Есть запрос. Нужно, чтобы на выходе выдавал только ПОСЛЕДНИЕ события, а он выдает последние ПО КОНКРЕТНОМУ СОТРУДНИКУ, даже если после него были другие движения по регистру сведений... "ВЫБРАТЬ
#1 by ТелепатБот
#2 by Фабрикантъ
Это что-то не то...
#3 by PR
Не понял до конца, но вроде как попробуй вместо И СобытияСрезПоследних.Сотрудник.Ссылка = &Сотрудник в параметрах источника написать Сотрудник.Ссылка = &Сотрудник
#4 by avmlvm
Не-е-е.. не понял... Ты хочешь получить "последние события" или получить данные на конкретную дату?
#5 by Фабрикантъ
Только последние события. А он в зависимости от указанного сотрудника выдает события КОНКРЕТНО ЕГО. А надо - чтобы или АБСОЛЮТНО последнее, или вообще ничего не выдавал.
#6 by avmlvm
Убери параметр "дата" и убери и из "где" тогда сотрудника но если ищишь конкретное событие - то тогда его и вставь в конструкцию "где"
#7 by PR
Тогда должно сработать, непонятно, почему у тебя не срабатывает :o) Или я опять неправильно понял
#8 by PR
В случае с регистром сведений ГДЕ срабатывает после среза последних, а вот параметры источника до.
#9 by Фабрикантъ
Дату убрал - не помогло. А сотрудника я зачем убирать буду? Мне надо вывести список всех последних событий, отфильтрованный по конкретному сотруднику. Как говорит PR, ГДЕ должно сработать после среза, ан нет, не выходит! :((
#10 by PR
А без фильтра срабатывает нормально?
#11 by Фабрикантъ
А что толку без фильтра? Естественно он выведет всех, тут и ежу понятно... Ты предлагаешь вывести без вильтра, а потом в цикле отобрать?
#12 by PR
Такого НЕ может быть. Попробуй тупой вариант: выбери во вложенном запросе все записи без фильтра, а в основном запросе используй фильтр.
#13 by Фабрикантъ
А можешь код набросать? Я пока туповат во вложенных запросах...
#14 by avmlvm
Давай ещё раз.. Что именно нужно.. то что ты написал в Нужно, чтобы на выходе выдавал только ПОСЛЕДНИЕ события, а он выдает последние ПО КОНКРЕТНОМУ СОТРУДНИКУ или то что написал в "Мне надо вывести список всех последних событий, отфильтрованный по конкретному сотруднику" т.е. в ты пишешь, что тебе "последние" по конкретному сотруднику НЕ нужны.. а в что именно так и нужно.. проясни...
#15 by Фабрикантъ
Так понятнее: 1. Сначала запрос должен отобрать все последние события 2. Потом он их должен отобрать по конкретному сотруднику В итоге я получаю список сотрудников, которые работали с данным контрагентом последними. А 1С делает наоборот...
#16 by AntonioS
"Сотрудник" это реквизит, ресурс или измерение?
#17 by Фабрикантъ
Измерение
#18 by ZyXEL
Подзапросом надо реализовывать. Подзапрос по этому регистру а потом по связи подставлять.... А в основном запросе присоединение к справочнику контрагенты.
#19 by avmlvm
Совсем запутал... правильно ли я понял, что тебе нужен Список сотрудников, которые работали с данным контрагентом последними? Да? Ну тогда это "ВЫБРАТЬ
#20 by ZyXEL
событие не покажет.. надо искать в СрезПоследних с условием Период <=ДатаОтчета. Хотя опять же все зависит от того как реализован Регистр.
#21 by Фабрикантъ
Это верно. Но этот итоговый список надо отфильтровать по одному сотруднику, коточе нужно узнать, работал ли указанный сотрудник с данным контрагентом последним. А можешь продемонстрировать?
#22 by avmlvm
сорри..
#23 by avmlvm
+ У тебя тогда по каждому котрагенту из справочника будет показано (если есть) последнее событие со связанным с ним сотрудником... Ты это хотел???
#24 by AntonioS
прикольный запрос :)) зачем условие ГДЕ ?
#25 by avmlvm
Напиши то же самое БЕЗ "где" :-))) Тогда поприкалываемся вместе :-))))
#26 by Фабрикантъ
Но ведь это он и выдает! И в твоем запросе вообще нет отбора по сотруднику... Я же писал, что не выполняется главная задача - последовательность выборки: 1. Сначала запрос должен отобрать все последние события 2. Потом он их должен отобрать по конкретному сотруднику А ты опять предлагаешь сделать наоборот...
#27 by PR
Влом, вот тебе пример, сделай по аналогии ВЫБРАТЬ    ВложенныйЗапрос.Валюта ИЗ
#28 by Фабрикантъ
Озадачил... Но мысль понятна. Спасибо, попробую...
#29 by AntonioS
ВЫБРАТЬ ИЗ
#30 by PR
Вообще должно все и так работать, непонятно, где засада :o)
#31 by avmlvm
может я что не понял.. А разве у тебя "события" "гуляют" сами по себе.. без контрагентов и сотрудникой??? Разве каждое событие однозначно не привязано И к контрагенту И к сотруднику??? короче.. незная структуры - очень сложно писать чЁ либо эффективно :-)))
#32 by avmlvm
хм-м-м.. У тебя тоже конструкция "где".. так в чём тогда "прикол" ??? проясни???
#33 by Фабрикантъ
Спасибо, понял... Тоже не понимаю... Ну это типа CRM... Есть контрагент, и разные сотрудники создают события. Надо найти, кто общался последним.
#34 by avmlvm
Ну-у-у.. вот и я о том же... Событий БЕЗ сотрудников и БЕЗ контрагентов у тебя быть НЕ ДОЛЖНО.. Значит твой п.1 в - "нонсенс"... :-)))
#35 by Фабрикантъ
Все верно, таких событий и не должно выдаваться...
#36 by avmlvm
Ну-у-у.. Поэтому я и говорю.. Тебе нужна только "выборка последних" событий по заданному списку контрагентов.. И в этом "последнем событии" (если оно существует) и увидишь "последнего сотрудника"... а всё остальное - от лукавого (поверь моему опыту) :-)))
#37 by Фабрикантъ
Все верно, но задача была еще и отобрать список по одному конкретному сотруднику...
#38 by avmlvm
Не-е-е.. так не бывает... Ты должен делать что-то одно (иначе получишь пустой список).. или отбор последних Событие-Сотрудник для заданного списка Контрагентов.. или наоборот... отбор Событие-Контрагент для заданного списка Сотрудников или напкраЙняк.. отбор Сотрудник-котрагент Для заданного списка событий иного просто не существует :-))))
#39 by PR
Мдя, Илюх, ты где-то гонишь, щас попробовал такой запрос ВЫБРАТЬ    ОтветственныеЛицаОрганизацииСрезПоследних.ФизическоеЛицо,    ОтветственныеЛицаОрганизацииСрезПоследних.Должность
#40 by PR
Записи в регистре следующие При отборе по Васе запись только одна, Главный бухгалтер    Вася
#41 by Фабрикантъ
Не знаю, что-то я не въезжаю... Вобщем вложенный запрос тоже не срабатывает... Буду разбираться.
#42 by PR
Ты понимаешь, что такого НЕ МОЖЕТ быть? Ты что-то не то хочешь видать, нежели говоришь :o) Приведи пример, где несколько записей, по кому делаешь отбор и что у тебя должно получиться
#43 by Фабрикантъ
Лан, чет я подустал, пойду домой... Утро вечера мудренней...
#44 by Фабрикантъ
Вот сделал вложенный запрос, все условия после среза, а все равно результат может выдавать по одному контрагенту и с одним, и с другим сотрудником:        |
#45 by PR
Эээ..., я вот тут подумал, сотрудник должен быть ресурсом, чтобы получилось то, что ты хочешь :o)
#46 by ZyXEL
напиши тогда еще раз что хочешь получить подробно с примером результата..
#47 by Фабрикантъ
Спасибо, Рома. Я тут подумал и решил, что действительно сделаю сотрудника ресурсом. Это будет идеологически правильнее. Просто регистры сведений - новый объект, не всегда понятно, как с ними работать.
#48 by PR
Решается очень просто, вот почему к примеру в курсах валют валюта - измерение, а курс - ресурс? Потому что несколько записей с разными валютами и одинаковыми курсами может быть, а несколько курсов для одной валюты - нет. В общем в измерениях должен быть ключевой набор реквизитов, то есть набор, который однозначно идентифицирует набор в таблице, валюта - это ключевой реквизит, а курс - нет.
#49 by PR
(+48) Зная валюту, ты однозначно запись найдешь, а зная курс - нет
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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