Имя: Пароль:
1C
1C 7.7
v7: как избежать переиндексации при аварийном снятии программы
,
0 patapum
 
03.04.13
11:47
Я так понимаю, что, когда 7.7 снимается аварийно, то если в системе в этот момент нет других пользователей, при следующем запуске придется переиндексировать, а если есть - то не придется. Нельзя ли как-нибудь по другому избежать переиндексации после аварийного снятия?
Ситуация следующая: в организации стоит 7.7, с подключенными внешними компонентами частного производства (документации нет, помощи ждать неоткуда). В частности, ВК (видимо) аварийно снимает сеанс при отсутствии активности в течение времени больше заданного. В будни все нормально, все активно работают, даже если и выкинет кого - все ок. А в выходные зайдет пользователь, забудет сеанс выключить - снялся аварийно, переиндексируйте базу. Либо всем права на монопольный вход давать (но не хочется), либо что-то придумать. Если открыть сеанс админа - не помогает, через часа 4 снимется аварийно, разве что еще запрогать мышку двигать.
Нет какого-нибудь гениального решения?
1 ДенисЧ
 
03.04.13
11:49
dbfку чистить...
2 patapum
 
03.04.13
11:50
(1) можно чуть подробнее? которую и где чистить?
3 Frost616
 
03.04.13
11:53
сделать батник, который будет запускать конфигуратор в пакетном режиме и индексировать базу не?
4 Мимошёл
 
03.04.13
11:55
При запуске отказаться от индексации.
5 patapum
 
03.04.13
11:56
(3) проблема в том, что я не знаю, когда кого выкинет и, соответственно, понадобится переиндексация. можно, конечно, раз в полчаса делать попытку входа в систему, если не вошлось, то переиндексацию, но хотелось чего-то проще.
6 patapum
 
03.04.13
11:57
(4) тогда приходится отказаться и от запуска...
7 Mikeware
 
03.04.13
12:00
(6) переходи на сиквельную :-)
(0) почему сеанс админа падает?
8 vde69
 
03.04.13
12:03
вообще-то переиндексация после аварийного случая бывает НУЖНА! иначе можешь на грабли налететь...

не хочешь переиндексацию - переходи на скуль
9 patapum
 
03.04.13
12:03
(7) переход на сиквельную сейчас нереален. внешние компоненты, скрипты, трогать не надо. готовим переход на 8.2, надо просто дожить
сеанс админа снимается (судя по всему) подключенной самодельной внешней компонентой.
10 patapum
 
03.04.13
12:05
(8) а что за грабли могут быть? вроде, если в течение дня все работают, кого-то сняли аварийно - зашел заново, все нормально.
как бы систему обмануть, чтоб она думала, что кто-то в базе есть - нет способа?
11 Frost616
 
03.04.13
12:05
можно по 1cusers.dbf смотреть нужна ли переиндексация
12 PiterPrg
 
03.04.13
12:07
(7) Скорее всего сеанс админа запускается на терминале, а в настройках терминала - таймаут на бездействие. (что  по-хорошеум выключитьне помешает)
13 PiterPrg
 
03.04.13
12:08
(8) Полностью поддерживаю! Когда индесы по-настоящему летят - очень весело становится.
14 patapum
 
03.04.13
12:09
(12) нет, сеанс работает, конфигуратор 7.7 живет, 8-ка живет, а пользовательская сессия 7.7 убивается
15 Mikeware
 
03.04.13
12:09
(12)так и я о том же...
Судя по всему, дело в банальном соотношении радиусов, а не в таинственных компонентах...
16 patapum
 
03.04.13
12:09
(13) чего будет-то? про что смеяться?
17 Builder
 
03.04.13
12:17
Перевести базу на SQL, там это реализовано.
18 dmpl
 
03.04.13
12:19
(0) Дизассемблировать компоненту, посмотреть вызов завершения процесса - и за NOP'ить.
19 patapum
 
03.04.13
12:20
(17) не будем, писал выше
(18) до этого еще не дорос я...
20 palpetrovich
 
03.04.13
12:21
(0) Если на SQL переходить не планируете, смотри в сторну V7DBNet. Для небольшого количества пользователей (не помню сколько) - решение бесплатное...
21 Aleksey
 
03.04.13
12:21
(10) несталкивался когда индексы слетают?
22 Aleksey
 
03.04.13
12:22
(19) была на просторах инета патчилка, которая в том числе и убирала запросы всякие
23 patapum
 
03.04.13
12:22
(10) нет. расскажите, чего ждать, а то пугаете как бабой-ягой...
24 palpetrovich
 
03.04.13
12:22
25 patapum
 
03.04.13
12:23
(22) боюсь, по такому описанию патчилку я на просторах нета не найду...
26 aka AMIGO
 
03.04.13
12:24
рабочий день - долгий.. утром первый юзер, запустивший 1с, получает отлуп и звонит ТС, как администратору БД.. если он пришел на работу.

далее Администратор1С запускает в монопольном режиме и ждет вместе с юзерами 45 секунд.
после чего работа начинается.

Короче На всё-про-всё в общей сложности, 1.5 - 2 минуты. Не стОит овчинка выделки
27 Aleksey
 
03.04.13
12:25
28 patapum
 
03.04.13
12:26
(20), (24) спасибо, но надо просто дожить до перехода на 8.2 (пару месяцев). в базе работает одновременно до 100 юзеров, думаю, какой-то разгон производился (детали неизвестны), как будет то, что сделано, с дбнетом взаимодействовать - боюсь представить...
29 patapum
 
03.04.13
12:31
(26) понимаю, тему читать лень. речь идет про выходные. переиндексирование занимает 35 минут.
(25) то есть надо 1cusers.dbf удалить просто? а что будет, если я его попробую удалить, когда в базе кто-то сидеть будет, опа придет? я жеж, повторю, не знаю, когда кто сеанс забудет и срубится он аварийно
30 dmpl
 
03.04.13
13:23
(26) 45 секунд? А 45 минут не хочешь?
31 dmpl
 
03.04.13
13:27
(29) Есть время, когда в БД никого нет? Например, в 4-5 утра? Тогда можно запускать переиндексацию в это время, должно снять остроту проблемы... правда что-то придется сделать с автоматическим ответом на вопрос.
32 Builder
 
03.04.13
13:29
(31) Вопрос о переиндексации убирается предварительным удалением всех CDX.
33 Злопчинский
 
03.04.13
13:37
(30) значится или есть незакрытые регистры, скорее всего...
34 patapum
 
03.04.13
13:53
а как можно батником проверить, есть ли активные пользователи в 1с? то есть, смотреть, если пользователей нет, а 1susers.dbf есть, то грохать его?
35 vde69
 
03.04.13
14:03
(23) реально механизм такой

при аварийном закритии есть шанс что индексы на редактируемый обьект не расчитан (обычно это последний документ).

соответсвенно все запросы с использованием индексов тупо не видят этого объекта, в результате проводки есть а в таблице итогов документ отражения не имеет.
36 patapum
 
03.04.13
14:08
(35) ясно, а когда в базе тьма пользователей сидит, то же самое происходит, когда одного выкидывает? то есть база может стать "чуть-чуть неактуальной"?
37 aka MIK
 
03.04.13
14:09
(0) del 1susers.dbf перед стартом 1С
38 patapum
 
03.04.13
14:13
(37) ага, уже нашел этот файлик, спасибо. только придется пытаться раз в какое-то время его удалить - если пользователей нет, он не дастся просто. я думаю, это проще, чем пытаться на все пользовательские ярлыки 1с-ки навешивать + del 1susers.dbf...
39 vde69
 
03.04.13
14:13
(36) может и бывает, по этому хотя-бы раз в день стоит переин7дексацию делать
40 patapum
 
03.04.13
14:16
(39) так делаем, ага. спасибо за помощь и тебе, и всем, кто откликнулся!
41 Mikeware
 
03.04.13
14:30
вот толку _таким_ "переходить на 8.2"?
42 patapum
 
03.04.13
14:36
(41) а что на 8.2 можно переходить только волшебникам, питающимся радугой и какающим бабочками? давай всех прогов 1с, кроме таких гениев, как ты, уволим, и фигня, что 90% организаций останутся без обслуживания. и кстати, можно конкретней насчет _таким_?
43 mad hatter
 
03.04.13
18:45
(42) "Изделие Михаил"))) имел ввиду, что как же Вы, уважаемый, будете биться-колотиться с 8.2, если банальный вопрос с 7.7, который решается 33-я способами, решить не можете?..))
44 rand48957
 
03.04.13
23:44
(33) ни разу с большими базами не работал ? )))
45 NikVars
 
04.04.13
00:01
(0) "А в выходные зайдет пользователь, забудет сеанс выключить"... Это лечится административным ресурсом. Проводи работу с такими пользователями, а кривые ВК у тебя уже есть + тебе хочется битых индексов для разнообразия в жизни?!
Индексируйся обязательно!!!
Проводи работу с пользователями. Тыкай на провинившихся при срочной потребности в базе, когда она нужна.
46 Torquader
 
04.04.13
00:39
(35) Будто бы при упавшей транзакции такого не происходит, при этом, правда, сеанс не всегда вылетает, а вот индексы становятся неактуальными.

P.S. если компонента "следит" за работой пользователя, то повесьте скрипт, который будет имитировать нажатие какой-то комбинации клавиш, если некоторое время нет событий мыши или клавиатуры, а в меню 1С сделайте на эту "магическую" комбинацию вызов процедуры глобального модуля, которая ничего не делает.
P.P.S. можно ещё через обработку ожидания попробовать или автообновление формы - но имитация работы пользователя будет.
47 Злопчинский
 
04.04.13
03:29
(44) с большими - нет. но вряд ли у ТС реально большая база.
48 Escander
 
04.04.13
03:45
(0) ТС, ты уверен что тебе это реально надо? Может правильнее устранить причину по которой сеансы отваливаются(анпример проблеммы с сетью)? Даже если ты зайдёшь по нормальной схеем непохо-бы произвести перерасчёт рагистров (помимо переиндексации).
49 Escander
 
04.04.13
03:49
но если очень нужно - достаточно смахнуть 1cusers.dbf - для файловой базы
50 ЧеловекДуши
 
04.04.13
05:05
(5) Зачем О_о ? Нужно батник запускать ночью, каждый божий день. Или переходить на SQL :)
51 ЧеловекДуши
 
04.04.13
05:06
(48) Да бывают пользователи аварийно закрываются :)
52 Escander
 
04.04.13
05:59
(51) у меня такое было только пока сеть глючила жёстко, поставил терминальный сервер - бонусом юзера получили выросшее быстродействие.
53 ЧеловекДуши
 
04.04.13
05:59
(52) А у нас постоянно, в терминале... После батник по ночам решил проблему утренней мемо паузы у бухов :)
54 ЧеловекДуши
 
04.04.13
06:00
+(52) Так что у вас еще все впереди :)
55 ADirks
 
04.04.13
06:27
(41) Нифига ты не понимаешь. Там это уже реализовано!
56 alkov
 
04.04.13
06:48
(6) ЩИТО? Если на вопрос о переиндексации ответить "Нет" - запустится без переиндексации
57 vladko
 
04.04.13
09:56
Удалить 1susers.dbf не достаточно. Глюки будут на непереиндексированной базе. Достаточно зайти в любой из журналов документом и побегать по нему в базе, где не сделана переиндексация. Сразу видны эти глюки.

Так что надо удалить 1susers.dbf и *.cdx перед запуском, тогда база автоматически переиндексируется без всяких вопросов.