gifts2017

Как запустить ERT-файл из Проводника?

Опубликовал Андрей (smirnov.a) в раздел Администрирование - Системное

Как запустить ERT-файл из Проводника?

впервые опубликовано: май 2002 на сайте Hare.ru


Этот вопрос относится поднимается на форумах по V7 с завидной регулярностью. Для чего может понадобится такая фича – это пусть каждый решает сам, я же просто опишу как это сделать технически.

Прежде всего: курочить глобальный модуль не нужно, вообще никаких изменений в конфигурации не понадобится. Для решения задачи мы возьмём не V7, а встроенный в Windows сервер сценариев (Windows Script Host, WSH).

Пишем сценария, вот такой:

set wshShell = wScript.createObject("wScript.shell")
wshShell.run """C:\V7\bin\1cv7s.exe"" enterprise /d""C:\MyBase\"" /nПупкин /p123"
wScript.sleep 120000 'подождем пока загрузится (2 минуты)
wshShell.appActivate "1С:Предприятие"
wshShell.sendKeys "^(o)"
wshShell.sendKeys wScript.arguments.unnamed.item(0)
wshShell.sendKeys "~"

И сохраним его с именем, к примеру, RunErt.vbs. Теперь берём командную строку и пишем в ней: RunErt.vbs C:\ERT\MyERT.ert

Жмем Enter, и через 2 минуты, оно ка-а-ак прыгнет ;-)

Естественно, ключи запуска 1cv7 нужно подставить ваши, да и задержку времени, возможно, придется подобрать экспериментально.

Если же нужно запустить ERT в уже загруженной сессии 1С:Предприятия, тогда сценарий будет еще короче:

set wshShell = wScript.createObject("wScript.shell")
wshShell.appActivate "1С:Предприятие"
wshShell.sendKeys "^(o)"
wshShell.sendKeys wScript.arguments.unnamed.item(0)
wshShell.sendKeys "~"

При желании можно даже проассоциировать ert-файлы с RunErt.vbs, тогда по двойному клику из Проводника они будут открываться на исполнение внутри V7.

Может возникнуть проблема: если запущено несколько экзепляров Предприятия, то неизвестно, в каком именно будет открыт наш внешний отчёт.

Заранее согласен со всеми критиками: это не самый красивый, не самый надежный, не самый правильный… да и наверняка не единственный способ проблемы. Но всё же он работает.

Вообще, используя WSH и SendKeys можно делать много всяких интересных вещей.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Вадик Лавин (LavinVadik) 18.09.15 05:21
на win8 64 работать не будет
вот так работает в фоновом режиме и на 64 битных

mPathProg = "C:\Program Files\1Cv77\BIN\1cv7s.exe"'Путь к программе 1С
mPathBase = "E:\1C_DB\sklad_2006\"'Путь к базе данных
mUser = "Admin"'Пользователь
mPW = "33"'Пароль пользователя
mPath_Name_Ert = "FormsExt\ExtAdmin\w_Рапорт.ert"'Путь и название обработки
mPath_Name_CVS = "D:\Temp"

'Работа скрипта

Set mProgV77 = CreateObject("v77s.Application")
ComandLine = mPathProg&" /d"&mPathBase&" /n"&mUser+" /p"+mPW
mresult = mProgV77.Initialize(mProgV77.RMTrade, ComandLine,"NO_SPLASH_SHOW")
If mresult Then
mresult = mProgV77.EvalExpr("OpenForm(""Отчет"","""&mPath_Name_CVS&""","""&mPathBase&mPath_Name_Ert&""")")
End If
2. Иван Сафронов (djolejek) 28.01.16 17:25
(1) LavinVadik, это все в одном файле с расширением *.vbs?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа