![]() |
|
Процедура для выполнения при запуске обработки | ☑ | ||
---|---|---|---|---|
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: кстати, "ВыполнитьЗагрузку()" - процедура-обертка, в принципе, можно без неё - в ней только вызовы экспортных процедур обработки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |