Имя: Пароль:
1C
1С v8
Не работает запрос через COM соединение
,
0 komanch75
 
02.06.14
13:51
Подключаюсь из одной базы к другой и хочу выбрать данные запросом. Смотрю отладчиком, подключение происходит. Запрос создал в консоли запросов в той базе, к которой подключаюсь. В консоли запрос работает.
Но при подключении и попытке выполнить этот запрос, выдает такую ошибку:
        Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.4.437): {(42, 1)}: Ожидается выражение ")"
<<?>>;

Попробовал заменить текст запроса другим, маленьким. Все работает. А с нужным текстом запроса - ошибка, хотя в консоли все работает.
Вроде и понимаю, что значит с текстом запроса что-то не то, но что это может быть, раз в консоли работает? Запрос возвращает только строки и числа.
Подскажите умную мысль.
1 Галахад
 
гуру
02.06.14
13:55
Отвлечься надо.
2 Segate
 
02.06.14
13:59
(0)Вангую, что не проставлены какие-то параметры в скобках в запросе... кинь текст запроса, который крашится
3 komanch75
 
02.06.14
14:02
Параметров в запросе вообще нет. Он длинный и из нетиповой конфы. Вот, если поможет:

ВЫБРАТЬ
    ВложенныйЗапрос1.Дом,
    ВложенныйЗапрос1.Счетчик КАК Счетчик,
    ВложенныйЗапрос1.Ссылка
ПОМЕСТИТЬ КолвоКвартирВМнКвДомах
ИЗ
    (ВЫБРАТЬ
        ВложенныйЗапрос.Дом КАК Дом,
        СУММА(ВложенныйЗапрос.Счетчик) КАК Счетчик,
        Лоты.Ссылка КАК Ссылка
    ИЗ
        (ВЫБРАТЬ
            ПОДСТРОКА(Лоты.Код, 1, 11) КАК Дом,
            ПОДСТРОКА(Лоты.Код, 13, 2) КАК Кв,
            1 КАК Счетчик
        ИЗ
            Справочник.Лоты КАК Лоты
        ГДЕ
            ПОДСТРОКА(Лоты.Код, 13, 2) <> "") КАК ВложенныйЗапрос
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Лоты КАК Лоты
            ПО ВложенныйЗапрос.Дом = Лоты.Код
    
    СГРУППИРОВАТЬ ПО
        ВложенныйЗапрос.Дом,
        Лоты.Ссылка) КАК ВложенныйЗапрос1
ГДЕ
    ВложенныйЗапрос1.Счетчик <> 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Лоты.Ссылка КАК Лот,
    КолвоКвартирВМнКвДомах.Счетчик КАК КолвоКвартир
ПОМЕСТИТЬ КвартирыВМнКвДомахСКолвомКвартир
ИЗ
    Справочник.Лоты КАК Лоты
        ЛЕВОЕ СОЕДИНЕНИЕ КолвоКвартирВМнКвДомах КАК КолвоКвартирВМнКвДомах
        ПО (ПОДСТРОКА(Лоты.Код, 1, 11) = КолвоКвартирВМнКвДомах.Дом)
ГДЕ
    ПОДСТРОКА(Лоты.Код, 13, 2) <> ""
    И КолвоКвартирВМнКвДомах.Счетчик <> 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Ссылка,
    ВложенныйЗапрос.Дом
ПОМЕСТИТЬ БезквартирныеДома
ИЗ
    (ВЫБРАТЬ
        Лоты.Ссылка КАК Ссылка,
        КолвоКвартирВМнКвДомах.Дом КАК Дом
    ИЗ
        Справочник.Лоты КАК Лоты
            ЛЕВОЕ СОЕДИНЕНИЕ КолвоКвартирВМнКвДомах КАК КолвоКвартирВМнКвДомах
            ПО (ПОДСТРОКА(Лоты.Код, 1, 11) = КолвоКвартирВМнКвДомах.Дом)) КАК ВложенныйЗапрос
ГДЕ
    ВложенныйЗапрос.Дом ЕСТЬ NULL
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КвартирыВМнКвДомахСКолвомКвартир.Лот,
    КвартирыВМнКвДомахСКолвомКвартир.КолвоКвартир КАК СколькиКвартирныйДом
ПОМЕСТИТЬ ВсеЛотыСКолвомКвартир
ИЗ
    КвартирыВМнКвДомахСКолвомКвартир КАК КвартирыВМнКвДомахСКолвомКвартир

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    БезквартирныеДома.Ссылка,
    1
ИЗ
    БезквартирныеДома КАК БезквартирныеДома
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВсеЛотыСКолвомКвартир.Лот.Код,
    ВсеЛотыСКолвомКвартир.СколькиКвартирныйДом,
    ПОДСТРОКА(ВсеЛотыСКолвомКвартир.Лот.Код, 1, 3) КАК СО,
    ПОДСТРОКА(ВсеЛотыСКолвомКвартир.Лот.Код, 5, 3) КАК ПК,
    1 / ВсеЛотыСКолвомКвартир.СколькиКвартирныйДом КАК Штук,
    1 КАК Юнитов,
    ВсеЛотыСКолвомКвартир.Лот.ПроектнаяПлощадь КАК ПроектнаяПлощадьДомов,
    ВсеЛотыСКолвомКвартир.Лот.ПлощадьПридомовогоУчастка КАК ПлощадьПридомовыхУчастков
ИЗ
    ВсеЛотыСКолвомКвартир КАК ВсеЛотыСКолвомКвартир
ИТОГИ
    СУММА(Штук),
    СУММА(Юнитов),
    СУММА(ПроектнаяПлощадьДомов),
    СУММА(ПлощадьПридомовыхУчастков)
ПО
    ОБЩИЕ,
    СО,
    ПК
4 Галахад
 
гуру
02.06.14
14:08
Скорее всего, надо смотреть не сам запрос, а его оформление.
5 komanch75
 
02.06.14
14:09
А ну еще значения NULL запрос возвращает в строках с итогами. Может быть из-за этого? Думаю вряд-ли
6 Segate
 
02.06.14
14:13
Там может быть хрень с пропущеными запятыми в методах... Com соединение не понимает упразднения такого рода
7 komanch75
 
02.06.14
14:13
Когда пытаюсь открыть конструктором запроса в той конфигурации из которой подключаюсь, он должен заругаться, что таких таблиц нет в конфигурации. А он мне сейчас выдал: Ожидается выражение ")".
И поместил курсор после вот этого куска
    |ВЫБРАТЬ
    |    Лоты.Ссылка КАК Лот,
    |    КолвоКвартирВМнКвДомах.Счетчик КАК КолвоКвартир
    |ПОМЕСТИТЬ КвартирыВМнКвДомахСКолвомКвартир
    |ИЗ
    |    Справочник.Лоты КАК Лоты
    |        ЛЕВОЕ СОЕДИНЕНИЕ КолвоКвартирВМнКвДомах КАК КолвоКвартирВМнКвДомах
    |        ПО (ПОДСТРОКА(Лоты.Код, 1, 11) = КолвоКвартирВМнКвДомах.Дом)
    |ГДЕ
    |    ПОДСТРОКА(Лоты.Код, 13, 2) <> ""
    |    И КолвоКвартирВМнКвДомах.Счетчик <> 0
    |;
8 Banned
 
02.06.14
14:14
ПОДСТРОКА(Лоты.Код, 13, 2) <> """"
9 komanch75
 
02.06.14
14:21
Действительно, заменил в двух местах "" на """" и ошибка ушла. Огромное всем спасибо! Я бы долго еще думал.
10 komanch75
 
02.06.14
14:22
(8) Спасибо!!!
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.