Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Странный баг 1С 77 :( (число прочтений - 4779 )
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Странный баг 1С 77 :(
Ответ #15 - 02. Марта 2010 :: 13:32
Печать  
artbear писал(а) 02. Марта 2010 :: 13:27:
Eprst писал(а) 02. Марта 2010 :: 13:01:
ну и до кучи:
Окр(6199.429999,2,2) = 6199.42
Улыбка

Да хоть 3 или 10 поставь, все равно.

что показывает #9 ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Странный баг 1С 77 :(
Ответ #16 - 02. Марта 2010 :: 13:40
Печать  
Ну да.. фича то один хрен есть - обрезает и всё, заместо округления..
Улыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Странный баг 1С 77 :(
Ответ #17 - 02. Марта 2010 :: 16:11
Печать  
Eprst писал(а) 02. Марта 2010 :: 13:40:
Ну да.. фича то один хрен есть - обрезает и всё, заместо округления..
Улыбка

У меня твой пример правильно считается и для реквизита формы и для внутренней  переменной.Сама обработка тоже прилагается
Код
Выбрать все
Процедура Сформировать()
	Сообщить("Ч102 = " + Ч102 + " Окр(Ч102,2,0)  = " + Окр(Ч102,2,0) );
	Сообщить("Ч102 = " + Ч102 + " Окр(Ч102,2,1)  = " + Окр(Ч102,2,1) );

	Ч103 = 6199.429999999;
	Сообщить("Ч103 = " + Ч103 + " Окр(Ч103,2,0)  = " + Окр(Ч103,2,0) );
	Сообщить("Ч103 = " + Ч103 + " Окр(Ч103,2,1)  = " + Окр(Ч103,2,1) );

КонецПроцедуры

Ч102 = 6199.429999999;
 



результат выполнения
Цитата:
Ч102 = 6199.429999999 Окр(Ч102,2,0)  = 6199.43
Ч102 = 6199.429999999 Окр(Ч102,2,1)  = 6199.43
Ч103 = 6199.429999999 Окр(Ч103,2,0)  = 6199.43
Ч103 = 6199.429999999 Окр(Ч103,2,1)  = 6199.43
  

test_48__________________.ert ( 29 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Странный баг 1С 77 :(
Ответ #18 - 02. Марта 2010 :: 16:47
Печать  
Написал еще один тест  artbear
Код
Выбрать все
Процедура Сформировать()
	Сообщить("Тест Eprst");

	Сообщить("Ч102 = " + Ч102 + " Окр(Ч102,2,0)  = " + Окр(Ч102,2,0) );
	Сообщить("Ч102 = " + Ч102 + " Окр(Ч102,2,1)  = " + Окр(Ч102,2,1) );

	Ч103 = 6199.429999999;
	Сообщить("Ч103 = " + Ч103 + " Окр(Ч103,2,0)  = " + Окр(Ч103,2,0) );
	Сообщить("Ч103 = " + Ч103 + " Окр(Ч103,2,1)  = " + Окр(Ч103,2,1) );

	Сообщить("");
	Сообщить("Тест artbear");

	Сообщить("Ч112 = " + Ч112 + " Окр(Ч112,2,0)  = " + Окр(Ч112,2,0) );
	Сообщить("Ч112 = " + Ч112 + " Окр(Ч112,2,1)  = " + Окр(Ч112,2,1) );

	Ч113 = 6199.425;
	Сообщить("Ч113 = " + Ч113 + " Окр(Ч113,2,0)  = " + Окр(Ч113,2,0) );
	Сообщить("Ч113 = " + Ч113 + " Окр(Ч113,2,1)  = " + Окр(Ч113,2,1) );


КонецПроцедуры

Ч102 = 6199.429999999;
Ч112 = 6199.425;
 




Результат
Цитата:
Тест Eprst
Ч102 = 6199.429999999 Окр(Ч102,2,0)  = 6199.43
Ч102 = 6199.429999999 Окр(Ч102,2,1)  = 6199.43
Ч103 = 6199.429999999 Окр(Ч103,2,0)  = 6199.43
Ч103 = 6199.429999999 Окр(Ч103,2,1)  = 6199.43

Тест artbear
Ч112 = 6199.425 Окр(Ч112,2,0)  = 6199.42
Ч112 = 6199.425 Окр(Ч112,2,1)  = 6199.43
Ч113 = 6199.425 Окр(Ч113,2,0)  = 6199.42
Ч113 = 6199.425 Окр(Ч113,2,1)  = 6199.43


Обработка прилагается
Все правильно работает на моем компьютере.Тест artbear выполняется правильно и для внутреней переменной и для реквизита формы.
  

test_48___________________001.ert ( 29 KB | Загрузки )
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Странный баг 1С 77 :(
Ответ #19 - 03. Марта 2010 :: 05:37
Печать  
Z1 писал(а) 02. Марта 2010 :: 16:11:
У меня твой пример правильно считается и для реквизита формы и для внутренней  переменной.Сама обработка тоже прилагается


Это не мой пример.. Мой пример вот:

  Окр(6199.4299999999999,2,2) = 6199.42
  Окр(6199.42111111111,2,2) = 6199.42
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Странный баг 1С 77 :(
Ответ #20 - 03. Марта 2010 :: 06:10
Печать  
Eprst писал(а) 03. Марта 2010 :: 05:37:
Z1 писал(а) 02. Марта 2010 :: 16:11:
У меня твой пример правильно считается и для реквизита формы и для внутренней  переменной.Сама обработка тоже прилагается


Это не мой пример.. Мой пример вот:

 Окр(6199.4299999999999,2,2) = 6199.42
 Окр(6199.42111111111,2,2) = 6199.42


третья 2 это недопустимый параметр в функции Окр.
Точно также чему равен sqrt(-4) результат неопределен.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Странный баг 1С 77 :(
Ответ #21 - 03. Марта 2010 :: 06:48
Печать  
Кто сказал, что недопустимый ?
Он просто не описан в СП..
Аналогично этому, например (определить, есть ли в ТЗ колонка с таким идентификатором):

Код
Выбрать все
Если ТЗ.ВидимостьКолонки("ИмяНесуществующейКолонки")=-1 Тогда
  Сообщить("такой колонки нет в ТЗ");
Иначе
   Сообщить("есть");
КонецЕсли; 



Хотя в СП, ВидимостьКолонки должна возвращать только 0 или 1..
Улыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Странный баг 1С 77 :(
Ответ #22 - 03. Марта 2010 :: 07:05
Печать  
Eprst писал(а) 03. Марта 2010 :: 06:48:
Кто сказал, что недопустимый ?
Он просто не описан в СП..
Аналогично этому, например (определить, есть ли в ТЗ колонка с таким идентификатором):

Код
Выбрать все
Если ТЗ.ВидимостьКолонки("ИмяНесуществующейКолонки")=-1 Тогда
  Сообщить("такой колонки нет в ТЗ");
Иначе
   Сообщить("есть");
КонецЕсли; 



Хотя в СП, ВидимостьКолонки должна возвращать только 0 или 1..
Улыбка

Сори я даже не знал что есть такой параметр 2 перечитал  als
но на моем компьютере получается так ( Весь тест не буду выводить )

Цитата:
Ч103 = 6199.429999999 Окр(Ч103,2,2)  = 6199.42
Ч103 = 6199.429999999 Окр(Ч103,2)  = 6199.43

С третьей двойкой работает неправильно если опускаем третью двойку что по als есть равнозначно третьей двойке то все работает правильно.

PS на всякий случай проверил этот пост и с 1с++ и без 1с++
результат одинаковый.
  
Наверх
 
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: Странный баг 1С 77 :(
Ответ #23 - 03. Марта 2010 :: 11:16
Печать  
artbear писал(а) 01. Марта 2010 :: 15:48:
т.е. я сначала получаю большое число, а потом уже его делю.
После этого округление работает верно.

Очередной сюрприз от 1С Улыбка чтоб им долго икалось !

Вобще то на каком то курсе читалось в ВУЗе. не помню  Плачущий
Но вобще деления и умножения в 1С это что то, Следить, следить, следить!!!
Один раз столкнулся, думал крыша едет по полной! После деления остался знак в 6 разряде, а дальше сравнение на 0. Правда на 7.5 это было. С тех пор, если есть сравнение, то обязатеьно: или округлить до знака или целое, уже на автомате....
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать