v7: Некорректно выполняется *,bat файл при запуске из 1с #742326


#0 by Enlighted
День добрый волшебный народ. У меня нарисовалась следующая проблема. Имеется bat-файл при выполнении из командной строки или простом запуске двойным тыком из системы выполняется корректно. При запуске из 1с не выполняется одна строка конкретно эта: msg * некий текст Пробовал и указывать имя конкретного пользователя и дёргать его из системной переменной не выдаёт он мэссэдж бокс хоть тресни. Пробовал вызвать из 1с двумя способами: Второй вариант не подходит, ибо пока бат файл не завершится 1с не работает.
#1 by Garikk
если я ещё не всё забыл в бат файле надо через start запускать, тогда 1С "отпустит"
#2 by Enlighted
Да проблема не в том что 1с не отпускает, а в том что msg * в батнике запущенном из 1с не срабатывает
#3 by ДенисЧ
<телепате моде он> Клиент-сервер? На сервере запрещена служба сообщений? </моде офф>
#4 by Enlighted
Нет, элементарно запущена на локальной машине 1с ка с локальной файловой базой. Работа по сети даже не предполагается. Батник живёт тоже на локальной машине.
#5 by Cap_1977
ОС какая ?
#6 by Enlighted
win 7 x64 предполагается работа этой же программы и на XP только что попробовал указать в батнике полный путь до msg.exe эффекта ноль.
#7 by Enlighted
Текст батника вот: :test del temp.tmp if NOT %fi% == 1 goto :fin ping -n 30 localhost > nul goto :test :fin C:WindowsSystem32msg.exe * /time:9999 Џа®Ја ¬¬  а ббл«ЄЁ § ўҐаиЁ«  бў®о а Ў®вг. текст строки вызова из 1с вот:
#8 by silverbear
давайте по порядку, не из 1С батник срабатывает ?
#9 by Torquader
bat-файл запускается командой Call. Только вопрос - а через Windows Scripting Host переписать не проще ? Причём ожидание завершения можно через блокировку файла сделать.
#10 by Enlighted
Давайте я наверное более полно задачу опишу 1) из 1С вызывается выполнение внешней программы с определенными параметрами. (выполнятся она будет минут 15). Тем временем в 1с нужно продолжать работу. 2) из 1с-ки тут-же следом вызывается выполнение сего батника, он будет висеть и периодически проверять не завершился ли процесс, по завершении процесса он должен выдать сообщение на экран Батник при ручном запуске (из командной строки и из проводника) работает корректно висит себе и раз в 30 секунд осуществляет проверку процесса, как только процесс завершается батник выдаёт соответствующее сообщение на экран.
#11 by Enlighted
При запуске из 1с батник тоже висит и отслеживает процесс, однако одна беда, строка "msg * текст" не работает вообще никак.
#12 by Torquader
Наверное, он просто запускается в свёрнутом экране. P.S. для отправки сообщения на экран как раз WScript и подходит - там через VbScript можно запустить программу, и также прекрасно дожидаться её завершения, а потом выдать сообщение через MsgBox или открыть окно Ie на весь экран, чтобы пользователь гарантированно его увидел. А запускать сценарий можно через тот же метод ЗапуститьПриложение и 1С будет продолжать свою работу.
#13 by Enlighted
Батник конечно запускается в свёрнутом экране, однако MSG выдаёт новое окно в винде не в консоли а прямо на экране и срабатывает при ручном запуске хоть из свёрнутого хоть из развёрнутого вида. Зачем мне усложнять задачу вб скриптами если простой батник справляется с этой задачей. Темболее моё решение не требует дополнительных средств разработки и может выполняться на любой машине с любыми библиотеками.
#14 by palpetrovich
а эта "внешняя программа с определенными параметрами" не может в конце работы сформировать тхт-файлик? еслида, то может ну его, бат-файл? проверять периодически из 1с в обрабоке ожидания тхт-файлик на наличеи, да и все?
#15 by Enlighted
Можете попробовать выполнить в командной строке команду "msg * любой текст" Внешняя программа пишет лог на постоянной основе пока не закроется. А сделать так чтобы по завершении она давала тхт не представляется возможным.
#16 by Enlighted
Вообще не хотелось бы после запуска этой программы хоть скольнибудь нагружать 1с-ку. Поэтому и писался батничек всего строк то 7 функциональных
#17 by Enlighted
шайтанама ни с того ни с сего вдруг взяла и заработала. Всем спасибо за участие глюк повторить пока не удалось поэтому решения собственно найдено не было.
#18 by Torquader
Просто, иногда свёрнутое окно ДОС-программы планировщик просто останавливает, так как считает, что оно не нужно.
#19 by Enlighted
Не останавливалось, ибо когда процесс закрывался свёрнутое окно дос программы тоже закрывалось, и даже писало в файл о своём завершении
#20 by Torquader
Тогда, вполне вероятно, что сообщение получал другой пользователь. Потом, не следует забывать, что служба сообщений Windows - очень ненадёжная вещь. P.S. попробуйте указать имя пользователя явно.
#21 by Enlighted
оно писало в лог файл при завершении батника имя текущего пользователя. Всё было верно Но я уже написал что глюк прошел самостоятельным образом всем спасибо за участие если повторится я подниму ветку :)
#22 by Torquader
Тогда, если наблюдается глюк, то сразу перезапускай службу сообщений. Ещё рекомендуется убрать установку времени ожидания, так как в течение этого времени "умная" система будет ждать доставки сообщения - не факт, что следующие сообщения дойдут.
#23 by Enlighted
если отключить временной интервал то оно будет исчезать раньше чем его прочитаешь
#24 by Enlighted
а нет, всё время убрал вроде не исчезает
#25 by Torquader
Его же пользователь закрывает Просто интервал и ключи /v или /w нужны для того, чтобы дождаться оповещения пользователя и после этого продолжить что-то делать (видимо, они мечтали о том, что пользователю можно будет задать вопрос - очень бы было хорошо и удобно - но, не сделали же).
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С