Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Нашел таки ошибку в ИТ (icpp 3.2.2.0) (число прочтений - 7228 )
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Нашел таки ошибку в ИТ (icpp 3.2.2.0)
22. Февраля 2013 :: 22:03
Печать  
привет всем!

столкнулся с довольно неприятной ошибкой, проломал сегодня голову, это явно внутри (

в общем, демонстрашка - обратите внимание на поведении колонки Сумма2 после табошибка.Группировать...

зы: релиз 3.2.2.0
« Последняя редакция: 23. Февраля 2013 :: 12:33 - kms »  

_________________005.ert ( 61 KB | Загрузки )
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нашел таки ошибку в ИТ
Ответ #1 - 23. Февраля 2013 :: 12:31
Печать  
Предлагаю прикинуть, не этот ли вариант исправлен здесь:
http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/18#18

Соответственно, проверить на последней релизной версии (3.2.4.0).
Если сохранится, регистрируйте в багзилле, постараюсь найти время и посмотреть, в чем дело.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #2 - 23. Февраля 2013 :: 16:12
Печать  
ок, спасибо. пойду смотреть
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #3 - 23. Февраля 2013 :: 17:07
Печать  
нет, на 3.2.4.0 то же самое. закинул в багзиллу Ошибка 4554
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #4 - 25. Февраля 2013 :: 09:58
Печать  
А чего за ошибка то хоть ?
И куда там смотреть ?
И что смотреть ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #5 - 25. Февраля 2013 :: 10:10
Печать  
А ну посмотрел,
суммируешь по колонке, в которой есть не числовые значения и ожидаешь правильный результат ?
Ну дык це же не ТЗ, тут явно нуль пихать надо в значение строки в "числовую" колонку суммирования.
Тогда при группировать будет усё правильно.
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #6 - 25. Февраля 2013 :: 11:06
Печать  
ну это понятно, что нуль.
проблема в том, что обычно ИТ суммирует нормально, даже с учетом содержащихся в некоторых строках неопределенных значений.
И куча кода написано с учетом того, что это так.

Но здесь вообще другой случай. Просто попадает значение из соседней колонки. если в примере перебить 10, что я набил для примера, на разные числа, будет несколько наглядней
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #7 - 25. Февраля 2013 :: 12:24
Печать  
Я б не рассчитывал на чудо и пихал бы нуль - тогда итог всегда гарантирован.
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #8 - 25. Февраля 2013 :: 12:30
Печать  
да привык я уж, что постоянно куча таблиц соединяются через левое соединение. вполне резонно, что при этом не везде нули; скажем так - далеко не везде. Никогда же не хочется писать лишний код, согласитесь.
Оно то раньше всегда работало - и код лаконичный, приятно посмотреть. Неопределено - значит ноль.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #9 - 25. Февраля 2013 :: 17:18
Печать  
Знаете, здесь проблема не такая банальная, как может показаться.
Если добавить перед самой группировкой строку:
Код
Выбрать все
	табОшибка =табОшибка.Копия(1,1);
 


проблема исчезнет.

Также проблемы не будет, если вместо удаления колонки, ее переименовать:
Код
Выбрать все
//	табОшибка.удалитьколонку("тзПотомки");
	табОшибка.ПереименоватьКолонку("тзПотомки", "архив");
 



Т.е. скорее всего, мы имеем дело с возникновением неких кросс-ссылок после удаления колонки.
Причем условием возникновения проблемы является наличие пустых значений перемещаемых данных (т.е. в колонках "за" удаляемой).

Упрощенный вариант теста (чтобы не загружать мозг лишними вычислениями):
Код
Выбрать все
	_т =СоздатьОбъект("ИндексированнаяТаблица");
	_т.НоваяКолонка("Измерение1");
	_т.НоваяКолонка("Измерение2");
	_т.НоваяКолонка("Врем");
	_т.НоваяКолонка("Значение1");
	_т.НоваяКолонка("Значение2");

	_т.НоваяСтрока();
	_т.Значение1 =10;
	_т.Значение2 =10;

	_т.НоваяСтрока();
	_т.Значение1 =10;

	_т.УдалитьКолонку("Врем");

	_т.Показать();
	_т.Группировать("Измерение1:Измерение1;Измерение2:Измерение2", "Значение1,Значение2");
	_т.Показать();
 



Резюмируя: проблема крайне неприятная и подлежит исправлению.
Пока к удалению колонок лучше отнестить с большой осторожностью.

ol неплохая тема получилась, спасибо.
Да, но этта, советую все же не задерживаться на 3.2.2.0, именно из-за ошибки, ссылку на которую я дал выше (хотя она и не имеет отношения к данной проблеме).
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #10 - 25. Февраля 2013 :: 19:18
Печать  
icpp 3.2.4.0 bf1

Зачеркиваю в связи с обновлением информации в следующем посте.

Вариант решения 4554 в первом приближении.
У меня нет сейчас доступа к CVS на запись и к ряду инструментов, чтобы проверить некоторые гипотезы.
Поэтому недели две повисит пока здесь; если отпишитесь о результате, это будет хорошо.
Изменения по сравнению с релизом 3.2.4.0 точечные - только в технике копирования пустых значений при удалении колонки ИТ.

Кусочек кода, который был изменен (опять же, пока не залито в CVS)
Код
Выбрать все
//VTExtRow.cpp
void CVTExtRow::RemoveColumn(int nCol)
{
	CValue *ptr = pValues + nCol;

	nSize--;
	for( int i = nCol; i < nSize; i++, ptr++ )
	{
		CValue const& val = *(ptr + 1);
		if (val.GetTypeCode() != UNDEFINE_TYPE_1C)
			*ptr = val;
		else
 			ptr->Reset();
	}
}
 


« Последняя редакция: 26. Февраля 2013 :: 13:17 - kms »  

icpp-3-2-4-0-bf1.rar ( 561 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #11 - 26. Февраля 2013 :: 13:15
Печать  
[b]icpp 3.2.4.0 bf2[/b]

[-] 4554 Исправлена проблема суммирования при группировке ИТ после удаления колонки

--
update к предыдущим предостережениям:

Анализ проблемы показал, что она не носит фундаментального характера и проявляется исключительно при использовании метода "Группировать" после удаления колонок, предшествующих суммируемым, при наличии нечисловых данных в суммируемых колонках.
[sub]... завтра эту фразу я сам не пойму, но не важно, проблема исправлена :) [/sub]

Так что родимый город вправе спать спокойно, кроме вышеобозначенного случая.
В данном виде 3.2.4.0 bf2, видимо, будет официально выпущена в виде 3.2.4.1 в середине марта.
  

icpp-3-2-4-0-bf2.rar ( 572 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #12 - 26. Февраля 2013 :: 17:21
Печать  
йес! ошибка ушла!
респект!
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нашел таки ошибку в ИТ (icpp 3.2.2.0)
Ответ #13 - 15. Марта 2013 :: 12:23
Печать  
Ну, вот и отлично. Улыбка
Выложил в качестве 3.2.4.1: http://www.1cpp.ru/forum/YaBB.pl?num=1332077808/4#4
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать