Как посмотреть структуру в модуле объекта

1. user1302499 16.03.20 11:24 Сейчас в теме
Как посмотреть структуру в модуле объекта внешней обработки?

Точка остановки не ставится, процедура где эта структура запускается фоновым заданием. Может можно эту структуру отправить в журнал регистрации и там ее посмотреть?
По теме из базы знаний
Найденные решения
19. Boneman 298 16.03.20 14:57 Сейчас в теме
(18) ты уверен тогда, что у тебя вообще фоновое задание ?
У тебя может вообще в обычном обработчике ожидания все напрямую работает ? тогда отладка должна работать...
поставь точку в процедуру кнопки, а дальше пошагово смотри.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. karamazoff 96 16.03.20 11:36 Сейчас в теме
(1)не очень понятно, у вас внешняя обработка подключена в программу или это файл?
6. user1302499 16.03.20 12:06 Сейчас в теме
8. Boneman 298 16.03.20 12:33 Сейчас в теме
(1) покажи кусок кода, откуда ты это фоновое задание запускаешь ?

Если она файловая, то она значит у тебя программно создается - соответственно твоя точка остановки стоит не в этой копии которая запускается.
А если она ищет ссылку по справочнику доп обработок, - то вообще не то отлаживаешь.

А других вариантов и нет, запустить фоновое задание во внешней обработке )
А вообще, для отладки - надо несколько вариантов делать, чтобы не только в фоне, твои процедуры запускались..а чтобы и напрямую можно было вызвать, для отладки.
10. user1302499 16.03.20 13:13 Сейчас в теме
(8)
&НаКлиенте
Процедура ЗапуститьПланировщик(Команда)
	    
	Если Элементы.ЗапуститьПланировщик.Заголовок = "Запустить планировщик" Тогда
		
		Если ИнтервалВыгрузки = 0 
			И ИнтервалЗагрузки = 0 Тогда
			Сообщить( "Не указан интервал для автоматического обмена данными.");
			Возврат;
		КонецЕсли;
		
		Элементы.ЗапуститьПланировщик.Заголовок = "Остановить работу планировщика";
		
		Если ИнтервалВыгрузки > 0 Тогда
			ПодключитьОбработчикОжидания("ВыгрузитьДанные", ИнтервалВыгрузки*60);
		КонецЕсли;
		
		Если ИнтервалЗагрузки > 0 Тогда
			ПодключитьОбработчикОжидания("ЗагрузитьДанные", ИнтервалЗагрузки*60);
		КонецЕсли;
		
		Сообщить("" + ТекущаяДата() + ": Автоматический обмен подключен. Не завершайте сеанс 1С и не закрывайте форму обработки."); 
		
	Иначе
		Элементы.ЗапуститьПланировщик.Заголовок = "Запустить планировщик";
		
		ОтключитьОбработчикОжидания("ВыгрузитьДанные");
		ОтключитьОбработчикОжидания("ЗагрузитьДанные");
		
		Сообщить("" + ТекущаяДата() + ": Автоматический обмен отключен.");
	КонецЕсли;	
	
КонецПроцедуры
Показать
13. Boneman 298 16.03.20 13:56 Сейчас в теме
(10)
ПодключитьОбработчикОжидания("ВыгрузитьДанные", ИнтервалВыгрузки*60);

в этой процедуре что ?
Не процедуру кнопки, а интересует то место - где само фоновое задание подготавливается и запускается.
15. user1302499 16.03.20 14:06 Сейчас в теме
(13) Начало фонового задания:

&НаКлиенте
Процедура ЗагрузитьДанные()
	
	ПроверитьВерсиюОбработки( Токен, ДругойМетодОбмена);
	
	//Если НЕ ПроверкаПодключения( Токен, ДругойМетодОбмена, ИмяКонфигурации) Тогда
	//	Возврат;
	//КонецЕсли;
	
	ЗаписатьНастройки();
				
	НастройкиФормы = СтруктураНастроекКлиент();
	
	ВыполнитьОбменДаннымиНаКлиенте( НастройкиФормы, Истина, Ложь);
	
	ЗаписатьНастройки();
	ЗаписатьЗагруженныеДокументы();
	
	УстановитьУсловноеОформление();
	
	ДругойМетодОбмена = НастройкиФормы.ДругойМетодОбмена;
	
КонецПроцедуры
Показать
16. Boneman 298 16.03.20 14:14 Сейчас в теме
(15) да не то это...
фоновое задание стартуется примерно так... интересно как у тебя оно запускается
	ЭтоВнешняяОбработка = ЭтоВнешняяОбработка();
	

	ТекОбъект = РеквизитФормыВЗначение("Объект");
	//ТекОбъект.ФоноваяФункция(ПараметрыВыполненияОбработки,УникальныйИдентификатор);
	// Получим имя обработки
	Версия = ТекОбъект.Метаданные().Комментарий;
	ИмяОбработки = "Перенос документов из АЦ v."+Версия;
	ИмяОбработки = ?(ЭтоВнешняяОбработка, ХранениеФайлаОбработки, ИмяОбработки);
	
	ПараметрыЗадания = Новый Структура;
	ПараметрыЗадания.Вставить("ИмяОбработки",  ИмяОбработки);
	ПараметрыЗадания.Вставить("ИмяМетода",   "ФоноваяФункция");
	ПараметрыЗадания.Вставить("ПараметрыВыполнения", ПараметрыВыполненияОбработки);
	ПараметрыЗадания.Вставить("ЭтоВнешняяОбработка", Истина);
	Если НЕ ЭтоВнешняяОбработка Тогда
	ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка",(Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОбработки)));
	КонецЕсли;

	ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
	ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр(ИмяЗадания);
	ПараметрыВыполнения.ЗапуститьВФоне = Истина;
	ПараметрыВыполнения.Вставить("ИдентификаторФормы", УникальныйИдентификатор);
	ПараметрыВыполнения.НаименованиеФоновогоЗадания = ИмяЗадания;
	ПараметрыВыполнения.КлючФоновогоЗадания = КлючФЗ;
	
	ВыполняемыйМетод = "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки"; // Выполняем процедуру из модуля объекта
	Возврат ДлительныеОперации.ВыполнитьВФоне(ВыполняемыйМетод, ПараметрыЗадания, ПараметрыВыполнения);
Показать
18. user1302499 16.03.20 14:34 Сейчас в теме
(16) у меня такого нет, я показал как запускается, просто задается интервал времени запуска процедуры
19. Boneman 298 16.03.20 14:57 Сейчас в теме
(18) ты уверен тогда, что у тебя вообще фоновое задание ?
У тебя может вообще в обычном обработчике ожидания все напрямую работает ? тогда отладка должна работать...
поставь точку в процедуру кнопки, а дальше пошагово смотри.
20. user1302499 16.03.20 15:22 Сейчас в теме
(19) Я так и сделал, получилось) Оказалось что действительно все в обычном обработчике работало
2. SyachinS 16.03.20 11:27 Сейчас в теме
Точка останова не ставится по причине того что запускается отдельный сеанс фонового задания, в настройках отладки подключите фоновые задания.
3. user1302499 16.03.20 11:33 Сейчас в теме
(2) Подключил, не помогло
5. MuxaH 16.03.20 11:54 Сейчас в теме
(3) Если клиент-сервер, то проверить, что на сервере приложений debug включен. И ещё, помнится, почему-то внешние обработки не хотели по протоколу TCP/IP отлаживаться, а по HTTP прям сразу взлетело. Но это я могу списать только на собственные баги... Ну а если база файловая, то не знаю - должно работать.
7. user1302499 16.03.20 12:06 Сейчас в теме
(5) База файловая, не работает
9. Sashares 34 16.03.20 12:36 Сейчас в теме
(7)Добавьте в обработку в начало выполняемой процедуры код :

Попытка
а=1/0;
Исключение
КонецПопытки;


И поставьте опцию в конфигураторе - останавливать на ошибках.
karamazoff; +1 Ответить
11. user1302499 16.03.20 13:38 Сейчас в теме
(9)
Попытка
а=1/0;
Исключение
КонецПопытки;


Не подходит вариант, он этого куска кода, будто бы не видит
12. Sashares 34 16.03.20 13:40 Сейчас в теме
(11)Так надо обработку в базе обновить. Вы же через дополнительные отчеты и обработки ее подключаете?
14. user1302499 16.03.20 13:58 Сейчас в теме
17. vv2 16.03.20 14:18 Сейчас в теме
Если запускаете длительную операцию через БСП , то для запуска длительной опареции в основном потоке:
В конфигураторе в Сервис-Параметры-Запуск 1с:Предприятие - Общие - Параметры запуска поставить "РежимОтладки".
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот