Имя: Пароль:
1C
1С v8
Ошибка SDBL в 1С 8.3.8.2088
0 alex1974
 
22.09.16
13:54
После перехода со стабильной 8.3.6 на 8.3.8.2088 (требования обновления 1С бухгалтерии) Получил странное поведение запроса:

Есть простенький работающий запрос.
Если поместить его в подзапрос, например вот так:

ВЫБРАТЬ
*
ИЗ
(
наш_запрос
) КАК Подзапрос

получаем вот такое:

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
по причине:
Ошибка SDBL:
Отсутствует псевдоним поля '0'


Куда копать? Может, кто нарывался?
1 Барматолог
 
22.09.16
13:59
(0) база файловая?
2 alex1974
 
22.09.16
14:01
база на MS SQL
3 alex1974
 
22.09.16
14:11
Путем отладки накопал вот что.

Наш успешно отрабатывавший в 8.3.6 подзапрос выглядит так:


ВЫБРАТЬ
    ВЫБОР
      КОГДА &ЭтоКомплектация
    ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
КОНЕЦ КАК ВидДвижения

Переменная объявляется в параметрах запроса и имеет тип Булево.

В 8.3.8 конструкция работает только при сравнении в явном виде:
ВЫБРАТЬ
    ВЫБОР
      КОГДА &ЭтоКомплектация = ИСТИНА
    ТОГДА ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
    ИНАЧЕ ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
КОНЕЦ КАК ВидДвижения


Что любопытно, конструкция "ГДЕ &ЭтоКомплектация" работает как и раньше.
Писакам из 1С - пламенный привет.
4 Cyberhawk
 
22.09.16
14:21
(3) Это не баг, это фича
5 alex1974
 
22.09.16
14:32
(4) я уверен, что это ошибка в трансляции запроса

иначе не работало бы всегда, на только при помещении в подзапрос
6 Cyberhawk
 
22.09.16
14:38
(5) Профайлером сравни тексты SQL-запросов