Запуск обработки по расписанию

1. 5225688vd 31.01.23 12:56 Сейчас в теме
Коллеги, добрый день. будьте добры подскажите пожалуйста, второй день бьюсь не могу понять почему обработка не запускается по расписанию. Вот код:
&НаСервере
Процедура кнЗапуститьАвтоматическоеВыполнениеНаСервере() Экспорт
	
	ЗначениеОбъекта = РеквизитФормыВЗначение("Объект");		
	ЗначениеОбъекта.ВыполнитьКоманду("Команда_Выгрузить");
	ЗначениеВРеквизитФормы(ЗначениеОбъекта, "Объект");	
	
КонецПроцедуры

&НаКлиенте
Процедура кнЗапуститьАвтоматическоеВыполнение(Команда)Экспорт
	кнЗапуститьАвтоматическоеВыполнениеНаСервере();
КонецПроцедуры

Это процедуры в модуле формы.

Перем Команда_ФормаВыгрузить Экспорт;
Перем Команда_Выгрузить Экспорт;

Перем ИмяФайлаЛОГа Экспорт;
Перем ПолныйПутьКФайлуЛОГа Экспорт;
Перем ЗаписьЛога Экспорт;



Функция СведенияОВнешнейОбработке() Экспорт
	
	ИмяОбработки = Метаданные().Представление();
	ПараметрыРегистрации = Новый Структура;
	
	ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
	ПараметрыРегистрации.Вставить("Назначение", Неопределено);
	ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = '" + ИмяОбработки + "'"));
	ПараметрыРегистрации.Вставить("Версия", "3.2");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", ложь);
	ПараметрыРегистрации.Вставить("Информация", НСтр("ru = '" + ИмяОбработки + "'"));
	//ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	
	ДобавитьКоманду(ТаблицаКоманд,
					НСтр("ru = '" + ИмяОбработки + " (форма)'"),
					Команда_ФормаВыгрузить,
					"ОткрытиеФормы",
					Истина);
					
	ДобавитьКоманду(ТаблицаКоманд,
					НСтр("ru = '" + ИмяОбработки + " (по расписанию)'"),
					КомандаСоздать,
					"ВызовСерверногоМетода",
					Истина);
	
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

////////////////////////////////////////////////////////////­/////////////////
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

Функция ПолучитьТаблицуКоманд()
	
	Команды = Новый ТаблицаЗначений;
	Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
	Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
	
	Возврат Команды;
	
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
	
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление;
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование = Использование;
	НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
	НоваяКоманда.Модификатор = Модификатор;
	
КонецПроцедуры

Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);	


	//	
	//{Проверка, что база Рабочая
	Если ИдентификаторКоманды = "Команда_Создать" Тогда 
		//СтрокаСоединенияИнформационнойБазы = Врег(СтрокаСоединенияИнформационнойБазы());
		//СтрокаСоединенияИнформационнойБазы = СтрЗаменить(СтрокаСоединенияИнформационнойБазы, ".RU55", "");
		//СтрокаСоединенияИнформационнойБазы = СтрЗаменить(СтрокаСоединенияИнформационнойБазы, ".LOCAL", "");
		//Если СтрокаСоединенияИнформационнойБазы = ВРег(константы.Реактор_ПутьРабочейБазы.Получить()) Тогда 
		//	ОбщегоНазначенияКлиентСервер.СообщитьПользователю("ЭТО РАБОЧАЯ");
		//Иначе	
		//	
		//	ОбщегоНазначенияКлиентСервер.СообщитьПользователю("" + ВРег(СтрокаСоединенияИнформационнойБазы()));
		//	ОбщегоНазначенияКлиентСервер.СообщитьПользователю("" + ВРег(Константы.Реактор_ПутьРабочейБазы.Получить()));
		//	ВызватьИсключение "ЭТО КОПИЯ ЗАПУСК ФОНОВЫХ ЗАДАНИЙ ЗАПРЕЩЕН!!!" 
		//		+ Символы.ПС + ВРег(СтрокаСоединенияИнформационнойБазы())  
		//		+ Символы.ПС + ВРег(Константы.Реактор_ПутьРабочейБазы.Получить());			
		//КонецЕсли;
	//КонецЕсли;
	//}Проверка, что база Рабочая	

	ВыгрузитьОстатки();
КонецПроцедуры
Показать

Что самое интересное, если убрать комментарий на проверку Рабочая база или нет то этот код срабатывает, если команду запускаю из формы обработки и отладчиком иду по коду то все работает, а вот по расписанию ничего не происходит, подскажите пожалуйста в чем ошибка?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. glek 119 31.01.23 14:16 Сейчас в теме
(1) По расписанию в типовых (если используется БСП) выполнение регламентых по доп. обработках блокируется.
3. 5225688vd 31.01.23 14:20 Сейчас в теме
6. SAShikutkin 15 31.01.23 15:12 Сейчас в теме
(1)
СтрокаСоединенияИнформационнойБазы = ВРег(константы.Реактор_ПутьРабочейБазы.Получить()
Проверяйте условие. Условие не отрабатывает и получается работает "ВызватьИсключение". Т.к. это отдельный сеанс вам ничего не отображается.
4. 5225688vd 31.01.23 14:22 Сейчас в теме
Другие обработки работают, не работает только эта, не могу понять в чем причина, ни ошибок нет, в ручную из формы отрабатывает правильно, а по расписанию запускается и прекращает работу через несколько секунд
5. glek 119 31.01.23 14:39 Сейчас в теме
(4) Вместо этого
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("ЭТО РАБОЧАЯ");
Задайте запись ЖР и смотрите.
Оставьте свое сообщение

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