Имя: Пароль:
1C
1C 7.7
v7: помогите с условием в запросе
0 zladenuw
 
26.12.11
11:46
Всем привет.
Есть такой запрос
Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =    "//{{ЗАПРОС(Сформировать)
   |ТекущийЭлемент = Справочник.СтруктураКомпании.ТекущийЭлемент;
   |Родитель = Справочник.СтруктураКомпании.Родитель;
   |Тип = Справочник.СтруктураКомпании.Тип;
   |Группировка ТекущийЭлемент;
   |Условие(Тип = мТипПокупатель);
   |Условие((Родитель в лСпЗнПокупателиРод) или (ТекущийЭлемент в лСпЗнПокупатели));
   |";//}}ЗАПРОС;

Как в запрос можно добавить такое условие
лСпрСвязи.ИспользоватьВладельца(лЭлемент);
           лСпрСвязи.ВыбратьЭлементы();
           Если лСпрСвязи.ПолучитьЭлемент() = 0 Тогда
               Продолжить;
           КонецЕсли;
1 1Сергей
 
26.12.11
11:47
|Условие((Родитель в лСпЗнПокупателиРод) или (ТекущийЭлемент в лСпЗнПокупатели));

это что за порнография?
2 filh
 
26.12.11
11:48
чего добавить?
3 zladenuw
 
26.12.11
11:48
а как тогда написать, если в списке может быть и группа и элемент. я на 7 не сильно в запросах :(
4 zladenuw
 
26.12.11
11:48
(2)
вот это в запрос
лСпрСвязи.ИспользоватьВладельца(лЭлемент);
           лСпрСвязи.ВыбратьЭлементы();
           Если лСпрСвязи.ПолучитьЭлемент() = 0 Тогда
               Продолжить;
           КонецЕсли;
5 1Сергей
 
26.12.11
11:49
(3) |Условие(ТекущийЭлемент в лСпЗнПокупатели);

(4) лСпрСвязи - это что?
6 filh
 
26.12.11
11:49
(4) и зачем этот пустой цикл?
7 zladenuw
 
26.12.11
11:51
это ссылка на справочник. если в нем есть хоть 1 элемент то выбираем. если нет то такую запись пропускаем. а вообще там хранится информацию о ЮрЛице
8 filh
 
26.12.11
11:52
(7) через внешнюю функцию можно
9 zladenuw
 
26.12.11
11:53
(5) то есть если лСпЗнПокупатели выбраны группы, то условие в все равно проверить. я правильно понял ?
10 zladenuw
 
26.12.11
11:53
(8) а это как ?
11 1Сергей
 
26.12.11
11:55
|ЭлементСтрукКомп = Справочник.Связи.Владелец;
   |ЭлементСвязи = Справочник.Связи.ТекущийЭлемент;
   |Тип = Справочник.Связи.Владелец.Тип;
   |Группировка ЭлементСтрукКомп;
   |Условие(Тип = мТипПокупатель);
   |Условие(ЭлементСтрукКомп в лСпЗнПокупатели);
12 zladenuw
 
26.12.11
11:57
а если в лСпЗнПокупатели будет элемент ?
13 zladenuw
 
26.12.11
11:57
(8) нашел как. пробую
14 1Сергей
 
26.12.11
11:58
(9) всё сработает. Читай внимательно мануал
15 zladenuw
 
26.12.11
12:02
(14). ок. а внешней функцией можно вернуть значение ?
в запрос для текущего элемента ?
16 1Сергей
 
26.12.11
12:03
(15) можно, но тормоза будут неимоверные. проще перебором. Чем тебя (11) не устроило?
17 Erhov_egor
 
26.12.11
12:04
лСпЗнПокупатели-левый список значений "покупатели"
18 zladenuw
 
26.12.11
12:08
(16) да я уже через внешнию функцию сделал. все ок.
а лСпЗнПокупатели это значение фильтра для выборки со справочника структуракомпании
Программист всегда исправляет последнюю ошибку.