Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   1с77 + vbs - как открыть базу скриптом (http://forum.oszone.net/showthread.php?t=335701)

Charg 13-07-2018 18:35 2821658

1с77 + vbs - как открыть базу скриптом
 
Есть код, начало которого выглядит так:
Код:

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 - тоже пробовал) но тем не менее все еще показывается
Скрытый текст


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

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

Iska 13-07-2018 18:46 2821659

Цитата:

Цитата Charg
При запуске скрипта первый раз появляется окно, которое по идее должно выключаться параметром NO_SPLASH_WINDOW (на некоторых форумах NO_SPLASH_SHOW - тоже пробовал) но тем не менее все еще показывается »

Чего-чего-чего? Появление этого окна говорит о том, что база по указанному пути не зарегистрирована в реестре текущего пользователя.

Цитата:

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

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

Charg 13-07-2018 21:25 2821688

Цитата:

Цитата Iska
Чего-чего-чего? Появление этого окна говорит о том, что база по указанному пути не зарегистрирована в реестре текущего пользователя. »

Ну возможно, я с 1с то и не знаком толком, но по описанию в гугле понял именно так.
Разве эта база не должна подключаться однократно? Не на текущий сеанс а вообще при первом запуске 1с для пользователя и до ручного удаления пользователем этой базы через какой-нибудь интерфейс внутри 1с?

Iska 13-07-2018 22:13 2821693

Цитата:

Цитата Charg
Разве эта база не должна подключаться однократно? Не на текущий сеанс а вообще при первом запуске 1с для пользователя и до ручного удаления пользователем этой базы через какой-нибудь интерфейс внутри 1с? »

Должна. Что и требуется однократно проделать, через интерфейс, либо программно. О чём я и пишу.

А вышеуказанный параметр командной строки отключает splash-заставку 1С, вот эту:
Скрытый текст

Charg 14-07-2018 14:26 2821765

Цитата:

Цитата Iska
Должна. Что и требуется однократно проделать, через интерфейс, либо программно. О чём я и пишу. »

Ну так а это подключение базы сбрасывается если перезайти в сеанс. И снова нужно нажимать "ОК" чтобы скрипт работал в дальнейшем.

Iska 14-07-2018 15:12 2821772

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

Charg 14-07-2018 18:09 2821781

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

Iska 14-07-2018 18:30 2821784

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


Время: 05:11.

Время: 05:11.
© OSzone.net 2001-