Имя: Пароль:
1C
1С v8
Условие в запросе с выражением Выбор
0 AnisaL
 
18.02.14
09:57
Добрый день!
Можно условие выбор написать в условии "где" в запросе? Если да, то как правильно написать?

ГДЕ (ВЫБОР
        КОГДА СотрудникиСрезПоследних.СтруктурнаяЕдиница ЕСТЬ NULL
                ИЛИ СотрудникиСрезПоследних.СтруктурнаяЕдиница = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)
            ТОГДА ЛОЖЬ
        ИНАЧЕ ИСТИНА
    КОНЕЦ КАК Работает) = ИСТИНА
1 Vyachelsv
 
18.02.14
09:58
да
2 AnisaL
 
18.02.14
09:58
(0) смысл этого условия выбрать только работающих сотрудников
3 Wobland
 
18.02.14
09:58
"КАК Работает" в пекло
4 Vyachelsv
 
18.02.14
09:58
ВЫБОР
        КОГДА СотрудникиСрезПоследних.СтруктурнаяЕдиница ЕСТЬ NULL
                ИЛИ СотрудникиСрезПоследних.СтруктурнаяЕдиница = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)
            ТОГДА ЛОЖЬ
        ИНАЧЕ ИСТИНА
    КОНЕЦ
5 AnisaL
 
18.02.14
09:58
(1) выдает ошибку так, как написать тогда?
6 AnisaL
 
18.02.14
10:00
(3) все понятно, спасибо! убрала "как работает"
7 1Сергей
 
18.02.14
10:01
(6) ну, и с истиной сравнивать не обязательно
8 Wobland
 
18.02.14
10:02
ГДЕ НЕ (есть NULL ИЛИ пустая)
ГДЕ не есть NULL И пустая
9 1Сергей
 
18.02.14
10:04
(8) с выбором тормознутее будет?
10 AnisaL
 
18.02.14
10:05
(7) ага, убрала
11 Wobland
 
18.02.14
10:05
(9) ну.. по идее будет вычисляться истина или ложь лишний раз, наверное ;)
12 1Сергей
 
18.02.14
10:06
(10) обрати внимание на (8). Не нужен тебе выбор. Используй НЕ и ИЛИ
13 SeraFim
 
18.02.14
10:06
+(8) Тоже немножко выпендрюсь:
wiki:Законы_де_Моргана
14 Wobland
 
18.02.14
10:07
продолжаем выпендрёж
ГДЕ естьNULL(СЕ, ПустаяСЕ)<>ПустаяСЕ
15 Ненавижу 1С
 
гуру
18.02.14
10:08
NULL приходится отличать от пустых ссылок
это 1С детка ))
16 SeraFim
 
18.02.14
10:08
(14)победил(
17 1Сергей
 
18.02.14
10:09
(15) судя по (0) она это прекрасно понимает
18 Vyachelsv
 
18.02.14
10:09
(14) Давайте по нормальному напишем она ведь только учится:

Где ЕстьNull(СотрудникиСрезПоследних.СтруктурнаяЕдиница,ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка))<>ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)
19 Ненавижу 1С
 
гуру
18.02.14
10:10
(17) я не против, я констатирую эту глупость платформы
20 AnisaL
 
18.02.14
10:10
Вот что получилось:
ГДЕ  НЕ (СотрудникиСрезПоследних.СтруктурнаяЕдиница ЕСТЬ NULL ИЛИ СотрудникиСрезПоследних.СтруктурнаяЕдиница = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка))
21 Ненавижу 1С
 
гуру
18.02.14
10:11
(20) в (14) по красивее
22 AnisaL
 
18.02.14
10:11
(21) надо попробовать
23 AnisaL
 
18.02.14
10:14
(18) вот так получилось
ГДЕ ЕстьNULL(СотрудникиСрезПоследних.СтруктурнаяЕдиница, ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка))<>ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)
24 1Сергей
 
18.02.14
10:15
Два раза ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка), имхо тормоза. Могу сильно ошибаться
25 AnisaL
 
18.02.14
10:17
(24) ну тогда в (20)
26 SeraFim
 
18.02.14
10:23
(24)чтоб наверняка :D
ГДЕ ЕстьNULL(СотрудникиСрезПоследних.СтруктурнаяЕдиница, &ПустаяСтруктурнаяЕдиница) <> &ПустаяСтруктурнаяЕдиница
27 1Сергей
 
18.02.14
10:23
(26) а вот это 100% будет тормознутее, даже в сравнении с (23)
28 Wobland
 
18.02.14
10:24
(24) а не превратится ли это в 0x000000000 на уровне СУБД?
29 mehfk
 
18.02.14
10:24
(0) У работающих сотрудников дата увольнения не заполнена. Лучше от этого исходить.
30 AnisaL
 
18.02.14
10:27
(29) в этом регистре по сотрудникам нет даты увольнения
31 mehfk
 
18.02.14
10:28
Вестимо, дата приема и увольнения есть в справочнике сотрудники.
32 AnisaL
 
18.02.14
10:32
(31) Тоже нет - у нас УНФ + СРМ 8.3, в справочнике сотрудники кроме физ лица нет никакой информации
33 mehfk
 
18.02.14
10:33
(32) Понял, отстал.
AdBlock убивает бесплатный контент. 1Сергей