обработка запускаемая фоновым заданием.

1. hillsnake 35 17.03.17 12:35 Сейчас в теме
все вроде правильно настроил


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

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

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

	//Заполняем структуру сведений
	ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид", "Дополнительнаяобработка"); 					// Варинаты: ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... 
	ПараметрыРегистрации.Вставить("Наименование", НаименованиеОбработки); 	// Имя под которым обработка будет зарегестрирована в справочнике внешних обработок
	ПараметрыРегистрации.Вставить("Версия", ВерсияОбработки);               // Версия обработки, которая будет отображаться в справочнике внешних обработок
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);       		// Включение безопасного режима
	ПараметрыРегистрации.Вставить("Информация", ИнформацияПоОбрабтке);		// Описание обработки для пользователя
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);        		// Таблица команд, добавляемых в систему
	Возврат ПараметрыРегистрации;
	
КонецФункции
Показать



также сделал команду


Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
  // Реализация логики команды
   ЗаписьЖурналаРегистрации("Вызов команды " + ИдентификаторКоманды);
  
  
   УстановитьПривилегированныйРежим(Истина);
     Если ИдентификаторКоманды = "ПоискФайлов" Тогда
	 ЗаписьЖурналаРегистрации("Загрузка документов из АСУББТ", 
			УровеньЖурналаРегистрации.Предупреждение, , ,
			"!!Начало работы!!!" ); 
	ИскатьФайл();	  
    конецЕсли;
КонецПроцедуры
Показать

но сама запускается но в команду не входит ... ничего что в команде записано не делает.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Meteorage 21 17.03.17 14:11 Сейчас в теме
Я указывал в сведениях:
Функция СведенияОВнешнейОбработке() Экспорт

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

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

а потом указывал расписание для нее.
3. user633533_encantado 11 17.03.17 15:14 Сейчас в теме
Так много лишнего кода, совсем вы не умеете пользоваться подсистемами. Думаю дело в процедуре "выполнить команду", слишком много параметров.

Дарю красивый код:
 #Область СлужебныеПроцедурыИФункции

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

Процедура ВыполнитьКоманду(Параметры) Экспорт
	
КонецПроцедуры
	
#КонецОбласти
Показать
Оставьте свое сообщение

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