gifts2017

Автореиндексация базы

Опубликовал Петр Власюк (Tempus) в раздел Администрирование - Сервисные утилиты

Пример скрипта на VBS для автореиндексации базы при входе

Пример скрипта на VBS для входа пользователя в базу, в случае, если она требует реиндексации.

Вопрос возник, когда пользователю, который входит в 1С с командной строки, стало выпадать сообщение о том, что необходимо переиндексировать базу. Зайти монопольно он не мог, потому сидел и доставал меня :)

В качестве решения - при запуске, проверяю нужна ли реиндексация, и если нужна - провожу ее, а потом уже пускаю в базу пользователя. Естественно можно сюда же добавить еще что-то, например создание копии базы, записи в логи, и т.п.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
UNI_start.rar
.1194014985 0,82Kb
25.09.09
34
.1194014985 0,82Kb 34 Бесплатно
dbf.udl
.1194015104 0,35Kb
25.09.09
25
.1194015104 0,35Kb 25 Бесплатно

См. также

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

Комментарии

1. Равиль Каримов (karaw) 06.11.07 08:59
А как это работает? Не могли бы поподробнее
2. Петр Власюк (Tempus) 06.11.07 12:22
Ну скрипт я тут просто "с мясом" выложил :)

Принцип работы такой - 1С определяет необходимость реиндексации по параметрам в таблице 1SUSERS - елси там стоит значение USRSCNT отличное от нуля - значит необходима реиндексация (т.е. пользователь вышел и базы некорректно). ПРичем по опытам - даже если тупо удалить файлы индексов, но оставить 1SUSERS в нормальном виде, 1С не требует реиндексации (что странно).
Собственно на этом и "играю" - проверяю наличие и заблокирванность файла 1Cv77.LCK (есть ли кто-то в базе - если есть - то просто запускаю 1С, поскольку все равно реиндексировать нельзя), а потом проверяю таблицу 1SUSERS, и при необходимости реиндексирую базу (только сначала удаляю файл 1SUSERS)

А файл udl - просто файл настроек подключения в БД в формате dbf, чтобы не прописывать все параметры в скрипте.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа