Odin | База знаний 1С

Как создать регламе...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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С:Фреш.



   
ОтветитьЦитата