Добрый день! Подскажите, пожалуйста. Появилась необходимость в создании регламентного задания в расширении, но так как там нельзя создать такой объект возникает вопрос, можно ли программно это осуществить? Заранее спасибо)
---
модуль объекта внешней обработки

```1c
    // Пример, поменяйте Представление, Идентификатор и
    //метод(с потрохами) ОбработкаУвольненийИзУпрОргПоРасписанию() на свой.

    Функция СведенияОВнешнейОбработке() Экспорт

    ЭтотОбъектИмя = ЭтотОбъект.Метаданные().Имя;
    ЭтотОбъектСин = ЭтотОбъект.Метаданные().Представление(); // Синоним

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.0.3.109"); // Версия БСП

    ПараметрыРегистрации.Вставить("Версия", "2811190707"); // ДД-ММ-ГГ-НомерФайла-НомерВерсииФайла
    ПараметрыРегистрации.БезопасныйРежим = Ложь;

    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Наименование = ЭтотОбъектСин;
    ПараметрыРегистрации.Информация = ЭтотОбъектСин;

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

    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = "Обработка увольнений из управленческой организации (ручной режим)";
    Команда.Идентификатор = "ОбработкаУвольненийИзУпрОргРучнойРежим";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    Команда.ПоказыватьОповещение = Истина;

    Возврат ПараметрыРегистрации;

    КонецФункции

    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
    Если ИдентификаторКоманды = "ОбработкаУвольненийИзУпрОргПоРасписанию" Тогда
    ОбработкаУвольненийИзУпрОргПоРасписанию();
    КонецЕсли;
    КонецПроцедуры

    #КонецОбласти

    #Область ОбработкаУвольненийИзУпрОргПоРасписанию

    Процедура ОбработкаУвольненийИзУпрОргПоРасписанию() Экспорт

    // Действия аналогичные команде формы "ЗаполнитьТаблицу"
    АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
    ЗаполнитьТаблицу_ТзПоместитьВХранилище(ЗаполнитьТаблицу_ПолучитьПараметрыМетода(Истина), АдресРезультата);
    ЗагрузитьИзХранилищаВТчОбъекта(ТаблицаДанных, АдресРезультата); // ТаблицаДанных - табличная часть объекта.

    // Действия аналогичные команде формы "СоздатьПриказы"
    АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
    СоздатьПриказы(СоздатьПриказы_ПолучитьПараметрыМетода(Истина), АдресРезультата);

    КонецПроцедуры

    //... тут потроха
```
---
так как там нельзя создать такой объект - ответ вы сами дали
но никто не запретит найти решение с тыла или как говорят опытные разработчики - методом ректального маневра.
---
Например? Просто у меня не осталось никаких идей)
---
Еще можно в дополнительных обработках задать расписание авто запуска
---
расписание авто запуска чего? если я не могу в принципе создать РЗ
---
в механизме дополнительных обработок РЗ создается программным способом, для обработки можно указать расписание, по которому она будет запускаться
---
Создаете допобработку, добавляете ее в справочник доп. обработок и вот в элементе можно настроить расписание, а функционал БСП будет его соблюдать.
---
А не мог бы кто-нибудь скинуть какой-нибудь пример?)
---
модуль объекта внешней обработки

```1c
    // Пример, поменяйте Представление, Идентификатор и
    //метод(с потрохами) ОбработкаУвольненийИзУпрОргПоРасписанию() на свой.

    Функция СведенияОВнешнейОбработке() Экспорт

    ЭтотОбъектИмя = ЭтотОбъект.Метаданные().Имя;
    ЭтотОбъектСин = ЭтотОбъект.Метаданные().Представление(); // Синоним

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.0.3.109"); // Версия БСП

    ПараметрыРегистрации.Вставить("Версия", "2811190707"); // ДД-ММ-ГГ-НомерФайла-НомерВерсииФайла
    ПараметрыРегистрации.БезопасныйРежим = Ложь;

    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Наименование = ЭтотОбъектСин;
    ПараметрыРегистрации.Информация = ЭтотОбъектСин;

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

    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = "Обработка увольнений из управленческой организации (ручной режим)";
    Команда.Идентификатор = "ОбработкаУвольненийИзУпрОргРучнойРежим";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    Команда.ПоказыватьОповещение = Истина;

    Возврат ПараметрыРегистрации;

    КонецФункции

    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
    Если ИдентификаторКоманды = "ОбработкаУвольненийИзУпрОргПоРасписанию" Тогда
    ОбработкаУвольненийИзУпрОргПоРасписанию();
    КонецЕсли;
    КонецПроцедуры

    #КонецОбласти

    #Область ОбработкаУвольненийИзУпрОргПоРасписанию

    Процедура ОбработкаУвольненийИзУпрОргПоРасписанию() Экспорт

    // Действия аналогичные команде формы "ЗаполнитьТаблицу"
    АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
    ЗаполнитьТаблицу_ТзПоместитьВХранилище(ЗаполнитьТаблицу_ПолучитьПараметрыМетода(Истина), АдресРезультата);
    ЗагрузитьИзХранилищаВТчОбъекта(ТаблицаДанных, АдресРезультата); // ТаблицаДанных - табличная часть объекта.

    // Действия аналогичные команде формы "СоздатьПриказы"
    АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
    СоздатьПриказы(СоздатьПриказы_ПолучитьПараметрыМетода(Истина), АдресРезультата);

    КонецПроцедуры

    //... тут потроха
```
---
Спасибо! Добрый человек, подскажите, пожалуйста ещё как реализовать этот механизм без внешней обработки, то есть я хочу внедрить её в расширение. Внешнюю обработку я знаю как поставить на выполнение по расписанию, а внутреннюю?
---
https://its.1c.ru/db/v8316doc#bookmark:dev:TI000001923

т.е. четко сказано, что в последних платформах и в перспективе механизм регл. задний не планируют к реализации в расширениях.
посему или используйте костыль с внешними обработками или ...ничего.
Что мешает в пакет к вашему расширению цеплять еще и файл внешней обработки и при добавлении расширения заказчиком - писать эту внешнюю обработку в справочник доп. обработок?
Да, приятно когда все в одном флаконе, но не в этом случае.
---
Потому что расширение не для одного клиента, а для нескольких сотен, и цеплять вдобавок обработку не айс. И тем не менее спасибо за ответы
---
если добавите рег задание в основную конфигурацию, то это не будет мешать обновлениям... почему бы и нет...
---
Конфигурации категорически нельзя снимать с замка
---
ну так прицепить внешнюю обработку бинарным макетом, а в расширении ее сохранить уже и прицеплять автоматом, предварительно проверив не прицеплена ли она уже