Имя: Пароль:
1C
 
баг или фича платформы?
0 Cumpuciy
 
23.12.15
16:44
Один и тот же запрос к справочнику с иерархией элементов, на 8.3.7.1790 и 8.2.19.76 даёт разный результат.
текст:
"ВЫБРАТЬ
        ПодразделенияОрганизаций.Ссылка,
        ПодразделенияОрганизаций.Код,     
        ЕСТЬNULL(ПодразделенияОрганизаций.Родитель.Код, """") КАК РодительКод
    ИЗ
        Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций"
в 8.2.19.76 пустой РодительКод = ""
а в 8.3.7.1790 пустой РодительКод = "        " где число пробелов равно длине кода.
что-то я в замешательстве.
1 Cumpuciy
 
23.12.15
16:45
на обеих платформах режим совместимости с 8.2.13
2 Lama12
 
23.12.15
16:55
(0) Сама база одна?
3 Lama12
 
23.12.15
16:56
ИМХО. 8.3.7.1790 более правильный результат дает. Ибо NULL там нету.
4 Cyberhawk
 
23.12.15
16:57
Лучше такое поле в запрос добавь:
ПодразделенияОрганизаций.Родитель.Код есть null КАК ЭтоNull
5 Cumpuciy
 
23.12.15
17:07
(3) да, базы - копии.
(4) ПодразделенияОрганизаций.Родитель.Код есть null КАК ЭтоNull да, считает что они NULL

При этом на новой платформе поле ЕСТЬNULL(ПодразделенияОрганизаций.Родитель.Код, ""test"") КАК РодительКод
возвращает "test     "
6 Lama12
 
23.12.15
17:13
(5) А вот с этим, я бы в 1С письмо написал.
7 Cyberhawk
 
23.12.15
17:18
На 8.3.7.1805 проверил - то же самое (добавляются пробелы)
8 Cyberhawk
 
23.12.15
18:04
Это фича, ибо в СП к "Функция ЕСТЬNULL":
Второй параметр будет преобразован к типу первого в случае, если тип первого параметра является строкой или числом
9 Cyberhawk
 
23.12.15
18:17
Выходит, в 8.2 поведение было более ошибочно, чем теперь (теперь квалификаторы строки учитываются)
10 mehfk
 
23.12.15
18:22
(9) Это лишний CAST, нафиг не нужный.
11 Cyberhawk
 
23.12.15
20:11
(10) Что-то мне подсказывает, что приведение типов значений колонки результата запроса к минимально необходимому выполняется на стороне сервера 1С (т.е. после получения результата запроса от СУБД)
12 mehfk
 
23.12.15
20:13
А ты проверь, чтоб не гадать :)
Ошибка? Это не ошибка, это системная функция.