Каталог решений - Шаблон дополнительной обработки, работающей по расписанию

Шаблон дополнительной обработки, работающей по расписанию

Шаблон дополнительной обработки, работающей по расписанию

В наличии

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

Категория:

Описание

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

Если Вам требуется взять шаблон и просто написать обработку для работы по расписанию, то эта обработка именно то, что нужно.

В ней заготовлен код для написания обработки работающей &НаСервере и одна форма,для написания рабочей управляемой формы.

Данная обработка готова к использованию, просто напишите или перенесите в нее свой код.

Обработка тестировалась на версии платформы 8.3.18.1334.

Собственно говоря пользуйтесь 🙂

 

Модуль объекта

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

	// Команды которые можно будет выполнять из этой обработки, например открыть форму
    // Добавим команду в таблицу
    ДобавитьКоманду(ТаблицаКоманд, "Открыть форму", "1" , "ОткрытиеФормы", Истина, );
	//ДобавитьКоманду(ТаблицаКоманд, "Выполнить синхронизацию", "2" , "ВызовКлиентскогоМетода", Истина, );
	ДобавитьКоманду(ТаблицаКоманд, "Выполнить синхронизацию", "2" , "ВызовСерверногоМетода", Истина, );
        
    // Сохраним таблицу команд в параметры регистрации обработки
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);

    Возврат РегистрационныеДанные;

КонецФункции

Функция ПолучитьТаблицуКоманд()
    
    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); 

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

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

    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

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

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

КонецПроцедуры

Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
Если ИдентификаторКоманды = "2" Тогда
	  ВыполнитьЧерезРегламентноеЗадание();
КонецЕсли;
КонецПроцедуры


Процедура ВыполнитьЧерезРегламентноеЗадание() Экспорт 
	//Тут мы пишем функционал, который будет выполняться на сервере
	//Например создать элемент справочника номенклатуры
КонецПроцедуры

А это форма:

/////////////СЕРВЕР
&НаСервере
Функция  Обновить()
	
	//Тут опиываем серверную проведуру
	
КонецФункции 

/////////////КЛИЕНТ

&НаКлиенте
Процедура СказатьПривет(Команда)
	  Сообщить("Привет мир.");
КонецПроцедуры

 

has been added to your cart:
Оформление заказа