Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Зависание 1С при нажатии кнопки MSComctlLib.Toolbar (число прочтений - 3130 )
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
08. Ноября 2010 :: 09:55
Печать  
Если в обработчике события нажатия кнопки MSComctlLib.Toolbar вывести какой-либо диалог 1С (Вопрос, Подтверждение) - то 1С выпадает в осадок.
Кто как обходил эту проблему?
Ввод значений, подбор и всякие другие (не)модальности работают прекрасно, но вот с диалогами проблема.
Пока в голову приходит только одна мысль - использовать системный MessageBox.
  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #1 - 08. Ноября 2010 :: 10:00
Печать  
У меня работает.
В частности в журнале документов при нажатии кнопки отмены проведения выдает запрос на подтверждение отмены проведения..
При этом используется стандартный диалог 1С "Вопрос()"
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #2 - 09. Ноября 2010 :: 02:07
Печать  
Может, это связано еще и с тем, что на форме одновременно присутствуют несколько ТП, MSComctlLib.Toolbar и MSComctlLib.TabStrip ... но в том месте кода вызывается только обработчик клика тулбара ... например, нажатие на крестик (тоже в тулбаре) для закрытия вызывает вопрос подтверждения сохранения...

P.S.: Попробовал с MessageBox - работает отлично, но не вижу способа прикрутить туда таймаут ... оно же модально для 1С.

P.P.S.: Пытаюсь заюзать недокументированную мелкомягкую  MessageBoxTimeOut, но что-то не хавает враппер последние два параметра ...
Разобрался - врапперу важен регистр имен. Правильное имя MessageBoxTimeoutW - маленькая O!
« Последняя редакция: 09. Ноября 2010 :: 04:06 - Dmitry The Wing »  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #3 - 09. Ноября 2010 :: 07:19
Печать  
А у ТП установлено автообновление? Попробуй отключить. Попробуй создать форму,  отдельно с тулбаром и проверить этот глюк.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #4 - 09. Ноября 2010 :: 07:53
Печать  
ТП.ТаймаутОбновления = 0;
И так было во всех ТП, что использовал.
Не работают только Вопрос и Предупреждение. Больше пока ничего не портило ... также есть проблема падения при смене видимости колонок ТП - пока отключил до того "счастливого времени", когда оно будет ... некогда сидеть и методично изучать закономерности, вызываюшие падения ... как обычно, все задачи, расписанные на несколько месяц вперед, надо было выполнить еще вчера...
  
Наверх
 
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #5 - 09. Ноября 2010 :: 08:36
Печать  
Dmitry The Wing писал(а) 08. Ноября 2010 :: 09:55:
Если в обработчике события нажатия кнопки MSComctlLib.Toolbar вывести какой-либо диалог 1С (Вопрос, Подтверждение) - то 1С выпадает в осадок.


Обработчик этого события в форме, или в классе?

Есть у меня класс "УчетнаяПолитика", объект класса - в глобальной переменной. И вывод предупреждения из метода этого класса валит 1С  Озадачен
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #6 - 09. Ноября 2010 :: 08:42
Печать  
nvg писал(а) 09. Ноября 2010 :: 08:36:
Обработчик этого события в форме, или в классе?

Обработчик на форме перенаправляет вызов к функции класса
  
Наверх
 
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #7 - 09. Ноября 2010 :: 08:44
Печать  
Dmitry The Wing писал(а) 09. Ноября 2010 :: 08:42:
nvg писал(а) 09. Ноября 2010 :: 08:36:
Обработчик этого события в форме, или в классе?

Обработчик на форме перенаправляет вызов к функции класса


И Предупреждение() вызывается уже в методе класса?
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #8 - 09. Ноября 2010 :: 10:05
Печать  
nvg писал(а) 09. Ноября 2010 :: 08:44:
И Предупреждение() вызывается уже в методе класса?

Именно
  
Наверх
 
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #9 - 09. Ноября 2010 :: 10:28
Печать  
Dmitry The Wing писал(а) 09. Ноября 2010 :: 10:05:
nvg писал(а) 09. Ноября 2010 :: 08:44:
И Предупреждение() вызывается уже в методе класса?

Именно


По всей видимости, причина одна, только вот где собака зарыта?
Сейчас вылеты прекратились, но после чего конкретно, пока не пойму.

Ранее файл класса был в формате ert  и хранился в каталоге БД.
1CPP.dll - там же. Сейчас разложил по подкаталогам - вылеты прекратились... Экземпляр класса тоже в другом месте создается.

Есть предположение, что хранить файл реализации класса в каталоге БД не есть хорошо. Появляются иногда какие-то странные непонятности при работе, коих при разработке (файл в подкаталоге БД) не наблюдалось.
Но это так, лишь предположение, истинной причины пока не понял.
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Зависание 1С при нажатии кнопки MSComctlLib.Toolbar
Ответ #10 - 10. Ноября 2010 :: 02:50
Печать  
Не думаю, что расположение файла класса играет какую-либо роль. У меня все классы расположены в отдельном каталоге в корне раздела диска и этот каталог слинкован в другие корни ... т.о. все конфигурации имеют одинаковый доступ до классов - папка "\classes\".
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать