|
Запуск 1С из 1С. Как сделать ожидание завершения? | ☑ | ||
---|---|---|---|---|
0
WED
23.04.12
✎
14:16
|
Задача реализовать хитрый обмен между двумя базами.
В источнике есть узел плана обмена. По нему есть регистрация у ряда документов. в обработке выбираем какие документы будем выгружать и выгружаем в xml используя "УниверсальныйОбменДаннымиXML". Теперь нужно в приемнике загрузить этот файл и сформировать подтверждение. Хочу это сделать через запуск ИБ-приемника с запуском внешней обработки, которая в параметрах получить имя xml-файла, загрузит его, сформирует подтверждение и закроет ИБ-приемник. Но столкнулся с тем, что ЗапуститьПриложение() вопреки описанию в СП не ожидает завершения запускаемой 1С-приемник. Как можно запустить 1С-приемник с ожиданием завершения? ИБ-приемник - типовая бух-я. Платформа 8.2.15.294 |
|||
1
pumbaEO
23.04.12
✎
14:20
|
ЗапуститьПриложение() не ожидает, для 1С.
Пиши файл статуса и периодически читай его... (в команду запуска передаешь путь к файлу, вешаешь обработчик, переодически читаешь файлик и если там типа есть 1 строка с единицей, значить все ок) |
|||
2
Buster007
23.04.12
✎
14:20
|
а чем не устраивает как реализован типовой обмен? Там можно настроить подключение к базе.
|
|||
3
WED
23.04.12
✎
14:27
|
(1) Увы, но асинхронность тут запрещена (пользователи такие - надо только последовательные действия)
(2) 1. Источник - не типовая и типового механизма обмена в ней нет. 2. Часть зарегистрированных изменений попадает в источник, часть игнорируется: т.е. в источнике изменения не выгружаются,а удаляются и в приемник не попадают. |
|||
4
WED
23.04.12
✎
14:28
|
+(3) 3.Обмен не регламентированный, а тогда "когда я нажму на кнопку".
|
|||
5
aleks-id
23.04.12
✎
14:28
|
запускай скриптом
|
|||
6
WED
23.04.12
✎
14:29
|
(5) Домен. Пользователям скрипты запрещены.
|
|||
7
WED
23.04.12
✎
14:30
|
Может есть внешняя компонента, с реализованной функцией запуска и ожиданием завершения процесса ?
|
|||
8
aleks-id
23.04.12
✎
14:31
|
Процедура ВыполнитьКомандуСистемы(Команда) Экспорт
ScrptCtrl=Новый COMОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function ExecSys() |Dim oWsh |Dim sResult | |Set oWsh = CreateObject(""Wscript.Shell"") |sResult = oWsh.Run(""" + Команда + """, 1, True) | |End Function |"); Результат = ScrptCtrl.Run("ExecSys"); КонецПроцедуры |
|||
9
WED
23.04.12
✎
14:32
|
(8) Спасибо за процедуру, но опять же - скрипты запрещены.
|
|||
10
aleks-id
23.04.12
✎
14:37
|
(9) ну так разреши пользователю под которым сервак крутится скрипты. в чем проблема то?
|
|||
11
WED
23.04.12
✎
14:40
|
(10) Обмен происходит не на сервере, а у конкретного пользователя.
|
|||
12
WED
23.04.12
✎
14:40
|
База файловая
|
|||
13
aleks-id
23.04.12
✎
14:43
|
так. может я что не понимаю?
ЗапуститьПриложение (RunApp) Синтаксис: ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>) |
|||
14
aleks-id
23.04.12
✎
14:45
|
не может быть чтобы не работало
|
|||
15
WED
23.04.12
✎
14:49
|
(14) А ты попробуй :) в случае запуска 1С не ждет.
|
|||
16
pumbaEO
23.04.12
✎
14:53
|
(14) не ждет. И даже из (8) не сработает.
|
|||
17
hhhh
23.04.12
✎
14:56
|
(15) так вы наверно 1с-стартер запускаете? Приколисты. Запускайте саму 1с.
|
|||
18
WED
23.04.12
✎
15:01
|
(17) ДРУЖИЩЕ! Ну ты ж прав конечно! :) Работает! Ждет! Ура, блин.
я за 3 дня не допер... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |