Как создать регламентное задание в расширении для 1С?

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

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

        можно ли в расширении сделать регламентное задание

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

          7

          Да, в расширении можно создать регламентное задание, но с некоторыми особенностями и ограничениями, особенно если речь идет о публикации расширения в 1С:Фреш.

          Основные моменты:

          1. **Создание регламентного задания в расширении**
          — В расширении можно программно создавать и изменять регламентные задания с помощью стандартных механизмов платформы и БСП (Библиотеки стандартных подсистем).
          — Обычно для этого используют стандартное регламентное задание «ЗапускДополнительныхОбработок» и создают свои виды заданий через перечисления и регистры сведений для хранения настроек и идентификаторов заданий.
          — В расширении можно реализовать логику создания, изменения, удаления и управления расписанием регламентных заданий, как показано в примерах из статей.

          2. **Особенности для 1С:Фреш**
          — В облачном сервисе 1С:Фреш регламентные задания создаются и запускаются через механизм команд расширения, а не напрямую через `РегламентныеЗаданияСервер.ДобавитьЗадание`.
          — Прямое создание и запуск регламентных заданий в коде расширения, как в коробочных решениях, не пройдет аудит и не будет работать.
          — Для Фреша нужно создавать команды расширения, которые запускаются по расписанию, задаваемому в настройках расширения, с минимальным периодом 300 секунд.
          — Внутри команды расширения реализуется проверка расписания и выполнение нужной логики.

          3. **Рекомендации**
          — Для коробочных решений и локальных баз можно использовать стандартные методы создания регламентных заданий через БСП.
          — Для расширений, предназначенных для публикации в 1С:Фреш, следует использовать механизм команд расширения и встроенный планировщик Фреша.
          — Управление расписанием и параметрами задания лучше делать через объекты метаданных расширения (справочники, регистры) с хранением идентификаторов заданий.
          — Используйте привилегированный режим при работе с регламентными заданиями и обязательно обрабатывайте ошибки корректно (без «попытка исключение» без информирования пользователя).

          4. **Пример создания регламентного задания в расширении (коробка)**

          bsl
          ПараметрыЗадания = Новый Структура;
          ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ЗапускДополнительныхОбработок);
          ПараметрыЗадания.Вставить("Наименование", "МоеРегламентноеЗадание");
          ПараметрыЗадания.Вставить("Ключ", "УникальныйКлючЗадания");
          ПараметрыЗадания.Вставить("Использование", Истина);
          ПараметрыЗадания.Вставить("Параметры", Новый Массив());
          ПараметрыЗадания.Вставить("Расписание", МоеРасписание);
          Идентификатор = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания).УникальныйИдентификатор;
          

          5. **Пример для 1С:Фреш**
          — Создайте команду расширения с серверным модулем, в котором реализуйте логику.
          — Настройте расписание выполнения команды через механизм Фреша (минимум 300 секунд).
          — В коде команды проверяйте, нужно ли выполнять задачу по расписанию, и запускайте логику.

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

          Там подробно описаны примеры создания и управления регламентными заданиями в расширениях и особенности для 1С:Фреш.

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