Имя: Пароль:
1C
1С v8
Обход пустой ссылки в запросе
0 prilforreal
 
30.11.18
16:13
Добрый денек, Миста! Запросом вывожу пользователей и их напарников, но если пользователь без напарника в результате запроса его нет, чем вылечить?

Производство="%Производство%";
Ростов="%Ростов%";
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Пользователи.Ответственный,
        |    Пользователи.Ответственный.Напарник
        |ИЗ
        |    Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |    Пользователи.Наименование ПОДОБНО ""%Производство%""
        |    И НЕ Пользователи.Наименование ПОДОБНО ""%Ростов%""
        |    И Пользователи.Код <> 2
        |    И Пользователи.Ответственный.Наименование <> 0
        |    И Пользователи.Ответственный.Напарник.Код <> 11
        |    И Пользователи.Ответственный.Код <> 11
        |    И Пользователи.Ответственный.Родитель.Код <> 3930";
    
    Запрос.УстановитьПараметр("Производство", Производство);
    Запрос.УстановитьПараметр("Ростов", Ростов);
    Рез=Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.Ответственный;
Стр.Статус=Перечисления.СтатусВР.Вешал;
//Если не Рез.ОтветственныйНапарник = Справочники.Контрагент.ПустаяСсылка() тогда
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.ОтветственныйНапарник;
Стр.Статус=Перечисления.СтатусВР.Вешал;
//КонецЕсли;
КонецЦикла;
1 vicof
 
30.11.18
16:14
Делать левое соединение, а не внутреннее
2 Ёпрст
 
гуру
30.11.18
16:16
(0) выкинуть вот это из текста:
      |    И Пользователи.Ответственный.Напарник.Код <> 11
3 dezss
 
30.11.18
16:21
(2) лучше выкинуть весь этот запрос)
4 unregistered
 
30.11.18
16:24
Давненько такой едрёный *авнокод не встречался....
5 kda26
 
30.11.18
16:24
(3) Пользователю без напарника будет скучно.
6 unregistered
 
30.11.18
16:26
А по сути вопроса тут всё написано: https://its.1c.ru/db/metod8dev#content:2512:hdoc
7 Вафель
 
30.11.18
16:26
ЕСТЬNULL(Пользователи.Ответственный.Напарник.Код, 0) <> 11
8 Масянька
 
30.11.18
16:26
А почему Ростов исключили?
9 vicof
 
30.11.18
16:28
(8) Потому что там Маньяк
10 kda26
 
30.11.18
16:29
(8) В Ростове пользователи самостоятельные, сами справляются.
11 Масянька
 
30.11.18
16:29
(9) Точно! Он без напарника справится.
12 vde69
 
30.11.18
16:30
(8) там маня живет, по этому лучше не соваться
13 dezss
 
30.11.18
16:30
Стр.Статус=Перечисления.СтатусВР.Вешал;

Напарника?
14 Масянька
 
30.11.18
16:31
(13) Шедевр...
15 vde69
 
30.11.18
16:31
(13) лапшу
16 dezss
 
30.11.18
16:33
(15) так еще и с лапшой надо соединять?
почему ТС не писал об этом в (0)?
17 Масянька
 
30.11.18
16:33
Слава Богу не "Крутил"...
В связке с Ростовом, Маней, напарником....
:))))))))))))))))))))))))))))))))))))))))
18 dezss
 
30.11.18
16:34
(17) интересно посмотреть на все значения этого перечисления...
19 Масянька
 
30.11.18
16:35
(18) Не надо... :))))))))))))))))))))))))
20 youalex
 
30.11.18
16:37
Ростов="%Ростов%";

https://www.youtube.com/watch?v=cBWY2SMjL80
21 Гипервизор
 
30.11.18
16:39
Тема с четким статусом уже была Добавление строк в ТЧ
22 hhhh
 
30.11.18
16:41
(13) уже обсуждали этот запрос пару лет назад. Кто-то кого-то вешал и так далее. Бессмкртный запрос какой-то.
23 Масянька
 
30.11.18
16:42
(22) Это было несколько месяцев назад. (см. (21)).
И там был еще Вася...
24 prilforreal
 
30.11.18
16:58
Веселое начало выходных=D
25 prilforreal
 
30.11.18
16:58
(2) Это же условие на помеченый на удаление элемент...
26 andreymongol82
 
30.11.18
17:02
(25) ничего себе. Даже не знал про такой способ. Век живи - век учись
27 ZDenis
 
30.11.18
17:07
(25) А если еще появятся удаленные, через "И" пропишешь?
28 ZDenis
 
30.11.18
17:08
+ 27 ааа понял, ользователи.Ответственный.Родитель.Код <> 3930 - этот тоже удален
29 Numerus Mikhail
 
30.11.18
17:10
(28) Нельзя родителей удалять, это святое
30 andreymongol82
 
30.11.18
17:13
(29) Удалять нельзя, а вот пометку удаления... Если сильно разосрался с ними )
31 dezss
 
30.11.18
17:21
Ужас...напарника пометили на удаление?
А он знает или это повешенный?
32 andreymongol82
 
30.11.18
17:23
(31) Блиииин. Если пометка на удаление = вешать, то беру обратно свои слова в (30).
33 hhhh
 
30.11.18
17:24
(31) там в соседней строчке и основного тоже пометили.

но самое основное - это

    И Пользователи.Ответственный.Наименование <> 0
34 dezss
 
30.11.18
17:26
эх...тяпница удалась...спасибо этому ТС и остальным двум с дошираком и циклом)))
35 lodger
 
30.11.18
17:39
(34) а как же уф файловая бд и 100 мбит?
36 lodger
 
30.11.18
17:41
(0) перепишите запрос заново. берете консоль и экспериментируете.
пользуйтесь встроенными флагами пометки на удаление, например.
в связях галочки туда-сюда попереставляйте.
37 GANR
 
30.11.18
17:49
(0) Естественно Пользователи.Ответственный.Напарник.Код <> 11 при пустом напарнике вернет ЛОЖЬ. Растолковать надо?
38 prilforreal
 
03.12.18
08:18
(28) Это бывшие сотрудники)))
39 hhhh
 
03.12.18
08:26
(38) И ЕСТЬNULL(Пользователи.Ответственный.Напарник.Код, 0) <> 11