Имя: Пароль:
1C
1С v8
Расписание запуска внешней обработки в распределенной базе.
☑
0 lirt82
 
03.09.26
✎
12:30
Всем привет, в центральном узле 1С Розницы есть внешняя обработка которая формирует определенный отчет и отправляет его по почте. Изменили код обработки в центральном узле, с обменом эти изменения пришли в базы магазины. Теперь вопрос если изменить настройку расписания в центральном узле, то при обмене в периферийных базах настройка расписания также измениться? или нужно будет в каждой из 100 периферийных баз магазинов, подключаться и вручную менять?:-)
1 Галахад
 
гуру
03.09.26
✎
14:01
В эту же обработку, ну или в другую добавить установку нового расписания...
2 lirt82
 
03.09.26
✎
15:46
(1) не понял, зашить в код расписание?
запускать каждое воскресенье в 6:00
3 Галахад
 
гуру
03.09.26
✎
15:50
ИИ-шка:

ИмяЗадания = "ИмяВашегоРегламентногоЗадания"; // Имя метаданных

РегламентноеЗадание = РегламентныеЗадания.НайтиПоНаименованию(ИмяЗадания); // Или НайтиПоИдентификатору / НайтиПоМетаданным

Если РегламентноеЗадание = Неопределено Тогда
    // Если задание создается программно с нуля:
    РегламентноеЗадание = РегламентныеЗадания.Создать(Метаданные.РегламентныеЗадания[ИмяЗадания]);
КонецЕсли;

// Создаем и настраиваем объект расписания
Расписание = Новый РасписаниеРегламентногоЗадания;
Расписание.ДатаОбычная = ТекущаяДата();
Расписание.ПовторятьКаждыйДень = 1;
Расписание.ПериодПовтораДней = 1;
Расписание.ИнтервалПовтора = 300; // Интервал в секундах (например, каждые 5 минут)
Расписание.ДниПоВторникам = Истина;
Расписание.ДниПоЧетвергам = Истина;

// Применяем расписание к заданию
РегламентноеЗадание.УстановитьРасписание(Расписание);
РегламентноеЗадание.Использование = Истина;
РегламентноеЗадание.Записать();
4 lirt82
 
04.09.26
✎
08:16
(3) Галахад спасибо, получилось, не нужно было подключаться к сотне магазинов:-).
Решение:

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

Процедура ИзменитьРасписаниеРегЗадания(РегЗадание)
    
    НовоеРасписание = Новый РасписаниеРегламентногоЗадания;
    НовоеРасписание.ДатаНачала = НачалоМесяца(ТекущаяДата());
    НовоеРасписание.ВремяНачала = '00010101080000'; // 8:00 утра
    НовоеРасписание.ПериодНедель = 1;
    
    ДниНеделиРасписания = Новый Массив;
    ДниНеделиРасписания.Добавить(1); // 1 - это понедельник, 2 - вторник и т.д.
    НовоеРасписание.ДниНедели = ДниНеделиРасписания;
    
    РегЗадание.Расписание = НовоеРасписание;
    РегЗадание.Использование = Истина;
    РегЗадание.Записать();
    
КонецПроцедуры
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс