Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

запрос по справочнику подчиненных

запрос по справочнику подчиненных
Я
   Папай
 
08.09.21 - 18:26
Добрый вечер.подскажите реально ли запросом сделать следующее:есть справочник контрагенты,к нему подчиненных справочник :посещения магазина.
так вот сделать выборку по контрагенту который приходил,но ничего не купил.Таких посещений может быть несколько.Если хоть одно посещение было удачным,то все записи из подчиненного справочника игнорируются(ибо смысла нет,покупка была),и если он посещал но ничего не купил то берется последнее посещение и анализируются реквизиты этой строки.
   kubik_live
 
1 - 08.09.21 - 18:28
Признак "Удачного Посещения" это что?
   Папай
 
2 - 08.09.21 - 18:29
признак удачного посещения это заполненный реквизит ДатаОплаты
   kubik_live
 
3 - 08.09.21 - 18:31
Контрагент что-то при входе предъявляет или он в в туалет по пути к Вам зашёл?
   Папай
 
4 - 08.09.21 - 18:31
фактически может быть 2 строки с пустой датой.то есть 2 раза приходил,и одна строка с заполненной датой,то есть совершил покупку.То такие три строки не брать в запрос.нужны  строки если бы они все три были пустые,но отобрать только последнюю
   PuhUfa
 
5 - 08.09.21 - 18:32
(4) у тебя каждое посещение создает новый элемент справочника "посещения магазина"?
   kubik_live
 
6 - 08.09.21 - 18:32
ДатаОплаты чего? Он ничего и покупать не собирался? Как Вы его идентифицмруете? Документы требуете?
   agntosha
 
7 - 08.09.21 - 18:32
издеваешься ?
   kubik_live
 
8 - 08.09.21 - 18:33
Чем торгуете?
   Папай
 
9 - 08.09.21 - 18:33
(5)каждое посещение это строка в подчиненном справочнике "посещение"
   Папай
 
10 - 08.09.21 - 18:34
+/- как будет запрос выглядеть?
   agntosha
 
11 - 08.09.21 - 18:35
как он будет выглядеть .. тебе нужно показать тех контрагентов которые принадлежат множеству ходящих в магазин , но не совершивших покупки
   agntosha
 
12 - 08.09.21 - 18:36
все контрагенты которые ходиили НО ничего не купили
   Папай
 
13 - 08.09.21 - 18:36
(11)мне нужны именно записи подчиненного спр.но только последнее посещение
   kubik_live
 
14 - 08.09.21 - 18:36
(11) Это население РФ в общем случае! :)))
   agntosha
 
15 - 08.09.21 - 18:37
(13) последние .. ну это скажем так несколько усложняет запрос, но не намного ..
   agntosha
 
16 - 08.09.21 - 18:38
(14) Ну, почему .. население ходит в магазины и даже покупает там что то рублей на 200-300 .. сейчас даже больше .. богатеем
   kubik_live
 
17 - 08.09.21 - 18:39
(16) ???
Документ на входе предъявляете?
Что-то такого не припомню давно (был в "Березке" в СССР)
   1Сергей
 
18 - 08.09.21 - 18:39
В общем случае, ответ Да
   agntosha
 
19 - 08.09.21 - 18:39
(13) это учебная задача или нет ?
   agntosha
 
20 - 08.09.21 - 18:41
(17) по лицу распознают
   kubik_live
 
21 - 08.09.21 - 18:43
Если на входе всех однозначно идентифицировать (не в маске или в микабе), тогда можно решить задачу - кто купил а кто нет
   Папай
 
22 - 08.09.21 - 18:48
как то я не очень представляю как это запросом обработать
   Папай
 
23 - 08.09.21 - 18:48
(19)что то вроде.пытаюсь разобраться со сложными вариантами
   kubik_live
 
24 - 08.09.21 - 18:52
(22) Запрос из чего выбирать-то будет?
Определись
   agntosha
 
25 - 08.09.21 - 18:54
(23) просто , если учебная то смотреть будут на то как сделал .. а если не учебная .. то там варианты возможны разные.
Так или иначе тебе нужно получить последнюю запись .. это соединение таблицы посещений с такой же сгруппированной по связи дата = Максим(дата)
это тебе даст только последние .. а контрагентов надо взять из тех у кого не было покупок вообще и связать их .. но вот как это правильно записать , если она учебная х.з
   Папай
 
26 - 08.09.21 - 18:59
(25)спасибо попробую
   Папай
 
27 - 08.09.21 - 19:02
(25)а как взять контр.у которых не было покупок?если есть только дата посещения.нет даты оплаты но она может по началу не быть а потом в конце появится.например 2 раза приходил а купил на третий
   kubik_live
 
28 - 08.09.21 - 19:04
(27) МАКСИМУМ(ДатаОплаты)
   Папай
 
29 - 08.09.21 - 19:14
(28)сударь вы не внимательно читали.какой смысл использовать максимальное значение даты если она будет одна среди всех.с таким же успехом ее можно сравнить с Null
   Папай
 
30 - 08.09.21 - 19:15
однако если она будет присутствовать среди строк подч.спр.то  надо взять последнее посещение не удачное а не удачное
 
 
   kubik_live
 
31 - 08.09.21 - 19:20
"...последнее посещение не удачное а не удачное"
Да уж...
"Бог в помощь!" © Волк
   Папай
 
32 - 09.09.21 - 11:44
добрый день.возвращаясь к вчерашней теме получил список контрагентов подлежащих к исключению из запроса.Как продолжить выборку из запроса, но за исключением тех контрагентов которых я получил данным запросом?как отобрать всех кто сюда не вошел?

|    Контрагент.ссылка,
|    Посещения.ДатаПолученияОплаты
|ИЗ
|    Справочник.Контрагент КАК Контрагент
|        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Посещения КАК Посещения 
|        ПО Контрагент.Ссылка = Посещения .Владелец
|        И (Посещения .ДатаПолученияОплаты <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
   mistеr
 
33 - 09.09.21 - 12:30
(0) Сначала отобрать нужных контрагентов в ВТ. Затем по ним найти последнее посещение. Типа среза последних вручную.
   Папай
 
34 - 09.09.21 - 12:51
(33)если бы я мог отобрать нужны сразу то зачем мне тогда временная таблица?у меня получится лишь отобрать тех которых надо исключить.
Еще раз:вы 3 раза посещали магазин.в системе 3 строки с пустой датой оплаты,но в конце концов в 4-й раз вы совершили покупку,всего 4 строки в подчиненном справочнике.Так вот вас надо исключить.А если человек так ничего и не купил на момент формирования отчета то его вывести.а у него может быть сколько угодно посещений без оплат
   Папай
 
35 - 09.09.21 - 12:52
может можно сделать выборку левым посещение где все с пустой датой?все до единой записи?
   agntosha
 
36 - 09.09.21 - 12:56
может прочитать про множества и логические операции над ними. Тогда дело пойдет быстрее.
Вам нужно множество котрагентов которые не совершали покупки. Это раз.
Вам нужно множество последних посещений магазина контрагентами
Вам нужно множество которое состоит их пересечения этих множеств
   agntosha
 
37 - 09.09.21 - 12:57
Делается все это разными запросами которые потом соединяются .. с нужными связями.
Самый сложный для вас будет это запрос последних посещений магазинов ..
   agntosha
 
38 - 09.09.21 - 13:01
(34) вам это нужно потому что там будут одни и те же данные использоваться несколько раз .. скорее всего , если задача учебная то вас натянут за неиспользование .. хотя я не знаю .. но подозреваю
   mistеr
 
39 - 09.09.21 - 13:31
(35) Конечно можно. Левое соединение, группировка по контрагенту, ИМЕЮЩИЕ МАКСИМУМ(ДатаОплаты) ЕСТЬ NULL
   mistеr
 
40 - 09.09.21 - 13:32
(39) Точнее ЕСТЬNULL(МАКСИМУМ(ДатаОплаты), &ПустаяДата) = &ПустаяДата


Список тем форума
 
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.