Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить (число прочтений - 1739 )
Frog
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 27. Мая 2008
Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
12. Ноября 2012 :: 22:25
Печать  
Всем привет.
1С 77. У меня много запросов к сторонней базе SQL, для того что бы отлаживать запросы сделана спец. константа, при взводе которой выводится текст запроса. В системе работает функция Перехватчик.ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить(); которая запускается ПриНачалеРаботыСистемы. Так как функция ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить разбивает строку с количеством символов меньше чем реально может вместить окно сообщений, то при выводе теста SQL запроса запрос разрезается в самых неожиданных местах. Потом в студии приходится его собирать. Хочу сделать что бы при взводе константы отладки метод отключался.
Собственно вопрос: Как отключить метод?
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
Ответ #1 - 13. Ноября 2012 :: 03:29
Печать  
По-моему, есть способ проще: самому резать запрос при выводе, например, построчно. Не в прямом смысле, что каждую строку отдельно выводить, а считать символы в строках и выводить строки, суммарное число символов в котолых меньше 400.
  
Наверх
 
IP записан
 
Frog
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 27. Мая 2008
Re: Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
Ответ #2 - 13. Ноября 2012 :: 06:50
Печать  
способ рабочий конечно, но все что касается посчитать количество символов и отрезать в 1С у меня вызывает депрессию. Я люблю что бы все было по фэншую Улыбка
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
Ответ #3 - 13. Ноября 2012 :: 07:05
Печать  
Выводи лучше тексты в объект(ы) Текст - это удобнее
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
Ответ #4 - 13. Ноября 2012 :: 08:35
Печать  
Однако, с текстами, которые выплевывает ODBCRecordSet.Отладка(1), это не поможет, на сколько я понимаю.
  
Наверх
 
IP записан
 
Frog
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 27. Мая 2008
Re: Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
Ответ #5 - 13. Ноября 2012 :: 21:25
Печать  
ADirks писал(а) 13. Ноября 2012 :: 07:05:
Выводи лучше тексты в объект(ы) Текст - это удобнее

Как я понимаю штатной фичи нет. Как обычно хотелось же при минимум усилиях получить максимум результата. На самом деле больших запросов не много и пока не нормально их править. Тем более в тестовой базе я отключаю эту разбивку, поэтому основная отладка проходит нормально, а мелкие баги в рабочей пока так справляемся. Для того что бы реализовать предложенный тобой механизм, нужно набросать обработку, оформить её накидать объектов, сделать программный интерфейс в глобальнике, сделать вызов этого интерфейса во всех нужных местах, а их много. Короче леньУлыбка, но все равно всем спасибо.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Отключить - ВключитьРазбиениеДлинныхСтрокДляМетодаСообщить
Ответ #6 - 14. Ноября 2012 :: 06:59
Печать  
нафига обработку-то?

Код
Выбрать все
Процедура ПоказатьТекстЗапроса(Знач _ТекстЗапроса = -1) Экспорт
	Если _ТекстЗапроса = -1 Тогда
		ПолныйТекстЗапроса = ПолныйТекстЗапроса();
	Иначе
		ПолныйТекстЗапроса = _ТекстЗапроса;
	КонецЕсли;


	Попытка
		УстановитьТекстовыеПараметры(РадугаСервис);
		ТекстЗапросаДляОтображения = РадугаСервис.ОбрМетаСКЛ(ПолныйТекстЗапроса);
	Исключение
		Сообщить(РазделительСтрок + ОписаниеОшибки() + РазделительСтрок, "!!!");
		ТекстЗапросаДляОтображения = ПолныйТекстЗапроса;
	КонецПопытки;

	Если стрДлина(ТекстЗапросаДляОтображения) < 1000 Тогда
		Сообщить(ТекстЗапросаДляОтображения);
	Иначе
		Текст = СоздатьОбъект("Текст");
		Текст.ДобавитьСтроку(ТекстЗапросаДляОтображения);
		Попытка
			Текст.Показать(ИмяЗапроса);
		Исключение
			ИмяФайла = КаталогВременныхФайлов() + Формат(ТекущаяДата(), "ДГГГГММДД")
				+ " " + СтрЗаменить(ТекущееВремя(), ":", "_") + " " + GUID() + ".txt";
			Текст.Записать(ИмяФайла);
			Сообщить(ИмяФайла, "i");
		КонецПопытки;
	КонецЕсли

КонецПроцедуры	// ПоказатьТекстЗапроса
 



Пример из класса ТОтчет.Запрос, но общая суть понятна.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать