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


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

0<>0 . WTF??

0<>0 . WTF??
Я
   Anton 11
 
23.01.18 - 12:07
Всем привет. Собственно вот что выдает отладчик? я такое первый раз вижу. 0<>0.

https://ibb.co/cV2nBw
https://ibb.co/eu85yb

Вот кусок кода:
ТекОплата.Сумма=ТекОплата.Сумма-СуммаЗакрытияНДС;                    
Если ТекОплата.Сумма=0 Тогда                        
 Оплаты.Удалить(ТекОплата);                        
 Продолжить;
КонецЕсли;

Перед условием выполняется выражение 0-0. Получаем 0. Но в итоге в условии 0<>0 . Что за бред?
 
 
   Olden2610
 
1 - 23.01.18 - 12:10
ТипЗнч(ТекОплата.Сумма) = Тип("Число")

?
   Anton 11
 
2 - 23.01.18 - 12:11
(1) Да
   drcrasher
 
3 - 23.01.18 - 12:12
(1) на скрине же
   Olden2610
 
4 - 23.01.18 - 12:12
(3) Да, не увидел
   Масянька
 
5 - 23.01.18 - 12:14
(0) Округление.
ТекОплата.Сумма не равно 0.
   Dzenn
 
6 - 23.01.18 - 12:14
Такого не может быть, потому что такого не может быть никогда. Проверь код внимательнее. Используй, помимо отладчика, вставки отладочного кода.
   Olden2610
 
7 - 23.01.18 - 12:14
Больше кода можно?
Как например формируется значение в ТекОплата.Сумма
   Сильф
 
8 - 23.01.18 - 12:15
(0) Ну, бывает ) У меня как-то СКД фигню считала, пока в формуле ресурса не дописал "+0" )) Кэш почисти.
   Anton 11
 
9 - 23.01.18 - 12:15
(5) как не равно, если на втором скрине видно что там 0
   Franchiser
 
10 - 23.01.18 - 12:16
а так:
?(ТекОплата.Сумма=0,Истина,Ложь)
 
 Рекламное место пустует
   Anton 11
 
11 - 23.01.18 - 12:16
(10) Ложь
   Масянька
 
12 - 23.01.18 - 12:17
(9) Это тебе выводит 0, а на самом деле...
   Сильф
 
13 - 23.01.18 - 12:17
(0) Попробуй так:

А = ТекОплата.Сумма-СуммаЗакрытияНДС;          
ТекОплата.Сумма = А;
   arsik
 
14 - 23.01.18 - 12:18
А сделай так
Сообщить(ТекОплата.Сумма*1000000000)
   drcrasher
 
15 - 23.01.18 - 12:18
(12) дык на скрине число - 0. хотя 77 умело в 2+2=3.99999999(9)
   Масянька
 
16 - 23.01.18 - 12:18
(11) Небось - Сумма установлена 15,2, а СуммаЗакрытияНДС - рассчитывается.
   Olden2610
 
17 - 23.01.18 - 12:18
(11) Код дай.

Всё остальное, что тут пишут - это гадание на кофейной гуще.
   VladZ
 
18 - 23.01.18 - 12:20
(0) Округли до 3го знака.
   Вафель
 
19 - 23.01.18 - 12:22
в отладчике обычно все знаки видны
   _Дайвер_
 
20 - 23.01.18 - 12:22
Посмотри СуммаЗакрытияНДС;
   _Дайвер_
 
21 - 23.01.18 - 12:23
(20) Всю строку
ТекОплата.Сумма=ТекОплата.Сумма-СуммаЗакрытияНДС;
   Вафель
 
22 - 23.01.18 - 12:23
может ты смотришь после удаления строки? не кошерно в 1 проходе проверять и удалять строки. Если только с конца
   Ненавижу 1С
 
23 - 23.01.18 - 12:24
а в одном окне отладчик показать не судьба?
   youalex
 
24 - 23.01.18 - 12:26
ЗначениеВСтрокуВнутр() - проверь
   Franchiser
 
25 - 23.01.18 - 12:30
Окр(текоплата.сумма,2)=0
   Anton 11
 
26 - 23.01.18 - 12:30
ТекОплата.Сумма=ТекОплата.Сумма-СуммаЗакрытияНДС
ИСТИНА
   Anton 11
 
27 - 23.01.18 - 12:30
Ограничения на знаки после запятой нет
   Anton 11
 
28 - 23.01.18 - 12:31
ТекОплата.Сумма*10000000000000 = 0
   Anton 11
 
29 - 23.01.18 - 12:34
(22) Я в цикле получаю цервую строку:

Пока Оплаты.Количество()>0 Цикл
                    ТекОплата=Оплаты.Получить(0);
                    ТекОплатаНДС=ТекОплата.Сумма*КоэфНДС;
                    ТекОплатаОсн=ТекОплата.Сумма-ТекОплатаНДС;
                    
                    СуммаЗакрытияНДС=Мин(НеоплаченнаяСуммаНДС,ТекОплатаНДС);
                    НеоплаченнаяСуммаНДС=НеоплаченнаяСуммаНДС-СуммаЗакрытияНДС;
                    ТекОплата.Сумма=ТекОплата.Сумма-СуммаЗакрытияНДС;                    
                    Если ТекОплата.Сумма=0 Тогда
                        Оплаты.Удалить(ТекОплата);
                        Продолжить;
                    КонецЕсли;                    
                    Стр=ОбщаяТаблица.Добавить();
                    СуммаЗакрытия=Мин(НеоплаченнаяСумма,ТекОплатаОсн);
                    НеоплаченнаяСумма=НеоплаченнаяСумма-СуммаЗакрытия;
                    ТекОплата.Сумма=ТекОплата.Сумма-СуммаЗакрытия;
                    Стр.ДокументПоступления=Пост.Документ;
                    Стр.ДокументОплаты=ТекОплата.Документ;
                    Стр.Сумма=СуммаЗакрытия;
                    Если НеоплаченнаяСумма=0 Тогда
                        Прервать;
                    КонецЕсли;
                    Если ТекОплата.Сумма=0 Тогда
                        Оплаты.Удалить(ТекОплата);
                        Продолжить;
                    КонецЕсли;            
                КонецЦикла;
   Вафель
 
30 - 23.01.18 - 12:35
(29) двойка тебе за такой алгоритм
   Anton 11
 
31 - 23.01.18 - 12:36
(30) Всё нормально. Цикл не пойдет дальше, если удалены все строки
   Anton 11
 
32 - 23.01.18 - 12:45
Все я прошел с самого начала. Действительно число получается длинное после запятой, с каждой итерацией еще больше удлинялось
   Anton 11
 
33 - 23.01.18 - 12:46
Всем спасибо)
 
 
   Shrek_yar
 
34 - 23.01.18 - 12:50
(33)поэтому пишу ОКР
   Масянька
 
35 - 23.01.18 - 12:51
(32) Со временем клюшек ничего не изменилось...


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