Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 сен 2024, 20:17

Запустить обработку по расписанию

Автор maxxi, 20 сен 2022, 12:35

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

maxxi

Есть 2 обработки: ВыгрузкаДанныхВФайл и ЗагрузкаДанныхИзФайла.

Напишите пожалуйста, как запустить из через Регламентные Задачи по расписанию.

Может есть другие варианты.

Не знаю с чего начать.

Копать в какую сторону: 1, 2 3 и так далее.

Спасибо.

antoneus

Обработку встроить в конфигурацию. Создать в модуле менеджера обработки экcпортную процедуру, которая запускает требуемый функционал. В каком-нибудь общем модуле создать экспортную процедуру, которая вызывает первую процедуру. Процедуру общего модуля выбрать в свойство ИмяМетода регламентного задания.

maxxi

1.Объявила процедуру в общем модуле РегЗадачи: ВыгрузитьДанныеВФайл_XML().
&НаКлиенте
Процедура ВыгрузитьДанныеВФайл_XML() Экспорт
   
    ЗаписьXML = Новый ЗаписьXML;
   
    ЗаписьXML.ОткрытьФайл(Объект.КаталогСохранения + "/СписокКонрагентов.xml");
   
    ЗаписьXML.ЗаписатьОбъявлениеXML();
   
    ЗаписьXML.ЗаписатьНачалоЭлемента("ContragentList");
   
    Для каждого СтрокаДанных Из Объект.ДанныеФайла Цикл
       
        ЗаписьXML.ЗаписатьНачалоЭлемента("Contragent");
            //Наименование
            ЗаписьXML.ЗаписатьНачалоЭлемента("NAME");
            ЗаписьXML.ЗаписатьТекст(СтрокаДанных.Наименование);
            ЗаписьXML.ЗаписатьКонецЭлемента();
           
            //УНП
            ЗаписьXML.ЗаписатьНачалоЭлемента("UNP");
            ЗаписьXML.ЗаписатьТекст(СтрокаДанных.УНП);
            ЗаписьXML.ЗаписатьКонецЭлемента();
           
            //Полное наименование
            ЗаписьXML.ЗаписатьНачалоЭлемента("FULL_NAME");
            ЗаписьXML.ЗаписатьТекст(СтрокаДанных.ПолноеНаименование);
            ЗаписьXML.ЗаписатьКонецЭлемента();
           
        ЗаписьXML.ЗаписатьКонецЭлемента();
   
    КонецЦикла;
   
    ЗаписьXML.ЗаписатьКонецЭлемента();
   
    ЗаписьXML.Закрыть();
   
КонецПроцедуры


2 Вызываю эту процедуру из модуля обработки:

&НаКлиенте
Процедура ВыгрузитьДанныеВФайл_XML()
    РегЗадачи.ВыгрузитьДанныеВФайл_XML();
КонецПроцедуры


3 После запуска: выдает ошибку:
{ОбщийМодуль.РегЗадачи.Модуль(6,24)}: Переменная не определена (Объект)
    ЗаписьXML.ОткрытьФайл(<<?>>Объект.КаталогСохранения + "/СписокКонрагентов.xml");
{ОбщийМодуль.РегЗадачи.Модуль(12,30)}: Переменная не определена (Объект)
    Для каждого СтрокаДанных Из <<?>>Объект.ДанныеФайла Цикл


Поправьте пожалуйста, что я делаю не так.
Спасибо.
   

antoneus

1. Процедура должна быть &НаСервере или без директивы.
2. Переменная Объект не инициализирована, придется каталог сохранения или хардкодить (лучше не надо) или сохранять где-нибудь в настройках. Перенести функционал из модуля формы в общий модуль - это не просто скопипастить процедуру, тут надо подумать, книжечки почитать.

maxxi

Процедура ВыгрузитьДанныеВФайл_XML(Объект) Экспорт
   
    ЗаписьXML = Новый ЗаписьXML;
   
    ЗаписьXML.ОткрытьФайл(Объект.КаталогСохранения + "/СписокКонрагентов.xml");

В общем модуле исправила код, но не могу добавить путь/каталог по умолчанию, для сохранения xml файла.

LexaK

maxxi, вы ни где не пишите какая у вас база.
во всех типовых использующих БСП, есть такая возможность
Внешнюю обработку поместить в справочник Дополнительные отчеты и обработки
и оформить ее как регламентное задание (с расписанием и т.д.)

(наверное это был бы самый простой вариант)
если помогло нажмите: Спасибо!

antoneus

Еще раз. Каталог по умолчанию надо сохранить или в настройках (см. ХранилищеОбщихНастроек, методы Сохранить() и Загрузить()) или в константе, на худой конец и получать его оттуда. При этом надо учитывать, что код будет выполняться на сервере и там такого каталога может просто не оказаться.

maxxi

LexaK, сорри, у нас не типовая конфигурация, а там БСП нету.

LexaK

если помогло нажмите: Спасибо!

maxxi


Теги: web 1c 

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

Рейтинг@Mail.ru

Поиск