v7: Как правильно сделать условие в запросе (1с77) #744259


#0 by BalBess
Подскажите, уважаемые.. что-то подзабыл Как мне правильно сделать запрос или условие в запросе Задача следующая, есть документ, есть 2 поля контрагентов Нужно в выборке отобрать документы, чтобы или 1 поле принадлежало определенной группе, либо 2. Т.е. Вот тут вопрос, как сделать правильное условие? В выборку не попадают доки у которых 2 поле принадлежит группе ВыбКлиент Второе поле Клиент2, не всегда заполнено т.е. нужно либо (Клиент.ПринадлежитГруппе(ВыбКлиент) = 1) либо (если не пустое Клиент2) Клиент2.ПринадлежитГруппе(ВыбКлиент) = 1 Напомню речь про 1с77
#1 by Провинциальный 1сник
Правильно - забыть про эти кривые штатные недозапросы и использовать прямые запросы 1c++.
#2 by Толич
#3 by BalBess
как я узнаю что Клиент2 не пустое, это поле в документе т.е. как это условие вставить в запрос во вторых поле Клиент2 может быть пустым и условие  (Клиент2.ПринадлежитГруппе(ВыбКлиент) = 1) выдает ошибку
#4 by titan_aleks
1. В запросе свою функцию вставь = и уже в функции проверяй
#5 by ЧеловекДуши
Состряпай функцию, "МойКонтрагент(Контрагент1,Контрагент2) = 1", и внутри функции делай любые манипуляции. ..Если будет волновать скорость, то "Черные" запросы от 1С тащат практически всю таблицу к тебе на ПК и уже там начинают над ней колдовать... Хочешь скорости, то пиши на прямых запросах. 1С++ тебе в помощь :)
#6 by titan_aleks
2
#7 by BalBess
я так делал, дело в том что поле клиент1 не всегда заполнено, и на (Клиент1.ПринадлежитГруппе(ВыбКлиент) = 1) выдает ошибку. И не понятно как потом делать группировки
#8 by BalBess
а можно подробнее на счет функций, чет подзабыл все
#9 by titan_aleks
|Условие (МояФункция(Контрагент,Контрагент1) = 1)
#10 by BalBess
спасибо, попробую, отпишусь
#11 by welwel
Условие (Клиент в ВыбКлиент) не проще ли?
#12 by BalBess
в таком случае почему-то не попадают доки в которых Клиент2 принадлежит группе ВыбКлиент
#13 by AntiBuh
ну дык воткни ИЛИ
#14 by BalBess
блин, точно. Заработала такая конструкция     "Условие ((Клиент в ВыбКлиент) ИЛИ (Клиент2 в ВыбКлиент));";
#15 by BalBess
а я уже и через функцию сделал, тоже заработало (даже и не знал, что так можно) всем спасибо большое!
#16 by vip03
а так не проще? ТекстЗапроса =
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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