Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Суммирование с условием в отчете на СКД

Суммирование с условием в отчете на СКД
Я
   25-11
 
09.12.17 - 14:14
http://s019.radikal.ru/i605/1712/2e/35f3944db674.png

Есть отчёт на СКД, в котором некий ресурс (Остаток) имеет на уровне детальных записей как положительные так и отрицательные значения. В пользовательском режиме (без конфигуратора) создано Пользовательское поле для отображения абсолютной величины числа. Выражение для детальных записей:

Выбор
   Когда Остаток < 0 Тогда -Остаток
   Иначе Остаток
Конец

Когда пытаюсь в выражении для итоговых записей использовать Сумма(ТоЖеСамоеВыражение), то при формировании отчета получаю сообщение 
Неверные параметры "-"
и отчёт не формируется. Подскажите, как такую задачу решать на пользовательском уровне?  Или всё-таки только конфигуратор?
 
 
   nordbox
 
1 - 09.12.17 - 14:18
(0) Так тебе же ясно сказали
>>Неверные параметры "-" 
открой глаза и посмотри на код
   nordbox
 
2 - 09.12.17 - 14:20
в чем загадочный смысл этого выражения?
Когда Остаток < 0 Тогда -Остаток 
   Иначе Остаток
   25-11
 
3 - 09.12.17 - 14:24
(2) А что непонятного-то? Если 3, то выводим 3.
Если -3, то тоже 3.
Модуль или абсолютная величина числа - в седьмом классе проходят, кажется :)
   25-11
 
4 - 09.12.17 - 14:28
Для детальных записей работает...
Если в выражении для итоговых записей написать

Выбор
   Когда Сумма(Остаток) < 0 Тогда -Сумма(Остаток)
   Иначе Сумма(Остаток)
Конец 

тоже работает. Но неправильно :)
   nordbox
 
5 - 09.12.17 - 14:38
Ну попробуй вот так 
Когда Остаток < 0 Тогда (-Остаток) 
   Иначе Остаток
   nordbox
 
6 - 09.12.17 - 14:39
или вот так
Когда Остаток < 0 Тогда (Остаток*(-1)) 
   Иначе Остаток
   25-11
 
7 - 09.12.17 - 15:01
(6) без разницы - СКД в пользовательском режиме "не понимает" выражение, которое нужно просуммировать.
   nordbox
 
8 - 09.12.17 - 15:12
в СКД есть ВычислитьВыражение
   nordbox
 
9 - 09.12.17 - 15:14
   25-11
 
10 - 09.12.17 - 15:34
(8) А у тебя ВычислитьВыражение работает в пользовательском режиме? Можешь показать?
Я считал, что это инструмент, применяющийся только в конфигураторе. Но тогда уж лучше сразу в запросе ещё одно поле добавить. Интересует именно возможность без конфигурирования
 
 Рекламное место пустует
   nordbox
 
11 - 09.12.17 - 15:35
В пользовательском не пробовал, но как то инфа проскакивала что можно
   nordbox
 
12 - 09.12.17 - 15:42
+11 пробовать не буду ))
сам не могу себя заставит доделать отчет и клиент-банк раскурочить, лень ))
   25-11
 
13 - 10.12.17 - 22:16
Может быть кто-то из гуру по СКД откликнется? И авторитетно скажет, что в пользовательском режиме этого не добиться?
   2dolist
 
14 - 11.12.17 - 08:23
Я мб что-то не понял в задаче, но что мешает написать
сумма(выбор когда Остаток < 0 тогда -Остаток иначе Остаток конец)
   25-11
 
15 - 11.12.17 - 09:57
(14) Мешает только то, что отчёт не формируется. И вдается сообщение об ошибке.Которое приведено в (0)
   25-11
 
16 - 11.12.17 - 09:58
"вдается=выдаётся
   тарам пам пам
 
17 - 11.12.17 - 10:35
(13) в польз. режиме использовать ВычислитьВыражение и вообще все остальные функции СКД можно, это работает и у меня особо продвинутые клиенты даже смогли добавить пару таких польз. полей.

По (0) - раз ругается на параметры "-", значит Остаток где-то имеет тип не число - скорее всего NULL, раз на сравнение с нулем не ругается. Попробуй через ЕСТЬNULL написать.
   2dolist
 
18 - 11.12.17 - 10:44
либо у тебя остаток называется не как остаток, либо действительно Null, тогда можешь проверку добавить

сумма(isnull(выбор когда Остаток < 0 тогда -Остаток иначе Остаток конец,0))
   25-11
 
19 - 11.12.17 - 15:12
(18) Анализ на Null не помогает, дело не в этом
(17) ВычислитьВыражение в пользовательском режиме пока не пробовал. Это и в конфигураторе не так просто правильно использовать... Я это раньше применял только на закладке "Ресурсы", не для вычисляемых полей.
   Cyberhawk
 
20 - 11.12.17 - 15:16
"0+Остаток" уже пробовал?
   Cyberhawk
 
21 - 11.12.17 - 15:16
Ну или "0-Остаток"
   тарам пам пам
 
22 - 11.12.17 - 15:35
(19) а ты правильно анализ на null сделал? в (18) потому что выражение неправильно написано, нужно сумма(выбор когда естьnull(Остаток, 0) < 0 тогда -естьnull(Остаток, 0) иначе естьnull(Остаток, 0) конец)
   25-11
 
23 - 11.12.17 - 17:35
(22) Я думаю, что анализ на Null правильно написал :)
http://s46.radikal.ru/i111/1712/49/ab8ecaf2350d.png
   25-11
 
24 - 11.12.17 - 17:45
Да, и замена Null на 0, как положено, выполнена уже в запросе. Так что это здесь точно не должно играть никакой роли...
   mehfk
 
25 - 11.12.17 - 18:41
Ты что-то делаешь не так, скорее всего у тебя значения поля могут быть нечисловые.

http://ibb.co/mMh4zb
   mehfk
 
26 - 11.12.17 - 18:43
Попробуй вот так:

Выбор
    Когда ТипЗначения(Остаток) <> Тип("Число")
        Тогда 0
    Когда Остаток < 0
        Тогда -Остаток
    Иначе Остаток
Конец
   25-11
 
27 - 11.12.17 - 19:01
(25) Убедительно... Сейчас попробую.
   25-11
 
28 - 11.12.17 - 19:05
(26) Круто! заработало! Спасибо!
Откуда там не NULL и не число - х.з., но получается, дело именно в этом.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует