Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) загадка, блин, от 1с (число прочтений - 2519 )
novichek
Экс-Участник


загадка, блин, от 1с
17. Декабря 2008 :: 07:24
Печать  
1. Есть в документе, в табличной части колонка с типом "число",1 и стоит "V итог по колонке".
2. Вводим в документ 10 строк и в каждой строке в эту колонку пишем 1.

Вопрос: что мы увидим в DHXXX и что получим с пом. Док.Итог("ХХХ")? Улыбка
  
Наверх
 
IP записан
 
Alex_Bob
Full Member
***
Отсутствует



Сообщений: 136
Местоположение: Липецк
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #1 - 17. Декабря 2008 :: 07:27
Печать  
Я бы на месте 1С ответил: а вот не надо так делать. Сделайте Тип Число 5.0
  

Необходимо время, чтобы восстановить хаос. (с) Дж. Буш (младший)
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #2 - 17. Декабря 2008 :: 07:41
Печать  
Цитата:
1. Есть в документе, в табличной части колонка с типом "число",1 и стоит "V итог по колонке".
2. Вводим в документ 10 строк и в каждой строке в эту колонку пишем 1.

Вопрос: что мы увидим в DHXXX и что получим с пом. Док.Итог("ХХХ")? Улыбка

переполнение разрядов - а число скорее всего 9 ( не сказал dbf,sql).
колво разрядов должно быть с запасом тем более надо смотреть на какой топ оно отображается в бд и учитывать это.
скажем для сумм рублей  (ИХМО) надо всегда ставить 19,2 и не думать больше об этом.
  
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: загадка, блин, от 1с
Ответ #3 - 17. Декабря 2008 :: 07:41
Печать  
фишка-то в том что будь оно хоть число 10.0, под итог по строкам было бы логичнее отводить побольше места чем под исходные данные в строках. А так мы полюбому имеем шанс потерять разряд-другой из-за переполнения. Причем теряется он скромненько, без предупреждения.

ЗЫ: Честно говоря, когда писал первый пост был уверен что в DH, будет 9, но Итог("ХХХ") вернет правильный результат... видимо первые тесты были недостаточно "чистыми". Теперь вижу что они одинаковы... и просто в ах#е (пардон) как же мы работали все это время. Багофича поймана случайно на рабочей базе Печаль
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #4 - 17. Декабря 2008 :: 07:45
Печать  
Цитата:
фишка-то в том что будь оно хоть число 10.0, под итог по строкам было бы логичнее отводить побольше места чем под исходные данные в строках. А так мы полюбому имеем шанс потерять разряд-другой из-за переполнения. Причем теряется он скромненько, без предупреждения.

в регистрах таблицы rg еще круче. в sql версии если переполнение возникнет -99999999 то 1с запишет  +99999999 и тебе тоже ничего не скажет. т.е. мало того что переполнение но еще и знак поменяется т.е. уже не ты должен а тебе должны.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #5 - 17. Декабря 2008 :: 08:01
Печать  
Я недавно поднимал похожую тему Улыбка
Также в регистре для ресурса типа Флаг задал длину 1, и начались косяки в отчетах.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #6 - 17. Декабря 2008 :: 10:38
Печать  
Alex_Bob писал(а) 17. Декабря 2008 :: 07:27:
Я бы на месте 1С ответил: а вот не надо так делать. Сделайте Тип Число 5.0

Я бы на месте пользователей ответил бы 1С-у: а вот не надо так делать. Если ты начинаешь хранить в таблицах неверные данные - ты хоть сообщи об этом пользователю. А то это прямо вредительство получается.

А автору можно только пожелать дальнейших успехов в поисках баянов. Все же в 7.7 вряд ли можно найти какую-то принципиально новую какашку.
  
Наверх
www  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #7 - 17. Декабря 2008 :: 10:55
Печать  
fez писал(а) 17. Декабря 2008 :: 10:38:
Все же в 7.7 вряд ли можно найти какую-то принципиально новую какашку.


Можно Федор, можно. Вот я тут недавно "буянил" в разделе прямых запросов по поводу хранения сальдо в таблице 1SBKKTL.
Хотя тоже наверное баян.  Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: загадка, блин, от 1с
Ответ #8 - 17. Декабря 2008 :: 14:30
Печать  
fez писал(а) 17. Декабря 2008 :: 10:38:
Alex_Bob писал(а) 17. Декабря 2008 :: 07:27:
Я бы на месте 1С ответил: а вот не надо так делать. Сделайте Тип Число 5.0

Я бы на месте пользователей ответил бы 1С-у: а вот не надо так делать. Если ты начинаешь хранить в таблицах неверные данные - ты хоть сообщи об этом пользователю. А то это прямо вредительство получается.

А автору можно только пожелать дальнейших успехов в поисках баянов. Все же в 7.7 вряд ли можно найти какую-то принципиально новую какашку.


Сколько бы разрядов не выделить под итог - всегда можно найти количество строк при котрых будет переполнение.
Т.е. механизм хранения итогов по колонке изначально не может гарантировать безошибочность в 100% случаях.
Можно только снизить вероятность.
Т.е. большой ошибки 1С поэтому нет.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #9 - 17. Декабря 2008 :: 14:39
Печать  
kiruha писал(а) 17. Декабря 2008 :: 14:30:
fez писал(а) 17. Декабря 2008 :: 10:38:
Alex_Bob писал(а) 17. Декабря 2008 :: 07:27:
Я бы на месте 1С ответил: а вот не надо так делать. Сделайте Тип Число 5.0

Я бы на месте пользователей ответил бы 1С-у: а вот не надо так делать. Если ты начинаешь хранить в таблицах неверные данные - ты хоть сообщи об этом пользователю. А то это прямо вредительство получается.

А автору можно только пожелать дальнейших успехов в поисках баянов. Все же в 7.7 вряд ли можно найти какую-то принципиально новую какашку.


Сколько бы разрядов не выделить под итог - всегда можно найти количество строк при котрых будет переполнение.
Т.е. механизм хранения итогов по колонке изначально не может гарантировать безошибочность в 100% случаях.
Можно только снизить вероятность.
Т.е. большой ошибки 1С поэтому нет.

и да и нет. в регистрах знак зачем менять переполнение rg в минус ? ( версия 1c sql )
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: загадка, блин, от 1с
Ответ #10 - 17. Декабря 2008 :: 19:33
Печать  
1С может поймать факт переполнения?
Может.
В этот момент она может что-нибудь сказать пользователю?
Может.
Она это делает?
Нет.

В этом-то и заключается большая ошибка 1С-а. У пользователя в таблицах неверные данные, а он об этом - ни сном, ни духом. А что там конкретно неверно - 9999.99 или знак поменялся - по большому счету уже и не важно.

Я вообще не хочу обсуждать, корректно ли обрабатывает 1С факт переполнения или нет. Ибо считаю, что этим вопросом должен заниматься пользователь. Только пользователь может принять правильное решение, которое наилучшим образом подходит для его ситуации. Увеличит ли он размерность, или разделит регистр на два, или базу свернет - это не важно.

Важно то, что в таблице неверные данные. Пользователь ДОЛЖЕН об этом своевременно узнать.
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать