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