|
баг или фича платформы? |
☑ |
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
|
А ты проверь, чтоб не гадать :)
|
|