Имя: Пароль:
1C
 
Переиндексирование автоматом
0 Никитос
 
25.08.04
17:57
Как проще сделать переиндексирование базы в автоматическом режиме на серваке ночью? (и чтобы пароль не надо было вводить)
А можно ли сделать переиндексирование днем, если что-то случилось, а сисадмина у сервака нет?
1 Рупор абсурда
 
25.08.04
18:06
Мдя ...
2 Никитос
 
25.08.04
18:16
Спасибо за полный, очень умный и грамотный ответ. Так и поступлю. Премного благодарен.
3 Рупор абсурда
 
25.08.04
18:19
(2) Обиделся? Извини ...
Я иногда забываю, что обещал Волшебнику чайников не обижать ... :((
4 Рупор абсурда
 
25.08.04
18:21
Чтоб сделать переиндексироа=вание обязательным и без вопросов, достаточно убить все индексные файлы ...
Чтоб не надо было вводить пароль, достаточно добавить его в строке запуска ...
5 Никитос
 
25.08.04
18:51
Нет, не обиделся. Сам в некоторых вещах спец, но не издеваюсь над каждым чайником в этих вопросах по поводу и без. К тому же на форуме эт зачем? Форум же создан для повышения уровня народа, а не для постоянного стёба.
6 Рупор абсурда
 
25.08.04
19:04
(5) Да ..., ты прав ...
Над новичками стебаться - западло ...
Мне б пита какого-нить опустить или NS'а ...
Ну, или АЛьФ'а, на худой конец ...
7 lemon
 
25.08.04
19:06
(5) одно не исключает другого, нередко возможно удачное сочетание
8 Никитос
 
25.08.04
19:14
Про само понятие "переиндексирование" и как его делать мне известно. Вопрос в другом: как ночью запустить 1с в монопольном режиме, не вводить пароль, не отвечаь на запрос о переиндексации, а после выполнения оной - закрыть 1с чтобы разрешить доступ к базе юзерам.
А также: как выполнить то же самое днем, но не автоматически, а лишь если 1с была завершена аварийно (без моего участия)
9 It is me
 
25.08.04
19:26
(8)Напиши пакетный командный файл, который в первой строчке будет убивать cdx файлы, во второй строчке запускается 1С с ключами /dКаталогБазы /nИмяПользователя /pПарольПользователя. Что типа:
del c:\1cv77\data\*.cdx /q
1cv7.exe /dc:\1cv77\data\ /nИванов /p111
10 Никитос
 
25.08.04
19:34
Уже хоть что-то. Спасибо. А как выйти из базы сразу после запуска?
11 Z1
 
25.08.04
19:36
(9) Только неувязочка есть переиндексировать базу 1с можно только при монопольном режиме. Лихо ты cdx удаляешь ведь с базой в этот момент может кто-то работать и/или болтаться подвисшая сессия.
сегодня уже дискутировал по аналогич теме ( самая длинная ветка сегодня ) там же и решение. Чуть чуть внимательнее
(6) Рупор ты что не отметился в самой длинной ветке ? (Можно ли делать копии с работающей базы (v 7.7))
12 ЧеТоКакТо
 
25.08.04
19:36
создаешь еще одну пустую базу(ПБ)-она у тябя будет работать в фоновом режме.
Создаешь там обработку(ОБ) для удаления инднксных файлов в нужной базе(НБ)
делаешь обработку ожидания чтобы ровно в 0-00 она запускала ОБ.
апосля этого ОБ должна запустить 1С в пакетном режмиме для запуска НБ монопольно. При этом она у тебя ничего не спросит, а тихо переиндексит файлы.
Чтобы НБ у тебя закрылась после переиндексации(т.е. после открытия) делаешь какое нибудь условие (вариантов куча) ПриНачалеРаботыСистемы(), и если это условие выполняется, то  СтатусВозврата(0); Возврат;
По идее должно все работать гладко и без косяков
13 Никитос
 
25.08.04
19:40
И вообще, в таком случае все стопится на окне с выбором базы...
14 SnarkHunter
 
25.08.04
19:57
Да? У тебя же в командной строке и путь к базе прописан и юзер и пароль...
15 Z1
 
25.08.04
20:04
(14) Да ошибся в букве или русская буква вот и не срабатывает. еще не помешает
enterprise
16 It is me
 
25.08.04
20:08
(13)del c:\1cv77\data\*.cdx /q
c:\work\ssv\1cv77.ADM\bin\1cv7s.exe enterprise /dc:\1cv77\data\ /nАдминов /m
- рабочий, добавлены ключи enterprise & /m
17 Рупор абсурда
 
25.08.04
20:14
(11) Читал сегодня ... Мне было очень стыдно за всех вас ...
18 wolk
 
25.08.04
20:27
(16) - Вместо /dc:\1cv77\data\ следует писать /dПолныйПутьКТвоейБазеБлин
И ещё: у юзера под которым заходишь (/n) обязательно должен быть непустой пароль без русских букв.
19 wolk
 
25.08.04
20:27
Или по случайному совпадению твоя база лежит в c:\1cv77\data\ ?
20 Никитос
 
25.08.04
22:31
(18) Нет, все дело было именно в (16)
Остался вопрос с выходом из базы...
21 It is me
 
25.08.04
22:35
(20)Заведи юзера Робот, затем в процедуре ПриНачалеРаботыСистемы проверяй имя юзера и если Робот, то ЗавершитьРаботуСистемы. Если запускаешь ночью, можно делать проверку на время - в полночь мало кто работать будет - так делал.
22 Никитос
 
25.08.04
22:55
(21) Гм... А где эта процедура? Вообще, вариант с проверкой времени меня очень даже устраивает, но где сделать эту проверку???
23 romix
 
26.08.04
00:03
24 ЧеТоКакТо
 
26.08.04
00:13
(0)А зачем тебе вабще нужна автопереиндексация
25 romix
 
26.08.04
00:15
(+23) То есть, надо создать 2 файла - один с расширением bat (можно - cmd), другой - с расширением prm (можно другие расширения).

Первый файл (c расширением bat):  

@echo off
cd "c:\Program Files\1Cv77\BIN\"
start /min 1cv7.exe CONFIG /DD:\1C\db /NИмяПользователя /PПарольПользователя / @D:\1C\CMD\xxx.prm


Все это - одна большая строка для запуска 1С с параметрами.

Содержимое файла D:\1C\CMD\xxx.prm

[General]
Output=d:\1C\CMD\Log.txt
Quit=1
CheckAndRepair=1
UnloadData=0
SaveData=0
AutoExchange=0

[CheckAndRepair]
Repair=0
PhysicalIntegrity=1
Reindex=1
LogicalIntegrity=0
RecalcSecondaries=0
RecalcTotals=0
Pack=0

Могут меняться пути к файлам, а также 1cv7.exe (например, 1cv7s.exe для SQL-версии 1С).

Подробности - в документации к 1С (если у вас она куплена) или в Яндексе.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший