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


1С:Предприятие ::

Метки: 

Избегаем деления на 0 в СКД

Я
   prilforreal
 
03.07.18 - 11:55
Доброго времени суток! В СКД пишу отчет, столкнулся с тем что СКД не дает делить на ноль, в запросе подменяю ноль на небольшое число, но ошибка повторяется

ВЫБРАТЬ
    ПроизводствоПечатьТабличнаяЧасть1.Ссылка.Дата,
    ПроизводствоПечатьТабличнаяЧасть1.Ссылка.Проведен,
    ПроизводствоПечатьТабличнаяЧасть1.Материал,
    ПроизводствоПечатьТабличнаяЧасть1.МатериалФакт,
    ПроизводствоПечатьТабличнаяЧасть1.ПлощадьМатериала,
    ПроизводствоПечатьТабличнаяЧасть1.Площадь,
    ВЫБОР КОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь = 0 
    ТОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь + 0.00000001
    ИНАЧЕ ПроизводствоПечатьТабличнаяЧасть1.Площадь
    КОНЕЦ,
    ПроизводствоПечатьТабличнаяЧасть1.Площадь / 100 * 5 + ПроизводствоПечатьТабличнаяЧасть1.Площадь КАК ПорогПерерасхода,
    ПроизводствоПечатьТабличнаяЧасть1.Ссылка,
    ПроизводствоПечатьТабличнаяЧасть1.ПлощадьМатериала / ПроизводствоПечатьТабличнаяЧасть1.Площадь КАК КИМ
         
ИЗ
    Документ.ПроизводствоПечать.ТабличнаяЧасть1 КАК ПроизводствоПечатьТабличнаяЧасть1
 
 
   Nikoss
 
1 - 03.07.18 - 11:57
где ты в запросе, где деление, подменил 0 ?
   piter3
 
2 - 03.07.18 - 11:57
не там где нужно подменил)
   prilforreal
 
3 - 03.07.18 - 11:58
(1) ВЫБОР КОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь = 0 
    ТОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь + 0.00000001
    ИНАЧЕ ПроизводствоПечатьТабличнаяЧасть1.Площадь
    КОНЕЦ,
   Мандалай
 
4 - 03.07.18 - 11:58
Выбор когда ЕстьNULL(ПроизводствоПечатьТабличнаяЧасть1.Площадь ,0) =  0 Тогда 1 Иначе ПроизводствоПечатьТабличнаяЧасть1.Площадь Конец
   СвинТуз
 
5 - 03.07.18 - 11:59
Есть такой оператор . Называется "Выбор" . Слабо его использовать?
   Dmitry1c
 
6 - 03.07.18 - 11:59
(3) в анналы истории

а если у тебя там NULL, а не 0?

NULL + 0.00001 = NULL
   Мандалай
 
7 - 03.07.18 - 11:59
Ну хотя ЕстьNULL наверное лишнее.
   Мандалай
 
8 - 03.07.18 - 12:00
(6)Я так понимаю данные берутся из ТЧ, откуда там NULL?
   Мандалай
 
9 - 03.07.18 - 12:00
(0)То что тебе написали прям в сказуемое вставляй
   Мандалай
 
10 - 03.07.18 - 12:01
100 * 5 + ПроизводствоПечатьТабличнаяЧасть1.Площадь должна вернуть 500 если ПроизводствоПечатьТабличнаяЧасть1.Площадь = 0. Тут проверка не нужна.
 
 Рекламное место пустует
   SadrArt
 
11 - 03.07.18 - 12:05
ПроизводствоПечатьТабличнаяЧасть1.ПлощадьМатериала / ВЫБОР КОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь = 0 ТОГДА 1 ИНАЧЕ ПроизводствоПечатьТабличнаяЧасть1.Площадь КОНЕЦ КАК КИМ
   SadrArt
 
12 - 03.07.18 - 12:06
ПроизводствоПечатьТабличнаяЧасть1.ПлощадьМатериала / ВЫБОР КОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь = 0 ТОГДА 1 ИНАЧЕ ПроизводствоПечатьТабличнаяЧасть1.Площадь КОНЕЦ КАК КИМ

   prilforreal
 
13 - 03.07.18 - 12:08
(8) Да, конечно из ТЧ, (10) ПроизводствоПечатьТабличнаяЧасть1.Площадь / 100 * 5 + ПроизводствоПечатьТабличнаяЧасть1.Площадь КАК ПорогПерерасхода
Это расчет перерасхода, в вывод отчета попадают только те строчки, в которых материала израсходовано => 105%
   SadrArt
 
14 - 03.07.18 - 12:08
(9) "Сказуемое" - вроде из другой пьесы, здесь "Знаменатель"
   prilforreal
 
15 - 03.07.18 - 12:15
(12) (9) Спасибо, думал не обязательно в знаменатель вставлять)
   Мандалай
 
16 - 03.07.18 - 12:16
(14)Ну да, эт я алгебру с русязом перепутал :)
   Малыш Джон
 
17 - 03.07.18 - 12:16
(12) я так понимаю, если площадь=0, то там не площадь материала должна быть.
(15)КИМ - это ведь коэф. используемого места?
тогда:

ВЫБОР
  КОГДА ПроизводствоПечатьТабличнаяЧасть1.Площадь = 0 
    ТОГДА "Хер вам, а не КИМ"
  ИНАЧЕ ПроизводствоПечатьТабличнаяЧасть1.ПлощадьМатериала / ПроизводствоПечатьТабличнаяЧасть1.Площадь 
КОНЕЦ Как КИМ
   VladZ
 
18 - 03.07.18 - 12:22
(0) "в запросе подменяю ноль на небольшое число". - круто, чо.  Ты своим "+ что-то там" намеренно вносишь искажения в данные. Зачем????

Используй "Выбор когда" и будет тебе Щастье!
   prilforreal
 
19 - 03.07.18 - 12:29
(17) Только при таком запросе "Хер вам а не ким" будет писаться в поле площадь, на не в поле КИМ
   Малыш Джон
 
20 - 03.07.18 - 12:40
(19) в площадь будет писаться площадь, а то, что в (17)  - будет писаться в поле КИМ.
   Малыш Джон
 
21 - 03.07.18 - 12:40
Это разъяснение, для тех, кто пропустил слова "Как КИМ"
   Малыш Джон
 
22 - 03.07.18 - 12:41
(19) у тебя деление на ноль происходит в коэффициенте, а не в площади
зачем площадь-то трогать?
   prilforreal
 
23 - 03.07.18 - 12:47
(22) Спасибо, понял теперь



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