Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Страшные глюки в версии 3.2.4.х (ОЧЕНЬ) (число прочтений - 7075 )
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #15 - 23. Июля 2015 :: 13:43
Печать  
Тест во вложении. 1с++ 3.2.4.1 formex 2.0.5.101
Не актуально, причина через пару сообщений ниже.
« Последняя редакция: 23. Июля 2015 :: 16:39 - Djelf »  
Наверх
www  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #16 - 23. Июля 2015 :: 13:44
Печать  
Шайтанама!
Хорошо, что у меня такое нигде не проявлялось.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #17 - 23. Июля 2015 :: 14:10
Печать  
изучил
вирдикт - грязный код помноженный на, видимо, корявую реализацию функционала ПриЗаписи_ИмяАтрибута

в КОПе ПоставщикДанных.ДеревоЗначений
есть такой код:

Код
Выбрать все
Процедура ПриЗаписи_Отображение(Параметр)
	...
	Если (Параметр > 4) или (Параметр < 1) Тогда
		Параметр = 1;
	КонецЕсли;
 



перепиши его так
Код
Выбрать все
Процедура ПриЗаписи_Отображение(пПараметр)
	Параметр=пПараметр;
	...
	Если (Параметр > 4) или (Параметр < 1) Тогда
		Параметр = 1;
	КонецЕсли;
 



чтоинтересно, так не помогает Процедура ПриЗаписи_Отображение(Знач Параметр)

черт его знает как там реализована эта хренатень ПриЗаписи_
но видимо после изменения значения параметра, как то сносит стек параметров, что сказывается на последующих передачах параметров в другие процедуры/функции
  

1&&2&&3
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #18 - 23. Июля 2015 :: 16:01
Печать  
trad, спасибо, навело на мысль... воспроизвел в идеальном варианте! как я такое упустил?  Злой

Класс Тест

Перем Переменная Экспорт;
Процедура ПриЗаписи_Переменная(Параметр)
     Параметр=100500;
КонецПроцедуры

Вызов класса

Тест = СоздатьОбъект("Тест");
Тест.Переменная = 12;
Сообщить("12="+12);

12=100500

Интересно... это новый подход к арифметике в 1С, столько возможностей... Очень довольный
« Последняя редакция: 23. Июля 2015 :: 17:31 - Djelf »  
Наверх
www  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #19 - 24. Июля 2015 :: 07:20
Печать  
Вывод - не пользовать глобальные переменные где ни попадя.
Улыбка
  
Наверх
 
IP записан
 
quick
Junior Member
**
Отсутствует


LinuxMint, python, CodeTyphon

Сообщений: 83
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 21. Февраля 2008
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #20 - 24. Июля 2015 :: 07:36
Печать  
Грязный код это конечно "прекрасно", но как объяснить то, что после замены компоненты на старую версию глюки тут же исчезли и то, что при использовании отладчика алгоритм иногда отрабатывает, а без него не отрабатывает вовсе.
Если "граязный код" или есть события, то тогда и на старой должен быть этот же глюк.

И самое интересное!!
Если сделать так
Код
Выбрать все
ТекТовар = Таб.Товар;
Если ТипЗначенияСтр(Таб.Товар)<>"Справочник" Тогда
   // я тоже попадаю сюда, даже если Таб.Товар не пустая
КонецЕсли;
 


Это меня совсем вводит в ступор, ощущение что интерпретатор 1С просто сходит с ума именно на этой строке и пофигу что там написано

Исходную обработку я добавил в начало темы.
  
Наверх
ICQ  
IP записан
 
quick
Junior Member
**
Отсутствует


LinuxMint, python, CodeTyphon

Сообщений: 83
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 21. Февраля 2008
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #21 - 24. Июля 2015 :: 07:45
Печать  
Djelf писал(а) 22. Июля 2015 :: 20:00:
Предполагаю, такое возможно из-за ускоренного создания объектов: http://www.1cpp.ru/forum/YaBB.pl?num=1215146216/0

Процедура ПриНачалеРаботыСистемы()
 УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
 УправлениеНастройками.Сбросить("TurboBL");

Пробовали?

Или, для чистоты эксперимента, 1с++ 3.x < 3.0.1.8

Не помогло, глюк повторяется

РЕШЕНО
Глюки исчезли только после отключения оптимизации
Код
Выбрать все
УправлениеНастройками.Сбросить("EnableOptimization");
 


В общем глюк где то с оптимизацией, предлагаю его по дефолту делать выключенным.
  
Наверх
ICQ  
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #22 - 24. Июля 2015 :: 09:26
Печать  
Eprst писал(а) 24. Июля 2015 :: 07:20:
Вывод - не пользовать глобальные переменные где ни попадя.
Улыбка

А где ты увидел глобальную переменную?  Ужас
  
Наверх
www  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #23 - 24. Июля 2015 :: 10:17
Печать  
Djelf писал(а) 23. Июля 2015 :: 16:01:
trad, спасибо, навело на мысль... воспроизвел в идеальном варианте! как я такое упустил?  Злой



О, как прикольно! Зато теперь стало ясно, откуда ноги растут в ошибке класса ПоставщикДанных, о которой я писал раньше: http://www.1cpp.ru/forum/YaBB.pl?num=1285520767/1006#1006

Т.е. нельзя ничего присваивать параметру в функциях ПриЗаписи_
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #24 - 24. Июля 2015 :: 11:36
Печать  
quick писал(а) 24. Июля 2015 :: 07:45:
В общем глюк где то с оптимизацией, предлагаю его по дефолту делать выключенным.

у меня оптимизация включена.
ни на старых, ни на новых версиях компоненты таких глюков не встречал.
предлагаю еще поискать причину глюка
  

1&&2&&3
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #25 - 24. Июля 2015 :: 14:57
Печать  
Цитата:
Глюки исчезли только после отключения оптимизации
УправлениеНастройками.Сбросить("EnableOptimization");

Это вообще не понятно как может влиять.

Ты учел что http://www.1cpp.ru/docum/icpp/html/SettingsManager.html#id3
Цитата:
4. Отключение настроек "ТаблицаИсходнаяТаблица", "ТурбоБЛ", "ПерехватитьСобытияГК" будет выполнено только после перезагрузки 1С, хотя изменения в реестр будут записаны сразу же.


Выполни, пожалуйста, из своей обработки, которая глючит, в тот момент когда она не глючит

Код
Выбрать все
УправлениеНастройками = СоздатьОбъект("УправлениеНастройками");
Сообщить("ПерехватитьСобытияГК "+УправлениеНастройками.Получить("ПерехватитьСобытияГК"));
Сообщить("Оптимизация "+УправлениеНастройками.Получить("Оптимизация"));
Сообщить("Проверка типов "+УправлениеНастройками.Получить("Проверка типов"));
Сообщить("Отладка "+УправлениеНастройками.Получить("Отладка"));
Сообщить("ТаблицаИсходнаяТаблица "+УправлениеНастройками.Получить("ТаблицаИсходнаяТаблица"));
Сообщить("ТурбоБЛ "+УправлениеНастройками.Получить("ТурбоБЛ")); 



P.S. измени код в этой обработке, она легко может работать в 10-100 раз быстрее минимум.
« Последняя редакция: 24. Июля 2015 :: 18:23 - Djelf »  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #26 - 24. Июля 2015 :: 16:32
Печать  
alyuev писал(а) 24. Июля 2015 :: 10:17:
Т.е. нельзя ничего присваивать параметру в функциях ПриЗаписи_

а интересно бы смотрелось изменение правой части в операторах присваивания
  

1&&2&&3
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #27 - 24. Июля 2015 :: 18:46
Печать  
trad писал(а) 24. Июля 2015 :: 16:32:
а интересно бы смотрелось изменение правой части в операторах присваивания

Тогда почему 1с++ это позволяет?  Нерешительный
Исправление, да и черт с ним, но хотя бы в документацию добавьте.
  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #28 - 25. Июля 2015 :: 06:02
Печать  
Цитата:
Тогда почему 1с++ это позволяет?

я уже писал:
видимо, корявая реализацию функционала ПриЗаписи_ИмяАтрибута
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Страшные глюки в версии 3.2.4.х (ОЧЕНЬ)
Ответ #29 - 31. Июля 2015 :: 12:33
Печать  
trad писал(а) 23. Июля 2015 :: 13:30:
предлагаю выключить комп и окропить его святой водой

О, да! А лучше - не выключая, и не жалеть воды на благое дело!
Это же на обычных глюках можно съэкономить, а страшные - они требуют особой обстановки и вдохновенной работы, так сказать, с огоньком. )

Djelf писал(а) 23. Июля 2015 :: 16:01:
trad, спасибо, навело на мысль... воспроизвел в идеальном варианте! как я такое упустил?  Злой

Ну, вот суперский же пример.
1С прекрасно оптимизировала хранение константы "12", а мы ее бац! - и модифицировали во все места.
Должен заметить, что данная часть кода не являлась приоритетной при разработке icpp, во всяком случае, моя паранойя обошла ее стороной.
С другой стороны, - пойди еще догадайся, что 1С хранение констант таким образом оптимизирует...
  

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