Имя: Пароль:
1C
1С v8
Динамический запрос. ошибка конструкции ПО
0 zladenuw
 
11.03.13
17:19
Для каждого ПараметрФормулы из ПараметрыФормулы Цикл
       Если ПараметрыФормулы.Индекс(ПараметрФормулы) = 0 Тогда
           ТекстСоединениеПараметры = " ПО ";
           Продолжить;
       КонецЕсли;    
        ТекстСоединениеПараметры = ТекстСоединениеПараметры +"
                          |    "+ПараметрыФормулы[0].ПараметрИмя+".Месяц="+ПараметрФормулы.ПараметрИмя+".Месяц
                          |    И "+ПараметрыФормулы[0].ПараметрИмя+".Год="+ПараметрФормулы.ПараметрИмя+".Год
                          |    И "+ПараметрыФормулы[0].ПараметрИмя+".КварталКв="+ПараметрФормулы.ПараметрИмя+".КварталКв";
   КонецЦикла;        

Такое же условие добавлю в конструкторе запроса. в получившемся запросе все ок. что не так ?
1 regniws
 
11.03.13
17:20
а что мешает посмотреть показать текст результирующего запроса, а не это
2 ДенисЧ
 
11.03.13
17:20
покажи запрос получившийся...
3 zladenuw
 
11.03.13
17:21
ВЫБРАТЬ
   ВЫБОР
       КОГДА СУММА(a.Первонач) > 0
               И СУММА(b.Первонач) > 0
           ТОГДА СУММА(a.Первонач) / СУММА(b.Первонач) * 100
       ИНАЧЕ 0
   КОНЕЦ КАК Первонач,
   ВЫБОР
       КОГДА СУММА(a.Первонач) > 0
               И СУММА(b.Коррект) > 0
           ТОГДА СУММА(a.Коррект) / СУММА(b.Коррект) * 100
       ИНАЧЕ 0
   КОНЕЦ КАК Коррект,
   ВЫБОР
       КОГДА СУММА(a.Первонач) > 0
               И СУММА(b.Отклонение) > 0
           ТОГДА СУММА(a.Отклонение) / СУММА(b.Отклонение) * 100
       ИНАЧЕ 0
   КОНЕЦ КАК Отклонение,
   ВЫБОР
       КОГДА СУММА(a.Первонач) > 0
               И СУММА(b.Окончательно) > 0
           ТОГДА СУММА(a.Окончательно) / СУММА(b.Окончательно) * 100
       ИНАЧЕ 0
   КОНЕЦ КАК Окончательно
ИЗ
   (ВЫБРАТЬ
       a.Месяц КАК Месяц,
       a.Год КАК Год,
       a.КварталКв КАК КварталКв,
       СУММА(ЕСТЬNULL(a.Первонач, 0)) КАК Первонач,
       СУММА(ЕСТЬNULL(a.Коррект, 0)) КАК Коррект,
       СУММА(ЕСТЬNULL(a.Отклонение, 0)) КАК Отклонение,
       СУММА(ЕСТЬNULL(a.Окончательно, 0)) КАК Окончательно
   ИЗ
       (ВЫБРАТЬ
           СУММА(ВЫБОР
                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                   ИНАЧЕ 0
               КОНЕЦ) КАК Первонач,
           СУММА(ВЫБОР
                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                   ИНАЧЕ 0
               КОНЕЦ) КАК Коррект,
           ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц КАК Месяц,
           ПланированиеБюджетаДоходыРасходы.Ссылка.Год КАК Год,
           ВЫБОР
               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 1
                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 3
                   ТОГДА "1 квартал"
               ИНАЧЕ ВЫБОР
                       КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 4
                               И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 6
                           ТОГДА "2 квартал"
                       ИНАЧЕ ВЫБОР
                               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 7
                                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 9
                                   ТОГДА "3 квартал"
                               ИНАЧЕ "4 квартал"
                           КОНЕЦ
                   КОНЕЦ
           КОНЕЦ КАК КварталКв,
           ВложенныйЗапрос.BIP_Статья КАК BIP_Статья,
           СУММА(ВЫБОР
                   КОГДА ЕСТЬNULL(ПланированиеБюджетаОтклонения.Месяц, 0) = ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц
                       ТОГДА ВЫБОР
                               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                                   ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                               ИНАЧЕ 0
                           КОНЕЦ - ВЫБОР
                               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                                   ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                               ИНАЧЕ 0
                           КОНЕЦ
                   ИНАЧЕ 0
               КОНЕЦ) КАК Отклонение,
           СУММА(ВЫБОР
                   КОГДА ЕСТЬNULL(ПланированиеБюджетаОтклонения.Месяц, 0) = ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц
                       ТОГДА ВЫБОР
                               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                                   ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                               ИНАЧЕ 0
                           КОНЕЦ - ВЫБОР
                               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                                   ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                               ИНАЧЕ 0
                           КОНЕЦ
                   ИНАЧЕ 0
               КОНЕЦ + ВЫБОР
                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                   ИНАЧЕ 0
               КОНЕЦ) КАК Окончательно
       ИЗ
           Документ.ПланированиеБюджета.Расходы КАК ПланированиеБюджетаДоходыРасходы
               ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   BIP_Статьи.Ссылка КАК BIP_Статья,
                   ПОДСТРОКА(BIP_Статьи.КодВЗ, 1, 6) КАК КодFozzy
               ИЗ
                   Справочник.BIP_Статьи КАК BIP_Статьи) КАК ВложенныйЗапрос
               ПО ПланированиеБюджетаДоходыРасходы.КодFozzy = ВложенныйЗапрос.КодFozzy
               ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   ВложенныйЗапрос.BIP_Статья КАК BIP_Статья,
                   ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц КАК Месяц,
                   ПланированиеБюджетаДоходыРасходы.Статья КАК Статья
               ИЗ
                   Документ.ПланированиеБюджета.Расходы КАК ПланированиеБюджетаДоходыРасходы
                       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                           BIP_Статьи.Ссылка КАК BIP_Статья,
                           ПОДСТРОКА(BIP_Статьи.КодВЗ, 1, 6) КАК КодFozzy
                       ИЗ
                           Справочник.BIP_Статьи КАК BIP_Статьи) КАК ВложенныйЗапрос
                       ПО ПланированиеБюджетаДоходыРасходы.КодFozzy = ВложенныйЗапрос.КодFozzy
               ГДЕ
                   ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц МЕЖДУ &МесяцН И &МесяцК
                   И ПланированиеБюджетаДоходыРасходы.Ссылка.Год = &Год
                   И ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                   И ПланированиеБюджетаДоходыРасходы.Ссылка.Проведен
                   И ПланированиеБюджетаДоходыРасходы.Статья.Вид = &a
                   И (НЕ ПланированиеБюджетаДоходыРасходы.Статья.Доход)
                   И ВЫБОР
                           КОГДА &Подразделение = ЗНАЧЕНИЕ(справочник.ПодразделенияБюджета.ПустаяСсылка)
                               ТОГДА ИСТИНА
                           ИНАЧЕ ПланированиеБюджетаДоходыРасходы.Ссылка.Подразделение = &Подразделение
                       КОНЕЦ
               
               СГРУППИРОВАТЬ ПО
                   ВложенныйЗапрос.BIP_Статья,
                   ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц,
                   ПланированиеБюджетаДоходыРасходы.Статья) КАК ПланированиеБюджетаОтклонения
               ПО ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц = ПланированиеБюджетаОтклонения.Месяц
                   И ПланированиеБюджетаДоходыРасходы.Статья = ПланированиеБюджетаОтклонения.Статья
                   И ПланированиеБюджетаДоходыРасходы.КодFozzy = ПланированиеБюджетаОтклонения.BIP_Статья.КодВЗ
       ГДЕ
           ПланированиеБюджетаДоходыРасходы.Ссылка.Год = &Год
           И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц МЕЖДУ &МесяцН И &МесяцК
           И ПланированиеБюджетаДоходыРасходы.Ссылка.Проведен
           И ПланированиеБюджетаДоходыРасходы.ПравилоДДС.Код <> "000000027"
           И ПланированиеБюджетаДоходыРасходы.Сумма <> 0
           И ПланированиеБюджетаДоходыРасходы.Статья.Вид = &a
           И (НЕ ПланированиеБюджетаДоходыРасходы.Статья.Доход)
           И ВЫБОР
                   КОГДА &Подразделение = ЗНАЧЕНИЕ(справочник.ПодразделенияБюджета.ПустаяСсылка)
                       ТОГДА ИСТИНА
                   ИНАЧЕ ПланированиеБюджетаДоходыРасходы.Ссылка.Подразделение = &Подразделение
               КОНЕЦ
       
       СГРУППИРОВАТЬ ПО
           ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц,
           ПланированиеБюджетаДоходыРасходы.Ссылка.Год,
           ВЫБОР
               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 1
                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 3
                   ТОГДА "1 квартал"
               ИНАЧЕ ВЫБОР
                       КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 4
                               И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 6
                           ТОГДА "2 квартал"
                       ИНАЧЕ ВЫБОР
                               КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 7
                                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 9
                                   ТОГДА "3 квартал"
                               ИНАЧЕ "4 квартал"
                           КОНЕЦ
                   КОНЕЦ
           КОНЕЦ,
           ВложенныйЗапрос.BIP_Статья) КАК a
   
   СГРУППИРОВАТЬ ПО
       a.Месяц,
       a.Год,
       a.КварталКв) КАК a
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           b.Месяц КАК Месяц,
           b.Год КАК Год,
           b.КварталКв КАК КварталКв,
           СУММА(ЕСТЬNULL(b.Первонач, 0)) КАК Первонач,
           СУММА(ЕСТЬNULL(b.Коррект, 0)) КАК Коррект,
           СУММА(ЕСТЬNULL(b.Отклонение, 0)) КАК Отклонение,
           СУММА(ЕСТЬNULL(b.Окончательно, 0)) КАК Окончательно
       ИЗ
           (ВЫБРАТЬ
               СУММА(ВЫБОР
                       КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                           ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                       ИНАЧЕ 0
                   КОНЕЦ) КАК Первонач,
               СУММА(ВЫБОР
                       КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                           ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                       ИНАЧЕ 0
                   КОНЕЦ) КАК Коррект,
               ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц КАК Месяц,
               ПланированиеБюджетаДоходыРасходы.Ссылка.Год КАК Год,
               ВЫБОР
                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 1
                           И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 3
                       ТОГДА "1 квартал"
                   ИНАЧЕ ВЫБОР
                           КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 4
                                   И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 6
                               ТОГДА "2 квартал"
                           ИНАЧЕ ВЫБОР
                                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 7
                                           И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 9
                                       ТОГДА "3 квартал"
                                   ИНАЧЕ "4 квартал"
                               КОНЕЦ
                       КОНЕЦ
               КОНЕЦ КАК КварталКв,
               ВложенныйЗапрос.BIP_Статья КАК BIP_Статья,
               СУММА(ВЫБОР
                       КОГДА ЕСТЬNULL(ПланированиеБюджетаОтклонения.Месяц, 0) = ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц
                           ТОГДА ВЫБОР
                                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                                   ИНАЧЕ 0
                               КОНЕЦ - ВЫБОР
                                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                                   ИНАЧЕ 0
                               КОНЕЦ
                       ИНАЧЕ 0
                   КОНЕЦ) КАК Отклонение,
               СУММА(ВЫБОР
                       КОГДА ЕСТЬNULL(ПланированиеБюджетаОтклонения.Месяц, 0) = ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц
                           ТОГДА ВЫБОР
                                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                                   ИНАЧЕ 0
                               КОНЕЦ - ВЫБОР
                                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                                       ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                                   ИНАЧЕ 0
                               КОНЕЦ
                       ИНАЧЕ 0
                   КОНЕЦ + ВЫБОР
                       КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 2
                           ТОГДА ПланированиеБюджетаДоходыРасходы.Сумма
                       ИНАЧЕ 0
                   КОНЕЦ) КАК Окончательно
           ИЗ
               Документ.ПланированиеБюджета.Доходы КАК ПланированиеБюджетаДоходыРасходы
                   ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                       BIP_Статьи.Ссылка КАК BIP_Статья,
                       ПОДСТРОКА(BIP_Статьи.КодВЗ, 1, 6) КАК КодFozzy
                   ИЗ
                       Справочник.BIP_Статьи КАК BIP_Статьи) КАК ВложенныйЗапрос
                   ПО ПланированиеБюджетаДоходыРасходы.КодFozzy = ВложенныйЗапрос.КодFozzy
                   ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                       ВложенныйЗапрос.BIP_Статья КАК BIP_Статья,
                       ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц КАК Месяц,
                       ПланированиеБюджетаДоходыРасходы.Статья КАК Статья
                   ИЗ
                       Документ.ПланированиеБюджета.Доходы КАК ПланированиеБюджетаДоходыРасходы
                           ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                               BIP_Статьи.Ссылка КАК BIP_Статья,
                               ПОДСТРОКА(BIP_Статьи.КодВЗ, 1, 6) КАК КодFozzy
                           ИЗ
                               Справочник.BIP_Статьи КАК BIP_Статьи) КАК ВложенныйЗапрос
                           ПО ПланированиеБюджетаДоходыРасходы.КодFozzy = ВложенныйЗапрос.КодFozzy
                   ГДЕ
                       ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц МЕЖДУ &МесяцН И &МесяцК
                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Год = &Год
                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Версия = 3
                       И ПланированиеБюджетаДоходыРасходы.Ссылка.Проведен
                       И ПланированиеБюджетаДоходыРасходы.Статья.Вид = &b
                       И ПланированиеБюджетаДоходыРасходы.Статья.Доход
                       И ВЫБОР
                               КОГДА &Подразделение = ЗНАЧЕНИЕ(справочник.ПодразделенияБюджета.ПустаяСсылка)
                                   ТОГДА ИСТИНА
                               ИНАЧЕ ПланированиеБюджетаДоходыРасходы.Ссылка.Подразделение = &Подразделение
                           КОНЕЦ
                   
                   СГРУППИРОВАТЬ ПО
                       ВложенныйЗапрос.BIP_Статья,
                       ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц,
                       ПланированиеБюджетаДоходыРасходы.Статья) КАК ПланированиеБюджетаОтклонения
                   ПО ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц = ПланированиеБюджетаОтклонения.Месяц
                       И ПланированиеБюджетаДоходыРасходы.Статья = ПланированиеБюджетаОтклонения.Статья
                       И ПланированиеБюджетаДоходыРасходы.КодFozzy = ПланированиеБюджетаОтклонения.BIP_Статья.КодВЗ
           ГДЕ
               ПланированиеБюджетаДоходыРасходы.Ссылка.Год = &Год
               И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц МЕЖДУ &МесяцН И &МесяцК
               И ПланированиеБюджетаДоходыРасходы.Ссылка.Проведен
               И ПланированиеБюджетаДоходыРасходы.ПравилоДДС.Код <> "000000027"
               И ПланированиеБюджетаДоходыРасходы.Сумма <> 0
               И ПланированиеБюджетаДоходыРасходы.Статья.Вид = &b
               И ПланированиеБюджетаДоходыРасходы.Статья.Доход
               И ВЫБОР
                       КОГДА &Подразделение = ЗНАЧЕНИЕ(справочник.ПодразделенияБюджета.ПустаяСсылка)
                           ТОГДА ИСТИНА
                       ИНАЧЕ ПланированиеБюджетаДоходыРасходы.Ссылка.Подразделение = &Подразделение
                   КОНЕЦ
           
           СГРУППИРОВАТЬ ПО
               ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц,
               ПланированиеБюджетаДоходыРасходы.Ссылка.Год,
               ВЫБОР
                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 1
                           И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 3
                       ТОГДА "1 квартал"
                   ИНАЧЕ ВЫБОР
                           КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 4
                                   И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 6
                               ТОГДА "2 квартал"
                           ИНАЧЕ ВЫБОР
                                   КОГДА ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц >= 7
                                           И ПланированиеБюджетаДоходыРасходы.Ссылка.Месяц <= 9
                                       ТОГДА "3 квартал"
                                   ИНАЧЕ "4 квартал"
                               КОНЕЦ
                       КОНЕЦ
               КОНЕЦ,
               ВложенныйЗапрос.BIP_Статья) КАК b
       
       СГРУППИРОВАТЬ ПО
           b.Месяц,
           b.Год,
           b.КварталКв) КАК b
       ПО a.Месяц = b.Месяц
           И a.Год = b.Год
           И a.КварталКв = b.КварталКв

СГРУППИРОВАТЬ ПО
   a.Месяц,
   a.Год,
   a.КварталКв,
   b.Месяц,
   b.Год,
   b.КварталКв
4 regniws
 
11.03.13
17:22
отл, а теперь проверь его конструктором
5 zladenuw
 
11.03.13
17:23
(1) копирую в консоль запросов. меняю только соединение в нем ошибку пишет. пишу такое же только в конструкторе все ок
6 regniws
 
11.03.13
17:26
(5) копируешь в конструктор то, что есть в этом тексте, пишет ошибку?
7 zladenuw
 
11.03.13
17:28
(6) на соединение между таблицами. удаляю. открываю конструктором. пишу такое же условие. запрос выполняется
8 zladenuw
 
11.03.13
17:29
Мда. уже ошибки нету :). походу кеш.