Имя: Пароль:
1C
1С v8
Фоновое задание
0 Aleksei_Pro
 
15.05.12
15:10
Создал фоновое задание, оно запускается - но почему то не отрабатывает ко:
   // Вставить содержимое обработчика.
   Форм = Обработки.НТГ_ВыгрузкаДанных.ПолучитьФорму("Форма");    
   Форм.ЗагрузитьПравилаОбмена(Неопределено);
   Форм.КнопкаВыполнитьНажатие(Неопределено);

Пробовал этот код в обработку на кнопку прилепить, все работает..почему?
ЗагрузитьПравилаОбмена и КнопкаВыполнитьНажатие - экспортные
1 Vakhrin
 
15.05.12
15:14
Обраб = Обработки.НТГ_ВыгрузкаДанных.Создать();    
Обраб.ЗагрузитьПравилаОбмена(Неопределено);
Обраб.ВыполнитьДействияКоторыеДолжныОтрабатыватьПоКнопкаВыполнитьНажатие(Неопределено);

ну и ессесно, методы в модуль )
2 Лоботряс
 
15.05.12
15:15
А ничего что фоновое задание выполняется на сервере?
3 andrewks
 
15.05.12
15:16
ПолучитьФорму()

Описание:

Получает форму внешней обработки.

Доступность:

Толстый клиент.

© СП
4 Aleksei_Pro
 
15.05.12
15:20
(1) в модуль обработки?
5 andrewks
 
15.05.12
15:20
(4) да
6 Aleksei_Pro
 
15.05.12
15:20
Они там есть и так
7 mikecool
 
15.05.12
15:21
(6) кто? формы? форм там нет
8 Aleksei_Pro
 
15.05.12
15:22
(7) я правильно понял, эти методы надо положить не в модуль формы обработки а в модуль обработки
9 andrewks
 
15.05.12
15:23
да
10 mikecool
 
15.05.12
15:23
(8) ты правильно понял...
а можно в ОМ, и тогда объектов создавать не надо будет
11 Aleksei_Pro
 
15.05.12
15:25
(10) ды у меня обработка по выгрузке документов , через правила выгружаются
12 andrewks
 
15.05.12
15:26
(11) и чо?
13 aleks-id
 
15.05.12
15:27
(11) признавайся у кого правила спер
14 mikecool
 
15.05.12
15:27
(11) у меня была обработка, которая выгружала данные торговым, появилось фоновое - в обработке остался только вызов функции ОМ
15 Aleksei_Pro
 
15.05.12
15:27
(12) ды там столько переменных объявляется (построитель...), обработка по выгрузке из УТ в БП 2,0
16 Aleksei_Pro
 
15.05.12
15:30
Ок, спасибо всем)
17 Aleksei_Pro
 
15.05.12
16:02
Что то не так, пишу :
   Форм = Обработки.НТГ_ВыгрузкаДанных.Создать();    
   Форм.ЗагрузитьПравилаОбмена(Неопределено);
   Форм.КнопкаВыполнитьНажатие(Неопределено);

В модуле обработке код:

Перем мУниверсальнаяВыгрузкаДанных Экспорт;

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

// Процедура вызывается при нажатии кнопки "Выполнить".
//
Процедура КнопкаВыполнитьНажатие(Элемент) Экспорт

   ТаблицаСписокВсехФильтров = ФильтрыОтчета.Выгрузить();
   ТаблицаСписокВсехФильтров.Свернуть("ИмяФильтра, ЗначениеФильтра",);
   
   // Загрузка правил обмена

   Если ТаблицаПравилВыгрузки.Строки.Количество() = 0 Тогда
       ЗагрузитьПравилаОбмена("");
   КонецЕсли;

   // Установка параметров выгрузки
   
   мУниверсальнаяВыгрузкаДанных.ИмяФайлаОбмена = Константы.КаталагХраненияВыгрузокСправочнойИнформации.Получить() + "\Справочная информация.xml";
       
   мУниверсальнаяВыгрузкаДанных.ПостроительОтчета = Построитель;
   мУниверсальнаяВыгрузкаДанных.ДатаНачала     = ДатаНач;
   мУниверсальнаяВыгрузкаДанных.ДатаОкончания  = ?(НЕ ЗначениеЗаполнено(ДатаКон), ДатаКон, КонецДня(ДатаКон));
   мУниверсальнаяВыгрузкаДанных.РежимОбмена    = "Выгрузка";
   мУниверсальнаяВыгрузкаДанных.ВыводВОкноСообщенийИнформационныхСообщений = ФлагКомментироватьОбработкуОбъектов;
   
   
   мУниверсальнаяВыгрузкаДанных.Параметры.Вставить("НеЗамещатьДокументыПриЗагрузке",   НеЗамещатьДокументыПриЗагрузке);
   мУниверсальнаяВыгрузкаДанных.Параметры.Вставить("НеЗамещатьСправочникиПриЗагрузке", НеЗамещатьСправочникиПриЗагрузке);
   мУниверсальнаяВыгрузкаДанных.Параметры.Вставить("ПроводитьДокументыПриЗагрузке",    ПроводитьДокументыПриЗагрузке);
   мУниверсальнаяВыгрузкаДанных.Параметры.Вставить("Организация",                      Организация);
   мУниверсальнаяВыгрузкаДанных.Параметры.Вставить("БазоваяВерсия",                    БазоваяВерсия);

   // Выгружаем данные
   
   мУниверсальнаяВыгрузкаДанных.ВыполнитьВыгрузку();
   
КонецПроцедуры // КнопкаВыполнитьНажатие()
18 Aleksei_Pro
 
15.05.12
16:06
(17) через обработку код отрабатывает через фоновое - нет.
19 hhhh
 
15.05.12
16:20
(18) форм на сервере не бывает.
20 Aleksei_Pro
 
15.05.12
16:24
(19) тык я пишу
   Форм = Обработки.НТГ_ВыгрузкаДанных.Создать();    
   Форм.ЗагрузитьПравилаОбмена(Неопределено);
   Форм.КнопкаВыполнитьНажатие(Неопределено);
Модуль то в обработке лежит...
21 Aleksei_Pro
 
15.05.12
16:44
Может кто нибудь объяснит что не так?
22 Лоботряс
 
15.05.12
16:46
(21)Все что не работает на сервере не будет работать и в фоновом задании. А теперь проверь все свои процедуры на использование таких методов и тп.
23 Aleksei_Pro
 
15.05.12
16:54
(22) Ды там методы все рабочие в (17)
24 hhhh
 
15.05.12
17:02
(23) а в журнале регистрации точно-точно смотрел?
25 Aleksei_Pro
 
15.05.12
17:04
(24)Запуск и сразу успешное завершение фонового задания
26 Aleksei_Pro
 
15.05.12
17:06
(24) а что я там должен увидеть то?
27 Aleksei_Pro
 
15.05.12
17:10
Разобрался спасибо)