Имя: Пароль:
1C
1С v8
Не выполняется запрос
0 berendej
 
14.11.13
14:11
Столкнулся с такой проблемой при выполнении запроса - если поле не заполнено(контактная информация-телефон), он не говорит что оно null, а при выполнении запроса просто пишет - ошибка чтения значения. Физ лицо точно есть. По идеи он должен выводить само физ лицо и ссылку на несуществующий объект, т.к. соединение то левое ставлю по физику, но нифига)
ЗапросПоФизЛицам.Текст =      "ВЫБРАТЬ
                                  |    ФизическиеЛица.Ссылка,
                                  |    ЕСТЬNULL(ВЫРАЗИТЬ(РабочийТелефон.Представление КАК СТРОКА(100)), """") КАК РабочийТелефон
                                  |ИЗ
                                  |    Справочник.ФизическиеЛица КАК ФизическиеЛица
                                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК РабочийТелефон
                                  |        ПО ФизическиеЛица.Ссылка = РабочийТелефон.Объект
                                  |ГДЕ
                                  |    ФизическиеЛица.Ссылка В(&ТЗФизлица)
                                  |    И РабочийТелефон.Вид = &РабочийТелефон";
1 Wobland
 
14.11.13
14:13
а говоришь, не выполняется
2 GROOVY
 
14.11.13
14:13
RLS?
3 berendej
 
14.11.13
14:45
(1) Так запрос ничего не выводит, если не заполнено поле служебного телефона. В консоли запросов вообще пусто.
(2) Делаю под админом с полными правами
4 Wobland
 
14.11.13
14:45
давай сюда свою ошибку
5 Classic
 
14.11.13
14:47
У тебя здесь не левое соединение
6 CrazyBear
 
14.11.13
14:47
Вот это условие может резать

И РабочийТелефон.Вид = &РабочийТелефон
7 berendej
 
14.11.13
14:47
(4) Ошибки никакой нет - если в консоли запрос запускать, то он просто ничего не выводит, если отладчиком, то он в самом начале цикла Выборка.След() просто мимо идет и количество записей 0 в выборке
8 Classic
 
14.11.13
14:48
(7)
Ошибка есть

Вот это
И РабочийТелефон.Вид = &РабочийТелефон

Надо поставить в условие ПО
9 berendej
 
14.11.13
14:48
(5) почему не левое? Для заданных физиков вывести служебный и мобильный телефон
10 Classic
 
14.11.13
14:49
(9)
ПОтому что сначало отрабатывается левое соединение, а потом условие ГДЕ режет все нулы. В результате получается внутреннее
11 CrazyBear
 
14.11.13
14:49
+(6) с начала отрабатывает ПО (связь), а потом ГДЕ
12 berendej
 
14.11.13
14:52
получается, если поле служебного телефона не задано, он не выводит пустое значение просто? А как мне тогда сделать, чтобы выводил, если даже нет служебного телефона?
13 Classic
 
14.11.13
15:00
(12)
см. (8)
14 berendej
 
14.11.13
15:01
(8),(10),(11)ээээээ, догнал о чем речь) спасибо, чувствую долго бы еще втыкал