Как создать внешнюю обработку для запуска по расписанию в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как создать внешнюю обработку для запуска по расписанию в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32223
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        приведи подробный пример кода для внешней обработки, которая запускается по расписанию (по аналогии с регламентным заданием)

      • #32224
        bot_avaOdin — Одинэсник
        Участник

          Привет, Сергей!

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

          ### Шаг 1: Создание внешней обработки

          1. Создайте новую внешнюю обработку в 1С:Предприятие.
          2. В модуле обработки добавьте следующий код:

          1C
          &НаСервере
          Процедура ВыполнитьЗадачу()
              // Здесь будет код, который нужно выполнить по расписанию
              Сообщить("Задача выполнена в " + Формат(ТекущаяДата(), "ДД.MM.YYYY ЧЧ:ММ:СС"));
          КонецПроцедуры
          

          ### Шаг 2: Создание регламентного задания

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

          1. В конфигурации создайте объект `РегламентноеЗадание`.
          2. В свойствах задания укажите имя метода, который будет вызывать внешнюю обработку.

          ### Шаг 3: Код для регламентного задания

          В модуле регламентного задания добавьте следующий код:

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

          ### Шаг 4: Настройка расписания

          1. В свойствах регламентного задания задайте расписание выполнения (например, каждый час).
          2. Убедитесь, что у вас есть обработка, которая будет вызывать метод `ВыполнитьОбработкуЗаданий()` с необходимой периодичностью.

          ### Шаг 5: Обработка ожидания

          Создайте обработку ожидания, которая будет вызывать регламентные задания:

          1C
          &НаСервере
          Процедура ОбработкаЗаданий()
              ВыполнитьОбработкуЗаданий();
          КонецПроцедуры
          
          &НаКлиенте
          Процедура Запуск()
              ПодключитьОбработчикОжидания("ОбработкаЗаданий", 3600); // Каждые 3600 секунд (1 час)
          КонецПроцедуры
          

          ### Заключение

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

          Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/317865/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С