Имя: Пароль:
1C
1C 7.7
v7: переиндексация при загрузке сервера
0 rikkar
 
17.01.23
22:04
Будьте здравы все!
Вопрос такой:
Есть 1С7.7 дбф-база на файловом сервере (WinServ 2008, 64bit), которую надо переиндексировать при каждой загрузке сервера. Когда и кто первым на сервере залогинится - неизвестно.
Логично создать задачу в планировщике от имени системы, ИМХО - так как на картинке https://pastenow.ru/6a8ccf4b5b4f161a09fe46434cf65b52
Есть простой пакетник, в котором 4 задачи: https://pastenow.ru/2ada6314427f2d20cb81c3afd8320eb1
Но у системы при запуске 1С доходит только до приглашения (вызов окна со списком баз), я так предполагаю, т.к. объем памяти этот процесс в ТМ занимает приблизительно такой.
И дальше процесс не идет. Другие строки пакетного файла, не связанные с запуском 1С, выполняются без проблем.
Вопрос к знатокам, как решить данную задачу. Буду благодарен за подсказки.
1 Злопчинский
 
18.01.23
00:03
каким образом перезагрузка сервера и логин на сервер связаны - для меня загадка.
похрен кто залогинится и залогинится ли вообще.
поставь в автозагрузку сервера запуск 1ски с нужными ключами командной строки конфигуратора (пакетный запуск конфигуратора) и все.

param.ini

[General]
Output=reindex.log
Quit=Y
CheckAndRepair=Y
UnloadData=N
SaveData=N
AutoExchange=N
[CheckAndRepair]
Repair=N
PhysicalIntegrity=N
Reindex=Y
LogicalIntegrity=N
RecalcSecondaries=N
RecalcTotals=N
Pack=N
SkipUnresolved=N
CreateForUnresolved=N
Rreconstruct=N

батник
"c:\program files\1cv77.adm\bin\1cv7.exe" config /Dхренанеполныйпутькаталогабазы /Nхренанеимя /Pхренанепароль /@хренаанеполныйпутькпарамини
2 ЯнСмит
 
21.01.23
13:33
(0) на хрена вообще запускать конфигуратор? это обычно делается так - в батнике сносишь все индексы (*.cdx) и далее запускаешь базу монопольно в режиме предприятия под фиктивным пользователем - для которого при входе в ПриНачалеРаботыСистемы() прописано ЗавершитьРаботуСистемы() ... причем попутно можно сделать еще кучу полезных вещей, как то автоматическое открытие периода и пр.
3 rikkar
 
21.01.23
15:11
(1) "поставь в автозагрузку сервера запуск 1ски с нужными ключами командной строки конфигуратора (пакетный запуск конфигуратора) и все."
пробовал помещать батник в автозагрузку сервера такими способами:

1 - shell:common startup - в папку "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
запускается при входе первого пользователя на сервер. Надо, чтобы система не ждала пользователя.

2 - ч-з gpedit.msc - Конфигурация компьютера - Конфигурация Windows - Сценарии (запуск/завершение) - Автозагрузка
Батник поместил в "C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup" и указал в автозагрузке.
вообще не отрабатывает

батник такой:
echo off
schtasks /change /tn 1CTovar /disable
schtasks /change /tn 1CZakaz /disable
TASKKILL /F /IM 1cv7.exe /IM 1cv7.exe
start "" "C:\Program Files (x86)\1Cv77\BIN\1CV7.exe" config /DD:\Work\TEST\ /N"Reindex" /P"123123" /@D:\Work\TEST\Reindex.prm
timeout /T 600
schtasks /change /tn 1CTovar /enable
schtasks /change /tn 1CZakaz /enable

(2) спасибо, но нужна только переиндексация. Запуск ч-з config файла сценария Reindex.prm решает задачу
4 rikkar
 
21.01.23
15:15
к сожалению предпросмотра сообщения нет, получилась какая-то каша
батник такой:

echo off
schtasks /change /tn 1CTovar /disable
schtasks /change /tn 1CZakaz /disable
TASKKILL /F /IM 1cv7.exe /IM 1cv7.exe
start "" "C:\Program Files (x86)\1Cv77\BIN\1CV7.exe" config /DD:\Work\TEST\ /N"Reindex" /P"123123" /@D:\Work\TEST\Reindex.prm
timeout /T 600
schtasks /change /tn 1CTovar /enable
schtasks /change /tn 1CZakaz /enable
5 Злопчинский
 
21.01.23
15:16
(3) /N"Reindex" - открой доку и почитай как должно задаваться имя и пароль.
6 Злопчинский
 
21.01.23
15:19
TASKKILL - поосторожней...
если это выполняется при перезагрузке сервера - то нафига килять несуществующие задачи.
если предусматривать что батник может быть запущен в любйо момент - надо учитывать что ты закиляешь ВСЕ ЗАПУЩЕННЫЕ 1Ски. в т.ч. и сеансы которые не надо килять (другие базы, бухи которые в бухбазе, а тебе только торговую надо).. заодно и закиляешь конфигуратор, ва котором у тебя несохраненный код...
7 rikkar
 
21.01.23
15:38
(6) на данном сервере только одна рабочая база, так что норм. В конфигураторе там не работаю.
А килять надо на тот случай, если раньше запустится какая-либо запланированная задача (которые в батнике останавливаю).
Поэтому сначала останавливаю (отменяю), затем тасккилл и запуск переиндексации. Вопрос, как поставить в автозагрузку.

(5) убрал кавычки
8 Злопчинский
 
21.01.23
15:42
как вариант применения
tskill *1cv7* /a
9 Злопчинский
 
21.01.23
15:44
(7) получилось?
10 rikkar
 
21.01.23
15:54
Сейчас после перезагрузки сервера картина такая:
- задачи (из батника) в состоянии "Отключено" - что и требуется. Ч-з 10 мин включатся
- процесс 1CV7.exe*32 пользователь "система", ЦП=0, память=1348КБ, что не соответствует процессу переиндексации.
А соответствует, как если я открою окно приглашения 1С (список баз)
Этот процесс останется висеть, т.к. переиндексация не произойдет.
Такая же картина была и тогда, когда ставил в планировщике задачу от имени системы на загрузку https://pastenow.ru/6a8ccf4b5b4f161a09fe46434cf65b52
11 Злопчинский
 
21.01.23
16:28
запусти батник под собой и посмотри что происходит.
у тебя тупо может висеть стартовое окно если база неправильно указана, или диалог имя пароль.
12 Fram
 
22.01.23
12:03
(0) попробуй выполнять с повышенными правами. Там Галка есть в задаче
13 Fram
 
22.01.23
12:04
* с наивысшими правами
14 rikkar
 
22.01.23
12:37
(11) подо мной выполняется - открывается конфигуратор, окно ТиИ с галкой реиндексации
(12) спасибо, попробую.
15 Bigbro
 
23.01.23
04:33
под тем пользователем под которым надо запустить один раз надо вручную стартануть.
чтобы добавить базу в список.
если этого не сделать то при запуске будет висеть окно с добавленной базой и ждать нажатия кнопки "ОК", но это окно увы никто не увидит.
16 Злопчинский
 
23.01.23
07:44
"под тем пользователем под которым надо запустить"
тут имеется в виду ВИНДЯВЫЙ пользователь.
17 Bigbro
 
23.01.23
07:53
ну да, виндовый, логично, профили же у всех разные, списки баз свои.
ну или в реестр скинуть ветку.
18 rikkar
 
23.01.23
09:29
(15) во-во, крутилось такое в голове. Но я то хочу запускать под т.н. пользователем "система".
Т.е. ОС загрузилась, никого из созданных пользователей (у кого может быть свой профиль) в системе нет.
Только так называемый "пользователь" "система" присутствует. Только под ним я не могу стартануть, чтобы добавить базу в список баз.
Хотя она ведь прописана в батнике, чего еще надо?
19 Builder
 
23.01.23
09:31
(18) Что мешает запускать под конкретным пользователем ????
Ему заходить не надо для этого. В шедулере прописать пароль и все.
Уже давно бы сделал.
20 DJ Anthon
 
23.01.23
09:31
(18) давно у меня такая хрень была. надо ключи в реестре занести, чтобы конфигуратор ничего не спрашивал
21 DJ Anthon
 
23.01.23
09:33
что-то вроде

reg QUERY "HKCU\Software\1C\1Cv7\7.7\Options\TIPOTHDAYGLB" >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKCU\Software\1C\1Cv7\7.7\Options\TIPOTHDAYGLB" /f
reg QUERY "HKCU\Software\1C\1Cv7\7.7\Options\TIPOTHDAYGLB" /v TipOfTheDayGlobal >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKCU\Software\1C\1Cv7\7.7\Options\TIPOTHDAYGLB" /v TipOfTheDayGlobal /t REG_SZ /d "0" /f
reg QUERY "HKCU\Control Panel\Desktop" >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKCU\Control Panel\Desktop" /f
reg QUERY "HKCU\Control Panel\Desktop" /v AutoEndTasks >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKCU\Control Panel\Desktop" /v AutoEndTasks /t REG_SZ /d "1" /f
reg QUERY "HKCU\Software\Sysinternals\Handle" >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKCU\Software\Sysinternals\Handle" /f
reg QUERY "HKCU\Software\Sysinternals\Handle" /v EulaAccepted >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKCU\Software\Sysinternals\Handle" /v EulaAccepted /t REG_DWORD /d 1 /f
reg QUERY "HKU\S-1-5-18\Software\Sysinternals\Handle" >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKU\S-1-5-18\Software\Sysinternals\Handle" /f
reg QUERY "HKU\S-1-5-18\Software\Sysinternals\Handle" /v EulaAccepted >> nul 2>>nul
if ERRORLEVEL 1 reg ADD "HKU\S-1-5-18\Software\Sysinternals\Handle" /v EulaAccepted /t REG_DWORD /d 1 /f
22 DJ Anthon
 
23.01.23
09:34
лишние закинул )
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан