Имя: Пароль:
1C
1С v8
СКД. помогите с процентным соотношением для строки
0 zladenuw
 
12.03.13
15:42
вот такой запрос.
ВЫБРАТЬ
   a.Месяц,
   a.КварталКв,
   a.Год,
Выразить("% к осн. доходам"КАК Строка(50)) КАК Раздел,
"13" КАК УровеньОтчета,
(ВЫБОР КОГДА Сумма(a.Первонач)>0 И  Сумма(ЕстьNull(b.Первонач,0))>0 ТОГДА (Сумма(ЕстьNull(a.Первонач,0))/Сумма(ЕстьNull(b.Первонач,0))) ИНАЧЕ 0 КОНЕЦ ) КАК Первонач,
(ВЫБОР КОГДА Сумма(a.Первонач)>0 И  Сумма(ЕстьNull(b.Корректировка,0))>0 ТОГДА (Сумма(ЕстьNull(a.Корректировка,0))/Сумма(ЕстьNull(b.Корректировка,0))) ИНАЧЕ 0 КОНЕЦ ) КАК Корректировка,
(ВЫБОР КОГДА Сумма(a.Первонач)>0 И  Сумма(ЕстьNull(b.Отклонение,0))>0 ТОГДА (Сумма(ЕстьNull(a.Отклонение,0))/Сумма(ЕстьNull(b.Отклонение,0))) ИНАЧЕ 0 КОНЕЦ ) КАК Отклонение,
(ВЫБОР КОГДА Сумма(a.Первонач)>0 И  Сумма(ЕстьNull(b.Окончательно,0))>0 ТОГДА (Сумма(ЕстьNull(a.Окончательно,0))/Сумма(ЕстьNull(b.Окончательно,0))) ИНАЧЕ 0 КОНЕЦ ) КАК Окончательно ИЗ  
(ВЫБРАТЬ
   a.Месяц КАК Месяц,
   a.Год КАК Год,
   a.КварталКв,
   Выразить("% к осн. доходам" КАК Строка(50)) КАК Раздел,
   
СУММА(Есть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.КварталКв,
   Выразить("% к осн. доходам" КАК Строка(50)) КАК Раздел,
   
СУММА(Есть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.Год

Формируется динамически от формулы.
Нужно вывести процентное соотношение а/б. если убираю группировки по году,месяцу,кварталу,выводит верно. но хотят видеть процент кроме общего еще и по месячно,квартально. как исправить, что бы общий процент считался от всей суммы. а не суммировал показатели в разрезе месяца. это реально ? вот скриншот. http://ximage.ru/index.php?id=1363088466
Надеюсь, понятно изложил проблему.
1 zladenuw
 
12.03.13
15:47
может добавить соединением с таблицей где будет только общий показатель. и его подставлять ? или есть другие варинты ?
2 Бледно Золотистый
 
12.03.13
16:07
Если правильно понял, то добавляем это вычисляемое поле еще раз в ресурсы, рассчитывать по Общий итог, а в выражении пишем то, что надо.
3 zladenuw
 
12.03.13
16:10
(2) примерно так и думал. только мне нужно для 1 строки такое условие. для остальных итог должен расчитываться как сейчас. так можно или нет ?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан