![]() |
![]() |
![]() |
|
v7: запрос, условие, функция в фукнции 1с 7.7 | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
16.06.14
✎
10:24
|
Есть функция:
|Функция СуммаСумма = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); надо сделать чтобы было так: СуммаСумма = Расход(?(Статья.МетодРс = 3,Сумма/Статья.КоличествоМесяцев,Сумма)) когда ...... Пробовал так: |Функция СуммаСумма1 = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Функция СуммаСумма = Сумма(?(Статья.МетодРс = 3,Запрос.СуммаСумма1/Статья.КоличествоМесяцев,Запрос.СуммаСумма1)); Расчеты не правильные тогда. Подскажите как можно это реализовать? |
|||
1
DmitriyDI
16.06.14
✎
11:28
|
призываю 7рочных гуру в ветку!
|
|||
2
Ёпрст
гуру
16.06.14
✎
11:35
|
весь текст запроса покажи
|
|||
3
DmitriyDI
16.06.14
✎
11:39
|
|Период с ВыбНач2 по ВыбКонПериода;
|ЦФО = Регистр.ДИР.ЦФО; |БизнесНаправление = Регистр.ДИР.БизнесНаправление; |Статья = Регистр.ДИР.Статья; |ДатаП = Регистр.ДИР.ДатаПланирования; |Сумма = Регистр.ДИР.Сумма; |Организация = Регистр.ДИР.Организация; |ДатаФактРасходов = Регистр.ДИР.ДатаФактРасходов; |Функция СуммаСумма = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Условие(ЦФО в СписокЦФО); |Условие(Организация в СписокОрганизаций); |Условие ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон1)); |Условие(ВыбБизнесНаправления = БизнесНаправление); |Группировка ЦФО без групп; |Группировка Статья все; |
|||
4
DmitriyDI
16.06.14
✎
11:40
|
(3) ток без строчки
|Условие ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон1)); |
|||
5
Ёпрст
гуру
16.06.14
✎
11:43
|
ну так напиши
|Статья = Регистр.ДИР.Статья.МетодРс; |КоличествоМесяцев= Регистр.ДИР.Статья.КоличествоМесяцев; |Функция СуммаСумма = Расход(Сумма); |Функция Вася = Сумма(?(МетодРс = 3,Сумма/КоличествоМесяцев,Сумма)); |
|||
6
DmitriyDI
16.06.14
✎
11:44
|
(5) не совсем понял, а как сумма которая в Вася будет передаваться именно расходная?
|
|||
7
Ёпрст
гуру
16.06.14
✎
11:46
|
(6) что такое расходная ?
|
|||
8
Ёпрст
гуру
16.06.14
✎
11:46
|
вася будет считать то же, что и СуммаСумма
|
|||
9
Ёпрст
гуру
16.06.14
✎
11:47
|
в данном случае.
|
|||
10
Ёпрст
гуру
16.06.14
✎
11:47
|
только со своим условием
|
|||
11
DmitriyDI
16.06.14
✎
11:56
|
(10) что-то Вася мне не то выдал! написал я так:
|Функция СуммаСумма1 = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Функция СуммаСумма = Сумма(?(Статья.МетодРс = 3,Сумма/Статья.КоличествоМесяцев,Сумма));"; цифры заоблачные, оставляю |Функция СуммаСумма = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); цифры норм, только не хватает поделить на количество месяцев |
|||
12
PuhUfa
16.06.14
✎
12:03
|
(11) ты про какие суммы говоришь? в одном случае у тебя 2 функции в другом 1
|
|||
13
Ёпрст
гуру
16.06.14
✎
12:07
|
п...ц
|
|||
14
Ёпрст
гуру
16.06.14
✎
12:07
|
Прочитай (0)
|
|||
15
Ёпрст
гуру
16.06.14
✎
12:07
|
надо сделать чтобы было так:
СуммаСумма = Расход(?(Статья.МетодРс = 3,Сумма/Статья.КоличествоМесяцев,Сумма)) когда ...... это делает запрос в (5) А что тебе надо - хз. |
|||
16
Ёпрст
гуру
16.06.14
✎
12:08
|
Ну и за Статья.МетодРс = 1 в тексте запроса - расстрел на месте
|
|||
17
DmitriyDI
16.06.14
✎
12:13
|
(16) там расчетов потом 4 тысячи строк крутят эти результаты, так что поэтому и приходится все в запросе оставлять, чтобы переписать побыстрее
|
|||
18
DmitriyDI
16.06.14
✎
12:14
|
(15) разве это не то что в (5)?
|Функция СуммаСумма1 = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Функция СуммаСумма = Сумма(?(Статья.МетодРс = 3,Сумма/Статья.КоличествоМесяцев,Сумма));"; |
|||
19
Ёпрст
гуру
16.06.14
✎
12:32
|
(18) нет
|
|||
20
DmitriyDI
16.06.14
✎
12:39
|
(19) а это?
|Функция СуммаСумма = Расход(Сумма) когда (((Статья.МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((Статья.МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((Статья.МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Функция Вася = Сумма(?(Статья.МетодРс = 3,Сумма/Статья.КоличествоМесяцев,Сумма));"; |
|||
21
Ёпрст
гуру
16.06.14
✎
12:41
|
хз, че тебе надо, проверяй так:
|Статья = Регистр.ДИР.Статья.МетодРс; |КоличествоМесяцев= Регистр.ДИР.Статья.КоличествоМесяцев; |Функция СуммаСумма1 = Расход(Сумма) когда (((МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Функция СуммаСумма = Сумма(?(МетодРс = 3,Сумма/КоличествоМесяцев,Сумма)) когда (((МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |
|||
22
DmitriyDI
16.06.14
✎
12:58
|
(21) спасибо большое!
вроде вот так получилось |Функция СуммаСумма1 = Расход(Сумма) когда (((МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2)))); |Функция СуммаСумма = Максимум(?(МетодРс = 3,Запрос.СуммаСумма1/КоличествоМесяцев,Запрос.СуммаСумма1)) когда (((МетодРс = 1) и ((ДатаФактРасходов>=ВыбНач1)и(ДатаФактРасходов<=ВыбКон1))) ИЛИ ((МетодРс = 2) и ((ДатаФактРасходов>=ВыбНачПериода )и(ДатаФактРасходов<=ВыбКон2))) ИЛИ ((МетодРс = 3) и ((ДатаФактРасходов>=ВыбНач2)и(ДатаФактРасходов<=ВыбКон2))));"; |
|||
23
PuhUfa
16.06.14
✎
13:02
|
печаль
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |