1С 7.7 Условие в запросе #725254


#0 by Eeelena
Подскажите, как сделать условие в запросе, например когда нам нужно чтобы значение входило в список пишем условие:Условие(ЗначениеСвойства в СписокСвойств), а как сделать условие чтоб получить все записи кроме тех которые в СпискеСвойств????
#1 by Ёпрст
Не (Значение в список)
#2 by Ёпрст
но, иногда не будет это работать, обходят через Список.Принадлежит(Значение)=0
#3 by Eeelena
то есть писать Условие(СписокСвойств.ПРинадлежит(ЗначениеСвойства)=0) так?
#4 by Looser-1c
Сначала с НЕ попробуй. Ибо .Принадлжеит убъёт всю скорость в случае SQL
#5 by Ёпрст
Условие(Не ЗначениеСвойства в СписокСвойств)
#6 by Ёпрст
с чего это ?
#7 by mehfk
Иногда и ВключитьSQL нужно
#8 by Eeelena
спасибо)
#9 by Looser-1c
Это ТЫ спрашиваешь???
#10 by akaBrr
Принадлежит, в случае если значением является иерархический справочник, будет проверять на вхождение значение в группы. Гораздо быстрее работает метод НайтиЗначение. И да, я присоединяюсь к , думаю что ты это знаешь.
#11 by Ёпрст
а че нельзя ? замеры делал давно ли ? а в профайлере запрос давно глядел с Принадлежит и с "в" ? и че с того? "В"  тоже проверяет на вхождение в группу
#12 by GreyK
А в списке СписокСвойств нельзя использовать группы, или движок не будет отрабатывать вхождение в группу!?
#13 by Looser-1c
Делал. Одно на сервере, другое на клиенте. И не надо обманывать, что ты того не знаешь ))
#14 by GreyK
Ужас, оказывается в 7ке ещё и "наСервере" уже прикрутили. До чего дожили, Улю на вас, дятлов, нету :)
#15 by Looser-1c
На вас, дятлов, деревеьев не напасёшься. Открою великий секрет - некоторые запросы (в случае базы SQL) 1с таки выполняет на сервере. Да на сервере SQL.
#16 by GreyK
Вот ты и "секрет" мне открыл :), научись писать то, что хочешь сказать.
#17 by Looser-1c
одна ошибка на килобайт мудрости. Учись читасть между строк
#18 by КонецЦикла
Даже пролистывание формы списка справочника выполяется на сервере :) Тормоза начинаются когда 1С берется переваривать в кишках результаты запроса: группировка там и все такое, возня с ТЗ и проч. В принципе довольно пристойно работают штатные запросы... надо с умом применять
#19 by Ёпрст
да блин, разница будет лишь в том, что в одном случае в запросе будет фильр на список, а в другом - всё фильтруется на клиенте.. усё.
#20 by Eeelena
писала и так Условие(СписокСвойств.ПРинадлежит(ЗначениеСвойства)=0)   и так  Условие(НЕ (ЗначениеСвойства в СписокСвойствК)) выбирает все( почему так?
#21 by Злопчинский
вариант условия с СЗ.Принадлежит - отрабатывает четко. ищите проблемы в криоватых ручках. возможно в списке значений у вас данные одного типа, а в поиске принадлежит вы подсовываете данные другого типа
#22 by Eeelena
СписокСвойствК список контрагентов, ЗначениеСвойства ссылка на контрагента, вроде все правильно, но выбирает все равно всех
#23 by KUBIK
Посмотри в типовой ТиС устройство МножественногоФильтра
#24 by Eeelena
я смотрела, но не разобралась(
#25 by KUBIK
+ режим "Все, кроме"
#27 by Eeelena
это из функции глФильтрПоСправочнику?
#28 by KUBIK
Да
#29 by Eeelena
а почему просто не работает Условие(НЕ (ЗначениеСвойства в СписокСвойствК))
#30 by Злопчинский
скорее всего у вас в голове тара.. эээ.. изюминки! "СписокСвойствК список контрагентов, ЗначениеСвойства ссылка на контрагента," . - "это нэлза понять это надо запомнить" . СписокСвойствК - оказывается нифига не список свойств (Справочник.Свойства или Справочник.СовйтсваКонтрагентов) - а СПИСОК КОНТРАГЕНТОВ? - точно? сильно сомневаюсь? . ЗначениеСвойства - как говоришь - это ссылка на контрагента??? - очень сомневаюсь, м.б. это все таки ссылка Справочни.ЗначенияСвойств...? . у тебя все не фурычить ибо скорее всего список и поисковое значение - разных типов. .
#31 by Злопчинский
потому что см. и также есть глюкобагофича - такая конструкция может не работать на скульной базе если в списке значяений всего одно значение
#32 by Злопчинский
Короче 9или шире?) - разбирайся внтмательно с типами данных участвующих в алгоритме. ставлю прямоуголник шоколада - что косяк именно в несоответсвии - ибо не понимаете по контрагентов, свойства и их значения
#33 by Eeelena
Условие((ЗначениеСвойства в СписокСвойствК)) вот это условие работает, а это Условие(НЕ (ЗначениеСвойства в СписокСвойствК)) нет, как так?
#34 by Ёпрст
база скуль ?
#35 by Ёпрст
если да, то перед запросм, Запрос.ВключитьSQL воткни - бкдет работать, только скорость упадёт.. в разы.
#36 by Eeelena
нет
#37 by Ёпрст
ок. Как проверяете неработоспособность ?
#38 by Ёпрст
без фильтра что ?
#39 by Ёпрст
а с фильтром что ?
#40 by Ёпрст
а теперь (НЕ с фильтром) что ?
#41 by Ёпрст
ну и.. текст запроса неплохо бы показать
#42 by Eeelena
Вынесла часть обработки с этим запросом в отдельную, проверяю следующим образом, указываю свойство контрагента на форме, выбираю одно из, в списке свойств указываю значение свойства, запрос выдает список контрагентов. Далее при всех тех же значениях только выбираю уже значение отбора  "все кроме", выводится весь список контрагентов, не исключая не нужные. Код обработки:
#43 by Ёпрст
всё правильно вам выдает
#44 by Ёпрст
подумайте
#45 by Eeelena
если честно у меня уже нет вариантов, что я не так делаю(((
#46 by Ёпрст
не фильтруете по виду свойства в запросе, это для начала
#47 by Ёпрст
у вас значение свойства может быть одинаковым для разных видов свойств, если че.
#48 by Eeelena
то есть как должно быть??
#49 by Ёпрст
ща
#50 by Ёпрст
кину тест для проверки
#51 by Ёпрст
На вот. Даю гарантию, что у тебя владелец свойства<> виду свойства в справочнике свойства контрагентов
#52 by Ёпрст
вот и видишь ты "не то" :)
#53 by Ёпрст
cloud.mail.ru/public/6328726fdb2b/123.ert
#54 by Eeelena
спасибо вам огромное за помощь!
#55 by Ёпрст
т.е значение свойства имеет одинаковое название, только владелец другой - не тот что в фильтре выбираешь
#56 by Eeelena
по идее в моей базе нет такого, чтобы для одного значения могло быть несколько владельцев
#57 by Ёпрст
ты запусти мой отчет, поставь фильтр на одного "проблемного" клиентоса, добавь 1 свойство в фильтр и играйся с "все кроме".. потом в таблице щелкай на значение свойства и смотри - кто владелец, + смотри кто владелец свойства в фильтре..
#58 by Ёпрст
они будут разными
#59 by Ёпрст
скорее всего
#60 by Ёпрст
щелкай на таблицу - откроется элемент справочника..ну и смотри кто его владелец, какой у него код..
#61 by Ёпрст
Грубо, у тебя так сейчас: есть вид свойства Валенки и его значение Летние и есть вид свойства Сапоги и значение Летние. А в справочнике СвойстваКлиентосов у тебя в виде свойства висит вид свойства Валенки, а в ЗначениеСвойства - Летние от Сапог... фирштейн ?
#62 by Eeelena
ага, спасибо)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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