Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
04 дек 2025, 11:42

определение программного регламента

Автор sali, Сегодня в 09:39

0 Пользователей и 1 гость просматривают эту тему.

sali

регламент создается программно через регистр сведений. определение что это регламент созданный программно идет так
&Вместо("ВыполнитьОбработкуПоРегламентномуЗаданию")
Процедура ЭДОН_ВыполнитьОбработкуПоРегламентномуЗаданию(ВнешняяОбработка, ИдентификаторКоманды)

Если ИдентификаторКоманды = Перечисления.ЭДОН_РегламентныеЗаданиеРасширение.РегламентПоВыгрузкеЗагрузке Тогда   

ИдентификаторРегламента = РегламентныеЗадания.ПолучитьРегламентныеЗадания();

Для Каждого ЭлементМассива Из ИдентификаторРегламента Цикл
Если Лев(ЭлементМассива.Наименование, 14) = "РегламентЭДО: " Тогда
НашРегламент = ЭлементМассива;
Продолжить;
КонецЕсли;
КонецЦикла;

ЭДОН_РегламентныеЗадания.ВыгрузитьНоменклатуруИХарактеристику(НашРегламент);
    КонецЕсли;

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

/////запись нового или существующего регламента в форме записи РС
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

ЗаписьОбъект = ПроверитьЗаполненостьРегламента(ТекущийОбъект);

Если ЗначениеЗаполнено(ТекущийОбъект.ПолноеНаименование) и НЕ ТекущийОбъект.Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000") Тогда
Если параметры.ключ.пустой() Тогда
Сообщить("Уже существует настройка с таким именем. Сохранение невозможно.");
Отказ = Истина;
Возврат; 
КонецЕсли;

КонецЕсли;

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

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

МассивПараметров = Новый Массив;   
МассивПараметров.Добавить(ТекущийОбъект.ЭтоБП);
МассивПараметров.Добавить(ТекущийОбъект.РегламентноеЗадание);
ПараметрыЗадания.Вставить("Параметры", МассивПараметров);

Задание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
ТекущийОбъект.Идентификатор = Задание.УникальныйИдентификатор;

КонецЕсли;

Задание.Расписание = РасписаниеРегламентногоЗадания;   
Задание.Записать();

УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;

Если ЭтоАдресВременногоХранилища(АдресНастроекРегламента) тогда
НастройкиОбмена = ПолучитьИзВременногоХранилища(АдресНастроекРегламента);

ТекущийОбъект.СохраненныеНастройки = Новый ХранилищеЗначения(НастройкиОбмена);

КонецЕсли;

КонецПроцедуры 
регламенты работают , но такое определение не очень корректно. как можно по-другому определить программный регламент?

antoneus

Хранить в регистре ключ регламентного задания.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск