Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Выдача сообщений об ошибках в 1С++ (число прочтений - 6283 )
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Выдача сообщений об ошибках в 1С++
09. Апреля 2008 :: 06:09
Печать  
Неприятность в том, что когда строка с этим самым сообщением слишком длинная, то 1С выдаёт модальное окно с текстом "Строка превышает какую-то там длину". В интерактивном режиме это не страшно, но вот в режиме робота - плохо. Окно выдаётся, робот останавливается. При этом ошибка - всего лишь ошибка блокировки.

Собственно, предложение: обрезать сообщение об ошибке до нужной длины, чтобы это треклятое модальное окно не вылазило.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #1 - 09. Апреля 2008 :: 06:23
Печать  
Леха, прошу в багзиллу Улыбка
Самому этот баг надоел, нужно покопать.
ЗЫ а вообще это баг метода Сообщить Печаль - на разных компах где-то 460-500 символов дают ошибку.
  

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


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #2 - 09. Апреля 2008 :: 06:52
Печать  
http://www.1cpp.ru/bugs/show_bug.cgi?id=3711

Приведу доп. информацию оттуда, чтоб не лазить.

Код
Выбрать все
Функция ПовторитьСтроку(Стр, Знач нПовторов) Экспорт
	  Рез = "";
	  Пока нПовторов > 0 Цикл
		    Рез = Рез + Стр;
		    нПовторов = нПовторов - 1;
	  КонецЦикла;
	  Возврат Рез;
КонецФункции

Процедура ДлинноеСообщение()
	  стр = ПовторитьСтроку("1", 490);

	  Сообщить(ПовторитьСтроку("1", 490)); //проходит

	  Сообщить(стр+РазделительСтрок+стр); //проходит

	  Сообщить(стр+стр); //выдаётся модальное окно
КонецПроцедуры 



Из второго Сообщить() видно, что "допустимая длина" - это не для
всего сообщения, а только для одной строчки (до разделителя
строк).

Если в этом тесте вместо
Сообщить(ПовторитьСтроку("1", 490));
написать
Сообщить(ПовторитьСтроку("1", 499));
то выдаётся 2 модальных окна на последующие Сообщить().  Для меня
такое поведение несколько загадочно.
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #3 - 09. Апреля 2008 :: 08:38
Печать  
Я предлагаю сделать какое нибудь свойство в настройках, чтобы полное сообщение об ошибке отправлялось только в журнал регистрации, а по Сообщить() выдавалось что нить типа "Ошибка в модуле XXX. Подробности в журнале регистрации". Эта опция, само собой, д.б. отключаемой. Типа опции "Отладка". Так можно сделать ?
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #4 - 09. Апреля 2008 :: 08:47
Печать  
mash писал(а) 09. Апреля 2008 :: 08:38:
Я предлагаю сделать какое нибудь свойство в настройках, чтобы полное сообщение об ошибке отправлялось только в журнал регистрации, а по Сообщить() выдавалось что нить типа "Ошибка в модуле XXX. Подробности в журнале регистрации". Эта опция, само собой, д.б. отключаемой. Типа опции "Отладка". Так можно сделать ?

Нет, так не удобно Печаль
ИМХО полное сообщение пусть идет в журнал регистрации, а вот часть (символов 400 с небольшим) можно и нужно выдавать на экран. Лично мне интересно сразу видеть, в чем и где косяк.
Наметки к решению есть, по аналогии с моим перехватом непойманных ошибок и работы с журналом регистрации Улыбка в 1С++
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Выдача сообщений об ошибках в 1С++
Ответ #5 - 09. Апреля 2008 :: 14:03
Печать  
artbear писал(а) 09. Апреля 2008 :: 08:47:
ИМХО полное сообщение пусть идет в журнал регистрации, а вот часть (символов 400 с небольшим) можно и нужно выдавать на экран. Лично мне интересно сразу видеть, в чем и где косяк.

Еще как вариант - просто нарезать несколько сообщений по 460 байт.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #6 - 09. Апреля 2008 :: 14:29
Печать  
kms писал(а) 09. Апреля 2008 :: 14:03:
artbear писал(а) 09. Апреля 2008 :: 08:47:
ИМХО полное сообщение пусть идет в журнал регистрации, а вот часть (символов 400 с небольшим) можно и нужно выдавать на экран. Лично мне интересно сразу видеть, в чем и где косяк.

Еще как вариант - просто нарезать несколько сообщений по 460 байт.

Да, про такой я забыл Улыбка
Лучше всего, конечно, он.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #7 - 09. Апреля 2008 :: 14:31
Печать  
Только 460 все равно многовато.
Я в свое время пару лет назад тестил этот баг, у меня на какой-то машине и на длине, чуть-чуть поменьше, вылетало Улыбка
Но это уже не проблема Улыбка
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Выдача сообщений об ошибках в 1С++
Ответ #8 - 09. Апреля 2008 :: 14:35
Печать  
Вообще, странно.
У меня вот такая штука во всех глобальниках (лет 10 уже Улыбка)

Код
Выбрать все
Процедура _Лог(__стр,__марк=".") Экспорт
	Сообщить(Лев(__стр,496),__марк);
КонецПроцедуры
 


И все ок.

Но не спорю, может быть, какими-то тайными тропами, доступными только избранным, я и не прошел. Улыбка
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #9 - 09. Апреля 2008 :: 15:32
Печать  
kms писал(а) 09. Апреля 2008 :: 14:35:
Вообще, странно.
У меня вот такая штука во всех глобальниках (лет 10 уже Улыбка)

Если бы это еще на Отладка(1) работало Улыбка
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Выдача сообщений об ошибках в 1С++
Ответ #10 - 10. Апреля 2008 :: 06:06
Печать  
Arta писал(а) 09. Апреля 2008 :: 15:32:
kms писал(а) 09. Апреля 2008 :: 14:35:
Вообще, странно.
У меня вот такая штука во всех глобальниках (лет 10 уже Улыбка)

Если бы это еще на Отладка(1) работало Улыбка


+1

а длинные строки запроса автоматически переносить, например, когда формируешь конструкцию:
Код
Выбрать все
<Поле> in ('par1','par2','par3', ... ,'par250') 



удобно было бы не разбивать (лишь для отладки) строку параметров на подстроки, а возложить это на парсер.

  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #11 - 10. Апреля 2008 :: 07:09
Печать  
Arta писал(а) 09. Апреля 2008 :: 15:32:
kms писал(а) 09. Апреля 2008 :: 14:35:
Вообще, странно.
У меня вот такая штука во всех глобальниках (лет 10 уже Улыбка)

Если бы это еще на Отладка(1) работало Улыбка

Прошу в багзиллу Улыбка
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Выдача сообщений об ошибках в 1С++
Ответ #12 - 10. Апреля 2008 :: 07:37
Печать  
sml писал(а) 10. Апреля 2008 :: 06:06:
удобно было бы не разбивать (лишь для отладки) строку параметров на подстроки, а возложить это на парсер.

Да ну; парсер (и т.п.) к проблемам вывода длинных строк в 1С не имеет никакого отношения.
Соответственно, имеет право вообще о них ничего не знать, кроме одного безопасного способа отображения информации.
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Выдача сообщений об ошибках в 1С++
Ответ #13 - 10. Апреля 2008 :: 07:39
Печать  
+1
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Выдача сообщений об ошибках в 1С++
Ответ #14 - 10. Апреля 2008 :: 08:00
Печать  
kms писал(а) 09. Апреля 2008 :: 14:35:
Вообще, странно.
У меня вот такая штука во всех глобальниках (лет 10 уже Улыбка)

Код
Выбрать все
Процедура _Лог(__стр,__марк=".") Экспорт
	Сообщить(Лев(__стр,496),__марк);
КонецПроцедуры
 


И все ок.

Но не спорю, может быть, какими-то тайными тропами, доступными только избранным, я и не прошел. Улыбка


Я правильно понимаю, что ты вместо Сообщить() пишешь _Лог() ?
Если да, то это все-таки немного не то. Так как Алексей имел ввиду не те сообщения, которые мы выводим, а которые выбрасывает система/ВК при возникновении ошибки...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать