&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка) Тогда
ЗаписатьРегЗадание(ТекущийОбъект);
Иначе
ИспользоватьРасписание = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьРегЗадание(ТекущийОбъект)
УстановитьПривилегированныйРежим(Истина);
ИдентификаторРегламентногоЗадания = ТекущийОбъект.ИдентификаторРегламентногоЗадания;
Если Объект.ИспользоватьРасписание Тогда
ИменаИспользуемыхРеглЗаданий = рс_ОбщегоНазначенияПовтИсп.ПолучитьИменаИспользуемыхРеглЗаданий();
СтруктураРеглЗаданий = рс_ОбщегоНазначенияПовтИсп.ПолучитьИспользуемыеРеглЗадания();
ПараметрыЗапуска = Новый Массив();
ПараметрыЗапуска.Добавить(СтруктураРеглЗаданий.СинхронизацияДанных);
ПараметрыЗапуска.Добавить(Объект.Ссылка);
Задание = РегламентныеЗаданияСервер.Задание(ИдентификаторРегламентногоЗадания);
Если Задание <> Неопределено Тогда
ПараметрыИзмененияЗадания = Новый Структура();
ПараметрыИзмененияЗадания.Вставить("Использование", Истина);
ПараметрыИзмененияЗадания.Вставить("Параметры", ПараметрыЗапуска);
ПараметрыИзмененияЗадания.Вставить("Расписание", РасписаниеРегламентногоЗадания);
ПараметрыИзмененияЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 0);
ПараметрыИзмененияЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 0);
РегламентныеЗаданияСервер.ИзменитьЗадание(ИдентификаторРегламентногоЗадания, ПараметрыИзмененияЗадания);
Иначе
ПараметрыЗадания = Новый Структура();
ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ЗапускДополнительныхОбработок);
ПараметрыЗадания.Вставить("Наименование", ИменаИспользуемыхРеглЗаданий.СинхронизацияДанных + Объект.Наименование);
ПараметрыЗадания.Вставить("Ключ", ИменаИспользуемыхРеглЗаданий.СинхронизацияДанных + Объект.Наименование);
ПараметрыЗадания.Вставить("Использование", Истина);
ПараметрыЗадания.Вставить("ЭксклюзивноеВыполнение", Ложь);
ПараметрыЗадания.Вставить("Параметры", ПараметрыЗапуска);
ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 0);
ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 0);
ПараметрыЗадания.Вставить("Расписание", РасписаниеРегламентногоЗадания);
Задание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ИдентификаторРегламентногоЗадания = Задание.Идентификатор.УникальныйИдентификатор();
Иначе
ИдентификаторРегламентногоЗадания = Задание.УникальныйИдентификатор;
КонецЕсли;
КонецЕсли;
Если Задание = Неопределено Тогда
ИдентификаторРегламентногоЗадания = Неопределено;
КонецЕсли;
Иначе
РегламентныеЗаданияСервер.УдалитьЗадание(ИдентификаторРегламентногоЗадания);
ИдентификаторРегламентногоЗадания = Неопределено;
КонецЕсли;
ТекущийОбъект.ИдентификаторРегламентногоЗадания = ИдентификаторРегламентногоЗадания;
КонецПроцедуры