|
Запуск скрипта из 1с после закрытия 1с | ☑ | ||
---|---|---|---|---|
0
revolt
13.08.12
✎
16:19
|
Есть в 1с обработка по перепроведению документов. Запускается через task sheduler. Результат работы записывается в текстовый файл через параметр запуска. Этот текстовый файл должен быть отправлен скриптом на почту.
Проблема в том, что файл формируется после закрытия 1с (после завершения работы перепроведения). Как запустить скрипт отправки почты, чтобы он отправил заполненный файл, если скрипт я запускаю из самой 1с в обработке перепроведения, но результат,который должен быть отправлен создается только после зарктия 1с? Пробовал запускать скрипт, который запускает такой-же скрипт через 10 секунд, чтобы отправить почту. Но 1с упорно ждет завершения этих 2х скриптов и только потом закрывается и формирует файл. |
|||
1
pumbaEO
13.08.12
✎
16:21
|
Версия 1С какая?
|
|||
2
revolt
13.08.12
✎
16:22
|
1С:Предприятие 8.2 (8.2.15.310)
|
|||
3
vde69
13.08.12
✎
16:28
|
нифига не понял, но вообще-то регламентными заданиями делается любая отмылка
|
|||
4
revolt
13.08.12
✎
16:30
|
(3) конфигурацию трогать нельзя. Обработка по перепроведению - внешняя. Файл результата обработки создается только когда 1с закрывается, т.к. результат проведения выдается в оконо сообщений 1с и сохраняется при закрытии в файл с помощью параметра, который указывали, когда запускали 1с /OUT
|
|||
5
Nikitos
13.08.12
✎
16:31
|
Странные вопросы... Рекомендую написать что-нибудь, используя WSH, ну или, на худой конец, тупо bat файл
|
|||
6
Heckfy
13.08.12
✎
16:31
|
Скрипт через КомандаСистемы или через запуститьПриложение запускаете?
|
|||
7
Liova
13.08.12
✎
16:32
|
Если всё равно запускается батник, почему бы просто не поставить задержку достаточную (ping тот же)и затем отослать файл уже созданный.
|
|||
8
vde69
13.08.12
✎
16:32
|
(4) регламентное задание можно и в пользовательском режиме сделать
а вообще для начала сделайте запись в файл в самой обработке |
|||
9
Vakhrin
13.08.12
✎
16:33
|
в комманд файле, откуда запускается 1С, после отработки как угодно отправить файл - проблема разве?
|
|||
10
revolt
13.08.12
✎
16:33
|
(6) КомандаСистемы
|
|||
11
pumbaEO
13.08.12
✎
16:34
|
По два раза не повторяю, по два раза можно запустить 1С... Дабы была одна точка входа: одна обработка проводит, вторая обработка отправляет результат работы.
|
|||
12
revolt
13.08.12
✎
16:34
|
(7) так и делал. В итоге 1с ждет завершения работы второго батника
|
|||
13
revolt
13.08.12
✎
16:34
|
(8) подскажете, как сообщения из окна сообщений сохранить в файл средствами встроенного языка 1с?
|
|||
14
Nikitos
13.08.12
✎
16:34
|
(11) Зачем?
Один раз дождаться появления файла и отправить его. |
|||
15
revolt
13.08.12
✎
16:35
|
(9) не проблема. проблема в том, что отправляемый файл появляется только после закрытия 1с из которой я могу запустить отправку
|
|||
16
Heckfy
13.08.12
✎
16:35
|
(10) может ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)
ДождатьсяЗавершения=Ложь; ? |
|||
17
revolt
13.08.12
✎
16:37
|
(16) спасибо попробуем
|
|||
18
Liova
13.08.12
✎
16:37
|
(12) Как-то нелогично. Отдельная команда запуска 1С закончилась ведь уже.
|
|||
19
stix2010
13.08.12
✎
16:37
|
http://www.rsdn.ru/article/winshell/batanyca.xml
оператор && |
|||
20
revolt
13.08.12
✎
16:38
|
(18) тем не менее. Получается что батник, запустивший второй батник продолжает выполняться сам
|
|||
21
revolt
13.08.12
✎
16:38
|
(19) не понял причем тут &&
|
|||
22
Liova
13.08.12
✎
16:38
|
Понял. Я имел ввиду сделать обработку 1 - создает файл и обработку 2 - запускает скрипт отправки уже созданного пред. командой файла.
|
|||
23
revolt
13.08.12
✎
16:40
|
(22) а как обработка 2 узнает, что обработка 1 завершилась? Обработка 1 запускается всего 2 раза в месяц, выполняется 1-2 часа, но время может быть разным.
|
|||
24
Nikitos
13.08.12
✎
16:41
|
Объясните мне, дураку, зачем вообще 2 батника?
Примерно так на vbs: Set WshShell = CreateObject("WScript.Shell") WshShell.Run("notepad", 1, True) а вот тут начинаем отправку файла. ************************ 3.4. Run Синтаксис: Run(<Command>,<WindowStyle>,<WaitOnReturn>) Назначение: создаёт новый независимый процесс, который запускает заданное приложение. Параметры: <Command> - строка, командная строка запуска приложения. <WindowStyle> - необязательный, число. Определяет вид окна запускаемого приложения. Некоторые возможные значения: 0 - Не отображает окно. 1 - Активизирует и отображает окно. 2 - Активизирует окно и отображает его в свёрнутом виде. 3 - Активизирует окно и отображает его в максимизированном виде. <WaitOnReturn> - необязательный, булево (число). True - сценарий возобновит работу только после завершения вызванного процесса. False (по умолчанию) - управление передаётся сразу обратно в сценарий. Описание: если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль. Пример: Set WshShell = CreateObject("WScript.Shell") WshShell.Run "explorer /e,/root,""C:\Program Files""" Другой пример: Set WshShell = CreateObject("WScript.Shell") RetCode = WshShell.Run("notepad", 1, True) MsgBox "Обработка завершена! Код возврата - " & RetCode |
|||
25
Liova
13.08.12
✎
16:42
|
так просто cmd
1cv8.exe обработка1 OUT 1cv8.exe обработка2 вот тебе по порядку запускаются и всё. |
|||
26
stix2010
13.08.12
✎
16:43
|
(21)
command1 && command2 Оператор && гарантирует, что вторая команда будет выполнена только, если первая была выполнена успешно, т.е. с нулевым кодом возврата (он же %errorlevel%). c:\...1cv8.exe /обработкапроведения && с:\...1cv8.exe /обработкаотправки |
|||
27
revolt
13.08.12
✎
16:43
|
(24) получается аналог ЗапуститьПриложение, предложенное в (16), которое сейчас и проверяю =)
|
|||
28
revolt
13.08.12
✎
16:44
|
(26) понял. Спасибо!
|
|||
29
revolt
13.08.12
✎
16:47
|
Сделал по (16).
Всем огромное спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |