Имя: Пароль:
1C
1С v8
Не работает преобразование ЕстьNULL
0 SherifSP
 
05.03.13
17:24
Написал запрос в консоле, хочу преобразовать поле Документ в пустую строку, но чет не хочет и все.
ЕстьNULL(МаршрутныйЛистЭкспедитораРасходныеНакладные.РасходнаяНакладная,"") КАК Документ
1 Reset
 
05.03.13
17:26
Обнаружена ошибка. { Консоль не хочет преобразовывать Документ в пустую строку в строке (1)}
2 rs_trade
 
05.03.13
17:27
(0) Значит там не нулл
3 Megas
 
05.03.13
17:28
(0) Null <> ПустаяССлыка
4 palpetrovich
 
05.03.13
17:29
проверяй номер документа
5 Megas
 
05.03.13
17:29
(3) Даже не так

РасходнаяНакладная.ПустаяСсылка() Есть Null  = Ложь
6 Fragster
 
гуру
05.03.13
17:29
МаршрутныйЛистЭкспедитораРасходныеНакладные.РасходнаяНакладная.Ссылка
7 SherifSP
 
05.03.13
17:30
Да я на ЗначениеЗаполнено() проверяю
8 palpetrovich
 
05.03.13
17:31
+4 через  ВЫБОР КОГДА
9 Reset
 
05.03.13
17:31
(7) :)
10 Reset
 
05.03.13
17:32
Текст запроса то будет?)
11 GANR
 
05.03.13
17:36
(0) ЧТО возвращает операция isnull ?
12 SherifSP
 
05.03.13
17:36
(10)

ВЫБРАТЬ
   МаршрутныйЛистЭкспедитораМаршрут.Ссылка,
   МаршрутныйЛистЭкспедитораМаршрут.НомерСтроки КАК НомерСтроки,
   МаршрутныйЛистЭкспедитораМаршрут.Контрагент,
   МаршрутныйЛистЭкспедитораМаршрут.ТорговаяТочка КАК ТорговаяТочка,
   МаршрутныйЛистЭкспедитораМаршрут.Комментарий,
   МаршрутныйЛистЭкспедитораМаршрут.ПорядокПосещения КАК ПорядокПосещения,
   ДокументыМаршрута.НомерСтроки КАК НомерСтрокиДокументов,
   ЕстьNULL(ДокументыМаршрута.РасходнаяНакладная,"") КАК Документ,
   ДокументыМаршрута.Сумма КАК Сумма,
   ДокументыМаршрута.Тоннаж КАК Тоннаж,
   ДокументыМаршрута.ПорядокПосещения КАК ПорядокПосещенияДокументов
ИЗ
   Документ.МаршрутныйЛистЭкспедитора.Маршрут КАК МаршрутныйЛистЭкспедитораМаршрут
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           МаршрутныйЛистЭкспедитораРасходныеНакладные.Ссылка КАК Ссылка,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.НомерСтроки КАК НомерСтроки,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.ТорговаяТочка КАК ТорговаяТочка,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.ТорговаяТочка.Владелец КАК Контрагент,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.РасходнаяНакладная КАК РасходнаяНакладная,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.Сумма КАК Сумма,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.Тоннаж КАК Тоннаж,
           МаршрутныйЛистЭкспедитораРасходныеНакладные.ПорядокПосещения КАК ПорядокПосещения
       ИЗ
           Документ.МаршрутныйЛистЭкспедитора.РасходныеНакладные КАК МаршрутныйЛистЭкспедитораРасходныеНакладные
       ГДЕ
           МаршрутныйЛистЭкспедитораРасходныеНакладные.Ссылка = &Ссылка
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.Ссылка,
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.НомерСтроки,
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.ТорговаяТочка,
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.Контрагент,
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.ВозвратнаяНакладная,
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.Сумма,
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.Тоннаж,
           0
       ИЗ
           Документ.МаршрутныйЛистЭкспедитора.ВозвратныеНакладные КАК МаршрутныйЛистЭкспедитораВозвратныеНакладные
       ГДЕ
           МаршрутныйЛистЭкспедитораВозвратныеНакладные.Ссылка = &Ссылка) КАК ДокументыМаршрута
       ПО МаршрутныйЛистЭкспедитораМаршрут.Ссылка = ДокументыМаршрута.Ссылка
           И МаршрутныйЛистЭкспедитораМаршрут.ТорговаяТочка = ДокументыМаршрута.ТорговаяТочка
ГДЕ
   МаршрутныйЛистЭкспедитораМаршрут.Ссылка = &Ссылка

УПОРЯДОЧИТЬ ПО
   НомерСтроки,
   ПорядокПосещенияДокументов
ИТОГИ
   СУММА(Сумма),
   СУММА(Тоннаж)
ПО
   ТорговаяТочка
13 Reset
 
05.03.13
17:39
(12) Ну логично, оно там никогда не NULL
14 and2
 
05.03.13
17:39
это ж реквизит документа. с какого бодуна он нулл?
15 Reset
 
05.03.13
17:40
В каком случае тебе нужно "преобразовывать в пустую строку"? И зачем?
16 and2
 
05.03.13
17:40
(3) +100
17 GANR
 
05.03.13
17:46
(13) (14) ДокументыМаршрута - таблица присоединяемая справа при левом соединении, если в ней нет записи по условию, то NULL, возможен. (12) Консоль запросов / отладчик с РезультатЗапроса.Выгрузить() что показывает если ЕстьNULL(ДокументыМаршрута.РасходнаяНакладная,"") заменить на ДокументыМаршрута.РасходнаяНакладная?
18 Reset
 
05.03.13
17:52
(17) Действительно. Проглядел "И ТорговаяТочка"
19 Reset
 
05.03.13
17:53
*в соединении
20 GANR
 
05.03.13
17:54
(12) Ж д е м  ответа на вопрос в (17).
21 SherifSP
 
05.03.13
18:42
Да я уже все сделал просто интересно было бы реализовать в самом запросе)
22 SherifSP
 
05.03.13
18:43
(17) NULL
23 Reset
 
05.03.13
18:44
Я так понял, что ЕСТЬNULL работает хорошо, а Шерифу не понравились NULLы изза Итогов
24 GANR
 
05.03.13
18:46
(22) Так-так... А ЕстьNULL(ДокументыМаршрута.РасходнаяНакладная,""), случайно не... пробел возвращает ???
(23) Итоги по всем полям, кроме тех Сумма, Тоннаж и ТорговаяТочка будут NULL
25 GANR
 
05.03.13
18:51
ИТОГИ
   СУММА(Сумма),
   СУММА(Тоннаж),
   МАКСИМУМ(РасходнаяНакладная)
ПО
   ТорговаяТочка

уберет NULL по расходникам из итогов
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший