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