Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) АктивИкс + Forms.TextBox.1 = вылет 1С (число прочтений - 2897 )
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
АктивИкс + Forms.TextBox.1 = вылет 1С
07. Декабря 2010 :: 08:07
Печать  
Кидаю на форму подбора кнопку. Дальше:
Код
Выбрать все
Процедура ПослеСозданияФормы()
	АтрФормы = СоздатьОбъект("АктивИкс");
	АтрФормы.УстановитьАтрибут(Форма, "ФФлеш");
	Флешка=АтрФормы.СоздатьЭУ("Forms.TextBox.1");
	Флешка.Text="";
КонецПроцедуры 


Перем Флешка,АтрФормы объявлены в модуле подбора.
При закрытии формы подбора, 1С падает без каких либо "кривляний".
FormEx версии 2, 0, 5, 99
1с++ версии 3, 2, 2, 5
Собственно, в чем косяк?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #1 - 07. Декабря 2010 :: 08:24
Печать  
Вот тут ошибка
Цитата:
Флешка.Text="";


Надо

Код
Выбрать все
Флешка.Объект.Text=""; 



  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #2 - 07. Декабря 2010 :: 08:30
Печать  
Eprst,
Попробую сейчас.
Но, вынес объявление Флешка,АтрФормы в глобальник, вылетов пока не обнаружил.
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #3 - 07. Декабря 2010 :: 08:44
Печать  
Eprst писал(а) 07. Декабря 2010 :: 08:24:
Надо

Код
Выбрать все
Флешка.Объект.Text=""; 




Поле агрегатного объекта не обнаружено (Объект)
  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #4 - 07. Декабря 2010 :: 08:54
Печать  
Не, все равно вылетает. Раньше при закрытии формы, сейчас при повторном открытии.
Добавил в ПриЗакрытии() перед АтрФормы = ""; еще и Флешка = "";
буду пробывать.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #5 - 07. Декабря 2010 :: 09:04
Печать  
по моему при закрытии формы надо объект уничтожать
Код
Выбрать все
Процедура ПриЗакрытии()
   АтрФормы.Уничтожить();
   ........
КонецПроцедуры 

  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #6 - 07. Декабря 2010 :: 09:07
Печать  
Z1 писал(а) 07. Декабря 2010 :: 09:04:
по моему при закрытии формы надо объект уничтожать
Код
Выбрать все
Процедура ПриЗакрытии()
   АтрФормы.Уничтожить();
   ........
КонецПроцедуры 


Так тоже не вылетает, как и
Код
Выбрать все
АтрФормы = ""; 


  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #7 - 07. Декабря 2010 :: 09:12
Печать  
Z1 писал(а) 07. Декабря 2010 :: 09:04:
по моему при закрытии формы надо объект уничтожать
Код
Выбрать все
Процедура ПриЗакрытии()
   АтрФормы.Уничтожить();
   ........
КонецПроцедуры 


ну тогда и пиши
Код
Выбрать все
Процедура ПриЗакрытии()
   АтрФормы.Уничтожить();
   АтрФормы = "";
   ........
КонецПроцедуры 



  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #8 - 07. Декабря 2010 :: 09:47
Печать  
filh писал(а) 07. Декабря 2010 :: 08:44:
Eprst писал(а) 07. Декабря 2010 :: 08:24:
Надо

Код
Выбрать все
Флешка.Объект.Text=""; 




Поле агрегатного объекта не обнаружено (Объект)

Праильно, надо

Код
Выбрать все
Флешка = АтрФормы.Объект;
Флешка.Text="" 


Хотя, у тебя и в (0) было всё правильно, это я попутал.

Какие еще вк есть ?
Форма не модально случаем открывается ?

  
Наверх
 
IP записан
 
filh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 36
Зарегистрирован: 23. Августа 2010
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #9 - 07. Декабря 2010 :: 10:56
Печать  
Eprst писал(а) 07. Декабря 2010 :: 09:47:
Какие еще вк есть ?

1sqlite.dll версия 1, 0, 2, 4
turbomd.dll версия 1.0.0.1
Eprst писал(а) 07. Декабря 2010 :: 09:47:
Форма не модально случаем открывается ?


Неа.

Подитожу:
Вынес объявление переменных АтрФормы и Флешка в глобальник.
Дальше, создаю:
Код
Выбрать все
Процедура ПослеСозданияФормы()
	АтрФормы = СоздатьОбъект("АктивИкс");
	АтрФормы.УстановитьАтрибут(Форма, "ФФлеш");
	Флешка=АтрФормы.СоздатьЭУ("Forms.TextBox.1");
	Флешка.Text="";
КонецПроцедуры  


Уничтожаю:
Код
Выбрать все
Процедура ПриЗакрытии()
   ........
   Флешка = "";
   АтрФормы.Уничтожить();
   АтрФормы = "";
КонецПроцедуры 


Вроде вылетов нет. Завтра потестирую на живой базе.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: АктивИкс + Forms.TextBox.1 = вылет 1С
Ответ #10 - 07. Декабря 2010 :: 10:59
Печать  
Можешь после попробовать без выноса переменных в глобальный модуль.
Тоже должно работать.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать