Имя: Пароль:
1C
1С v8
Ожидается выражение ")" при открытии запроса
,
0 dimidoff
 
21.10.16
07:05
вот сам запрос. не могу разобраться где не хвататет ")"
///
Запрос = Новый Запрос;
    //
    //Запрос.УстановитьПараметр("группа", СсылкаНаГруппу);
    //
    Запрос.УстановитьПараметр("Склад",                 СписокСкладов);
    Запрос.УстановитьПараметр("МОЛ",                  ДокИнвентаризация.ОтветственноеЛицо);
    Запрос.УстановитьПараметр("КонецПериода",          ДокИнвентаризация.Дата);
    Запрос.УстановитьПараметр("Организация",         ДокИнвентаризация.Организация);
    Запрос.УстановитьПараметр("ВидСубконто",         ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
    Запрос.УстановитьПараметр("ПорядокСубконтоК",     ПорядокСубконтоК);
    Запрос.УстановитьПараметр("ПорядокСубконтоС",     ПорядокСубконтоС);
    Запрос.УстановитьПараметр("ПорядокСубконтоМОЛ",     ПорядокСубконтоМОЛ);
    Запрос.УстановитьПараметр("ИсклСчета",              МассивИсклСчетов);
    ТекстЗапросаИнвентаризация = "
    |ВЫБРАТЬ
    |    ХозрасчетныйОстатки.Счет              КАК Счет,
    |    ХозрасчетныйОстатки.Счет.Порядок      КАК Порядок,
    |    ХозрасчетныйОстатки.Субконто1         КАК Номенклатура,
    |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
    |    ХозрасчетныйОстаткиС.СуммаОстаток              КАК СуммаВсего,
    |    ХозрасчетныйОстаткиС.КоличествоОстаток         КАК КоличествоВсего,
    |    ХозрасчетныйОстатки.КоличествоОстаток КАК Количество
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &ПорядокСубконтоК, Организация В (&Организация) " + ТекстУсловияК + ") КАК ХозрасчетныйОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &ПорядокСубконтоС, Организация В (&Организация) " + ТекстУсловияС + ") КАК ХозрасчетныйОстаткиС
    |        ПО ХозрасчетныйОстатки.Счет = ХозрасчетныйОстаткиС.Счет    И ХозрасчетныйОстатки.Субконто1 = ХозрасчетныйОстаткиС.Субконто1  
    |";
    
    Если (НЕ ЗначениеЗаполнено(ДокИнвентаризация.Склад)) И (ЗначениеЗаполнено(ДокИнвентаризация.ОтветственноеЛицо)) Тогда
        ТекстЗапросаИнвентаризация = ТекстЗапросаИнвентаризация + "
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Счет,
        |    ХозрасчетныйОстатки.Счет.Порядок,
        |    ХозрасчетныйОстатки.Субконто1,
        |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения,
        |    ХозрасчетныйОстатки.СуммаОстаток,
        |    ХозрасчетныйОстатки.КоличествоОстаток,
        |    ХозрасчетныйОстатки.КоличествоОстаток
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &ПорядокСубконтоМОЛ, Организация В (&Организация) И Субконто2 В (&МОЛ)) КАК ХозрасчетныйОстатки
        |
        |ГДЕ
        |  НЕ (ХозрасчетныйОстатки.Счет В ИЕРАРХИИ (&ИсклСчета))
        |";
    КонецЕсли;
    ТекстЗапросаИнвентаризация = ТекстЗапросаИнвентаризация + "
    |
    |УПОРЯДОЧИТЬ ПО
    |    Порядок";
    
    Запрос.Текст =ТекстЗапросаИнвентаризация;
1 BuHu
 
21.10.16
07:38
(0) что в "ТекстУсловияК" ? конструктор запроса как может прочитать что ты там в эту переменную передаешь?
2 BuHu
 
21.10.16
07:39
(0) попробуй убери " + ТекстУсловияК + " и "+ТекстУсловияС + "
3 dmpl
 
21.10.16
07:44
(0) Отладчиком смотри реальный текст запроса, который пытаешься выполнить.
4 FIXXXL
 
21.10.16
09:26
(0) такое конструктором не открывается
5 dimidoff
 
24.10.16
15:26
(2) да, убрал и все открылось. спс!
6 МихаилМ
 
24.10.16
17:13
(0)
с таким запросом на мс скл можно получить
ошибку Intra-query parallelism  deadlock
7 LeReve
 
24.10.16
17:41
Давно волнует вопрос: почему нельзя сразу написать "Запрос.Текст =" ? Нет надо сначала загнать в переменную, потом уже присвоить эту переменную.. Смысл?
8 Torquader
 
24.10.16
22:23
(7) Сначала "навалил кучу" из кусков запроса в переменную, а потом засовываешь её в объект, так как Запрос.Текст=Запрос.Текст+лстрХвостЗапроса работает медленнее, если лстрТекст=лстрТекст+лстрХвостЗапроса, хотя, есть и ещё более быстрые варианты через ТекстовыйДокумент.
9 LeReve
 
25.10.16
09:34
(8) Вот именно что в итоге получается куча. Вообще по рукам надо давать за: Запрос.Текст=Запрос.Текст+лстрХвостЗапроса
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший