Имя: Пароль:
1C
 
Процедура для выполнения при запуске обработки
0 busy1
 
02.04.15
15:25
Добрый день. Подскажите как сделать что бы при открытии обработки на БП 8.3. Выполнялась процедура в модуле объекта обработки?
1 Лефмихалыч
 
02.04.15
15:28
&НаСервере
Процедура ПриСозданииНаСервере()
   О = РеквизитФормыВЗначение("Объект");
   О.ТвояПроцедура();
   ЗначениеВРеквизитФормы(О, "Объект"); // если ТвояПроцедура ни чего в объекте не меняет, то эту строчку можно удалить
2 ДенисЧ
 
02.04.15
15:28
приСозданииНаСервере() ?
|
3 busy1
 
02.04.15
15:29
Спасибо друзья.
4 Лефмихалыч
 
02.04.15
15:29
//это если надо прямо именно при открытии

&НаСевере
Процедура СделатьВсёНаСевере()

   О = РеквизитФормыВЗначение("Объект");
   О.ТвояПроцедура();
   ЗначениеВРеквизитФормы(О, "Объект"); // если ТвояПроцедура ни чего в объекте не меняет, то эту строчку можно удалить
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Не помню, какие там параметры)
   СделатьВсёНаСевере();
5 busy1
 
02.04.15
15:30
Процедура просто тупо запускает обработку.УниверсальныйОбменДанныхXML
6 busy1
 
02.04.15
15:32
&НаКлиенте
Процедура ПриОткрытии() Экспорт
    Если ПараметрЗапуска = "Загрузка" Тогда
        ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
        ОбработкаОбмена.ИмяФайлаОбмена = "\\192.168.0.7\1c\1C_obmen\ut_acc.xml";
        ОбработкаОбмена.РежимОбмена = "Загрузка";
        ОбработкаОбмена.ОткрытьФайлЗагрузки(Истина);
        ОбработкаОбмена.АрхивироватьФайл = Ложь;
        ОбработкаОбмена.ВыполнитьЗагрузку();
        ОбработкаОбмена = Неопределено;
        ЗавершитьРаботуСистемы(Ложь);
    КонецЕсли;
КонецПроцедуры
7 busy1
 
02.04.15
15:32
Взлет из модуля объекта?
8 busy1
 
02.04.15
15:39
Что то не работает не ПриОткрытии(), не при СозданииНаСевере()
9 hhhh
 
02.04.15
16:13
(6) почему на клиенте? Первое апреля вроде закончилось?
10 hhhh
 
02.04.15
16:14
и что это за магические формулы? НаСевере, НаЮге?
11 busy1
 
02.04.15
16:54
НаСервере выдает ошибку ПараметрЗапуска - неизвестен
12 Лефмихалыч
 
02.04.15
17:13
(11) а на клиенте все остальное не работает. Такая вот загогулина, панимаишь. Придется выполнять на сервере, передавая туда этот твой ПараметрЗапуска.

А какая половая религия мешает запускать УниверсальныйОбменДаннымиXML, а не какую-то левую гондоту? Так ведь на одну обработку меньше думать.
13 busy1
 
02.04.15
17:37
Лефмихалыч, а как мне автоматом запустить УниверсальныйОбменДанных при загрузки из bat файла?
14 busy1
 
02.04.15
17:43
В целом задача решена. В модуль объекта поместил весь текст обработки вообще без процедуры(). Но как сделать ЗавершитьРаботуСистемы(Ложь). В модуле обработки она выдаёт ошибку. В модуле формы я боюсь что система будет закрываться раньше чем выполниться загрузка
15 Serg_1960
 
02.04.15
18:19
Запустить процедуру можно с помощью параметра /Execute.
Я не совсем понимаю зачем тебе нужна форма и модуль формы, но в принципе и это решаемо. В форме сделай вызов Результат = ФункцияХ(), в которой вызов обработки по загрузке и в последней строке "Возврат Истина;" - тогда форма будет "ждать" возврата значения (другими словами - завершение загрузки). Как-то типа так.

PS: кстати, "ВыполнитьЗагрузку()" - процедура-обертка, в принципе, можно без неё - в ней только вызовы экспортных процедур обработки.
2 + 2 = 3.9999999999999999999999999999999...