Войти

Показать полную графическую версию : 1с77 + vbs - как открыть базу скриптом


Charg
13-07-2018, 18:35
Есть код, начало которого выглядит так:
Option Explicit

Dim V7, OPENDB, PathToBase

Set V7 = CreateObject("V77.Application")
PathToBase = "\\server\share_disk_e$\1C_Base\base"
OPENDB = V7.Initialize(V7.RMTrade, " /d" & PathToBase & " /Nuser /P123", "NO_SPLASH_WINDOW")
WriteLogMsg ("begin start 1C")

При запуске скрипта первый раз появляется окно, которое по идее должно выключаться параметром NO_SPLASH_WINDOW (на некоторых форумах NO_SPLASH_SHOW - тоже пробовал) но тем не менее все еще показывается
https://i.imgur.com/TYpYXiQ.png

Соответственно любое запущенное планировщиком задание, стартующее этот скрипт - выдает это окно в котором нужно нажать ОК - и дальше всё отрабатывает как надо. И последующие запуски задания отрабатывают как надо БЕЗ необходимости нажимать ОК в этом окне.
При завершении сеанса и первом запуске скрипта снова нужно будет нажать ОК.

Как победить этот бред?

Iska
13-07-2018, 18:46
При запуске скрипта первый раз появляется окно, которое по идее должно выключаться параметром NO_SPLASH_WINDOW (на некоторых форумах NO_SPLASH_SHOW - тоже пробовал) но тем не менее все еще показывается »
Чего-чего-чего? Появление этого окна говорит о том, что база по указанному пути не зарегистрирована в реестре текущего пользователя.

Как победить этот бред? »
1. Это не бред. 2. Победить его можно добавлением информации в реестр для текущего пользователя в раздел HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles. Можно прямо в скрипте проверять наличие там параметра \\server\share_disk_e$\1C_Base\base, и при отсутствии — добавлять.

Charg
13-07-2018, 21:25
Чего-чего-чего? Появление этого окна говорит о том, что база по указанному пути не зарегистрирована в реестре текущего пользователя. »
Ну возможно, я с 1с то и не знаком толком, но по описанию в гугле понял именно так.
Разве эта база не должна подключаться однократно? Не на текущий сеанс а вообще при первом запуске 1с для пользователя и до ручного удаления пользователем этой базы через какой-нибудь интерфейс внутри 1с?

Iska
13-07-2018, 22:13
Разве эта база не должна подключаться однократно? Не на текущий сеанс а вообще при первом запуске 1с для пользователя и до ручного удаления пользователем этой базы через какой-нибудь интерфейс внутри 1с? »
Должна. Что и требуется однократно проделать, через интерфейс, либо программно. О чём я и пишу.

А вышеуказанный параметр командной строки отключает splash-заставку 1С, вот эту:
https://i.imgur.com/cYbNWuV.png

Charg
14-07-2018, 14:26
Должна. Что и требуется однократно проделать, через интерфейс, либо программно. О чём я и пишу. »
Ну так а это подключение базы сбрасывается если перезайти в сеанс. И снова нужно нажимать "ОК" чтобы скрипт работал в дальнейшем.

Iska
14-07-2018, 15:12
Charg, у меня — не сбрасывается. А если у Вас сбрасывается — я же прямым текстом пишу: создавайте запись о подключении базы в реестре для текущего пользователя программно, до вызова метода .Initialize().

Charg
14-07-2018, 18:09
Iska, это я понял, спасибо, просто уточнял что это не нормальное положение дел. С 1с я не знаком практически никак.
А как можно выяснить почему проявляется этот глюк (несохранение подключенной базы)?

Iska
14-07-2018, 18:30
Charg, даже не знаю, не сталкивался. Можете попробовать отследить удачные и неудачные попытки записи в раздел HKCU\Software\1C\1Cv7\7.7\Titles посредством Process Monitor (задав фильтр включения на операции с реестром и на указанный путь). Может быть даст какую-нибудь информацию к размышлению.




© OSzone.net 2001-2012