Как определить, потребует ли 1С 7.7 (dbf) переиндексации при запуске? #114372


#0 by FarFar
Тема: имеется порядка 30 баз 1С 7.7 (dbf). Каждый день автоматически запускается каждая 1С, в ней запускачкается обработка (ert), которая  формирует отчет. Проблема: запускаю 1С в разделенном режиме, так как там работают пользователи. Но возникает проблема с базами, которые требуют переиндексации, приходится их контролировать вручную. Есть ли какой то быстрый способ узнать, потребует семера переиндексации или нет? Поле там в какой-нибудь табличке?
#1 by Соратник
Про это поле мне был обы тоже очень интересно узнать. Пока могу тока предложить вариант предварительной переиндексации, то есть удаляешь все цэдэиксы, и запускаешь монопольно (если нет индексов то переиндексация происходит без предварительного запроса)
#2 by FarFar
Это то ясно. Я как раз так и планирую делать. Однако некрасиво, когда юзвери в базе работают пытаться удалять cdx-ы. Варианты выгонять юзверей не предлагать -)
#3 by ДБФНИК
Нет такого способа. ДБФ он и есть ДБФ. Единственный способ- открывать  ДБФ файлы. Если  битый то значит нун ремонт.
#4 by SnarkHunter
Если поле USRSCNT в таблице 1SUSERS равно 0, то переиндексации не будет, иначе - будет.
#5 by Ёжик в тумане
+4 или же файла 1SUSERS вообще нет - переиндексации тоже не будет.
#6 by А что такое 1С
+4 +5 Должны присутствовать одноименные cdx-файлы для всех dbf-ок, кроме 1SUSERS.DBF и 1SSYSTEM.DBF
#7 by FarFar
Такссс. Иследование показало ,что в поле Usrscnt прибавляется единичка, когда юзверь заваливается в базу, и вычитается ,когда выходит "по правильному". Соответственно, если киллишь его принудитеольно, например через "Снять задачу", то единичка (если он там сидел один) остается. Это хорошо. Но значит, 1С еще умеет как то определять текущее число юзерей, сидящих в базе. И потом это число сравнивает с Usrscnt. Может знаете, как это КОЛИЧЕСТВО АКТИВНЫХ ПОЛЬЗОВАТЕЛЕЙ примерно так же узнать? (ясно, что можно вспомогат. файлики и т.п., но это на крайний случай, раз 1С может - значит это возможно). Вряд ли стоит завязываться на links.tmp из SYSLOG. И ради спорт. интереса : что за поле netchgcn  в той же 1users?
#8 by Ёжик в тумане
"...1С еще умеет как то определять текущее число юзерей, сидящих в базе. И потом это число сравнивает с Usrscnt..." - за каким фигом ей это делать?
#9 by FarFar
просто логический вывод. раз она хранит число "теоретических" сессий, значит должна и число "практических", ибо задача то такая же как у меня: выдать при вводе требование переиндексировать или пропустить.
#10 by FarFar
Кажется, генеральная линия выработана. Если поле > 0 тогда  удаление файла 1Cv7.LCK;  Если кол-во файлов 1Cv7.LCK > 0 тогда    значит в базе кто-то сидит, надо заходить без переиндексации;  Иначе    значит в базе никого не было, 1Cv7.LCK остался с прошлого сеанса, можно    смело удалять cdx-ы и запускать монопольно;
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям