Имя: Пароль:
1C
1С v8
Можно ли обратиться напрямую к предопределенному регламентному заданию?
0 slafor
 
22.11.22
13:42
В конфигурации есть набор предопределенных регламентных заданий. Хотелось бы иметь возможность напрямую обратиться к одному из них. Ссылки у таких заданий нет. Как это можно сделать?
Суть задачи: нужно "привязать" предопределенное регламентное задание к элементу справочника, чтобы можно было делать пользовательские настройки по условиям для процедуры общего модуля, которая вызывается этим заданием.
1 DES
 
22.11.22
13:48
Задание вызывает процедуру. Её и цепляй.
Редакция не несет ответственности за автора сей публикации
2 slafor
 
22.11.22
14:03
(1) А мне бы еще хотелось открывать, например, окно для того, чтобы пользователь мог изменить расписание конкретного регламентного задания. Ну не любят у нас пользователи гулять по конфигурации в поисках "Регламентных и фоновых заданий", там еще искать нужное задание, а потом лезть в расписание... Хотят, чтобы все по одной кнопке открывалось! )
3 Kassern
 
22.11.22
14:18
(2) Каким-то чудом ведь заполняется список в типовых конфах с регламентными заданиями и дается возможность менять расписание и запускать интерактивно, вот там и смотрите, все это дело есть в типовых.
4 1Сергей
 
22.11.22
16:53
(2) регламентные задания это суть предопределенный справочник. Воспользуйтесь готовой консолью заданий
5 Галахад
 
гуру
22.11.22
17:17
Если я правильно понял:

а = РегламентныеЗадания.НайтиПредопределенное("ааа");
б = а.Расписание;
б.ПериодПовтораДней = 1;
б.ПериодНедель = 1;
б.ПериодПовтораВТечениеДня = 100;
а.Записать();
6 Остап Ибрагимович
 
22.11.22
20:55
"Привязывай" (храни в реквизите) имя(а лучше - УникальныйИжентификатор) предопределенного регламентного задания. что-то типа:
&НаСервере
Функция РасписаниеТекРегламЗаданияНаСервере(УИД) Возврат РегламентныеЗадания.НайтиПоУникальномуИдентификатору(УИД).Расписание КонецФункции
&НаКлиенте
Процедура ПоказатьРасписаниеРегламентногоЗаданияПоУид(УидРеграментногоЗадания)
    ДиалогРасписанияРз = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеТекРегоамЗаданияНаСервере(УидРеграментногоЗадания));
    ДиалогРасписанияРз.Показать();
КонецПроцедуры
7 АнализДанных
 
23.11.22
10:11
(0) Я создавал справочник с настройками рег.задания. Далее по ГУИД этого справочника создаешь экземпляр рег.задания и запускаешь\останавливаешь. У тебя получается связь рег.задание-справочник, через ГУИД, т.о. при записи справочника ты создаешь\удаляешь экземпляр задание по его ГУИД. Когда задание запустится, то в процедуре запуска будет входящий параметр, равный ссылке на справочник с настройками, далее дело техники...

Пример кода, где
НастройкаЗадания - это ссылка на справочник
ТвоеРегЗадание - рег.задание из конфигуратора

При записи справочника вызываешь ОбновитьДанныеЗадания()

//=== КОД ====

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

Функция НайтиЗаданиеПоНастройке(НастройкаЗадания) Экспорт
    
    УстановитьПривилегированныйРежим(Истина);
    
    РегламентноеЗадание = Неопределено;
    
    Если Не ЗначениеЗаполнено(НастройкаЗадания) Тогда
        Возврат РегламентноеЗадание;
    КонецЕсли;
    
    ИдентификаторЗадания = XMLСтрока(НастройкаЗадания.УникальныйИдентификатор());
    
    Отбор = Новый Структура;
    Отбор.Вставить("Ключ", ИдентификаторЗадания);
    Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ТвоеРегЗадание);
    
    МассивРегЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Отбор);
    
    Если МассивРегЗаданий.Количество() Тогда
        РегламентноеЗадание = МассивРегЗаданий[0];
    КонецЕсли;
    
    Возврат РегламентноеЗадание;    
    
КонецФункции
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший