В процессе использования учётной системы на базе 1С:Предприятие иногда возникает необходимость выполнять какую-то однотипную операцию через определённые промежутки времени.

В системе 1С:Предприятие есть объект, позволяющий решать такие задачи. Это объект "Регламентное задание". Мы можем создать его и настроить под свои потребности. Однако, когда мы имеем дело с типовыми конфигурациями 1С, находящимися на поддержке, создание дополнительного регламентного задания повлечёт за собой невозможность обновления системы в автоматическом режиме.

Выход: сделать внешнюю обработку с возможностью запускать её по расписанию.

Возможность запускать внешнюю обработку по расписанию задаётся в модуле объекта внешней обработки. А именно в теле функции СведенияОВнешнейОбработке().

Существует три варианта запуска внешней обработки:

  • Открытие формы
  • Вызов серверного метода
  • Вызов клиентского метода

Задаётся вариант запуска в параметрах процедуры ДобавитьКоманду().

Настраивать расписание можно только для обработок с режимом запуска "Вызов серверного метода" и "Вызов клиентского метода".

Вариант "Вызов серверного метода" означает, что будет вызвана процедура, размещённая в модуле объекта внешней обработки.
Вариант "Вызов клиентского метода" означает, что будет вызвана процедура, размещённая в модуле формы внешней обработки.

Код в модуле объекта внешней обработки:

// Функция возвращает сведения о внешней обработке.
Функция СведенияОВнешнейОбработке() Экспорт
	
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");

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


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


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


Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения) Экспорт
	
	// Тело процедуры
					
КонецПроцедуры

Программный код, который должен выполняться при запуске внешней обработке, должен находиться в теле процедуры ВыполнитьКоманду().

После добавления обработки в систему 1С:Предприятие через механизм подключения внешних обработок, станет доступной настройка расписания.

Комментарии

  • Гринёв 20.12.2017 09:45
    Только надо иметь ввиду, что СтандартнаяОбработка = Ложь в процедуре ПриКомпоновкеРезультата отключает стандартную расшифровку полей отчёта.

    Подробнее...

     
  • proekt 06.12.2017 10:03
    Привет. Обработка проведения РасходнойНакладной запрос от проведения ПланаПродаж необходимо подправить запрос для Расходной. Такой вопрос при проведении Расходной накладной почему сразу в запросе не ...

    Подробнее...

     
  • Ivan 01.11.2017 14:14
    Неверно. Так мы узнаем DNS сервер по умолчанию, но он не обязательно совпадает с контроллером домена. Нужно так > set logon В ответе получим имя сервера, на котором мы залогинились.

    Подробнее...