Имя: Пароль:
1C
1C 7.7
v7: 1C 7.7: Ключи запуска
,
0 victuan1
 
20.01.18
08:36
Есть ключ запуска 1С 7.7 в разделенном (немонопольном режиме), который позволяет подавить предупреждение на необходимость переиндексации базы 1С.
Такое предупреждение появляется, если ранее был аварийный выход из 1С и при входе в 1С в ней не работает ни одного пользователя.
Если работает хотя бы один пользователь, то такое предупреждение не появляется, пока из базы не выйдут все.

Зачем нужен этот ключ. Запускается 1С по расписанию под пользователем Роботом, для выполнения регламентного задания ночью. У него выходит это предупреждение, всё останавливается, регламентное задание выполнится не может, база 1С блокируется и пользователи утром не могут в нее зайти ("Ошибка блокировки базы при открытии"). Приходится вручную убивать процесс 1С с роботом.

Данный ключ решил бы проблему.
Если ключа такого не придумали, то подскажите как по другому решить проблему.
1 Sserj
 
20.01.18
08:48
перед запуском робота удалить файлы cdx и запустить робота монопольно.
За одно и польза от избавления битых индексов.
2 Mikhail Volkov
 
20.01.18
08:52
(1)+
3 victuan1
 
20.01.18
11:04
В момент запуска Робота не всегда база свободна. Бывает, что пользователи в ней работают (регламентное задание робота им не мешает).
4 Mikhail Volkov
 
20.01.18
11:22
(3) Первым шагом делать проверку на отсутствие пользователей в базе.
5 Злопчинский
 
20.01.18
11:40
(3) сообщение по сети типа через 2 мин все сеансы 1с будут принудительно закрыты, киляешь 1ску, робот, потом сообщение что можно работать и норм
6 Kigo_Kigo
 
20.01.18
13:04
Килять всех пользователей, запускать монопольно.
Подавить запрос на переиндексацию можно патчем, по моему от саурона.
7 Смотрящий
 
20.01.18
15:32
(0) Держу на сервере, в собственной сесии запущенную 1С. Слетает только если сервак ребутнется - понять все взад 10-15 минут
8 Dolly_EV
 
24.01.18
09:30
9 Builder
 
24.01.18
10:08
Переход на SQL тоже решает эту проблему.
10 victuan1
 
29.01.18
07:37
(8) Вроде да:
[quote]Кажется, генеральная линия выработана.
Если поле > 0 тогда
удаление файла 1Cv7.LCK;
Если кол-во файлов 1Cv7.LCK > 0 тогда
   значит в базе кто-то сидит, надо заходить без переиндексации;
Иначе
   значит в базе никого не было, 1Cv7.LCK остался с прошлого сеанса, можно
   смело удалять cdx-ы и запускать монопольно;
  КонецЕсли;
КонецЕсли;[/quote]

А в виде кода кто-нибудь оформлял? Видимо, нужно писать скрипт не на 1С, чего не умею.
11 victuan1
 
29.01.18
08:25
.
12 Builder
 
29.01.18
09:35
(10) C таким же успехом можно сразу cdx грохать.
Если в базе кто то есть, они не удалятся.
По скриптам смотри примеры DOS команд, там все есть.
13 Смотрящий
 
29.01.18
10:10
(12) не cdx а 1Cv7.lck в каталоге базы - не удалился - значит есть кто то в ней
14 Builder
 
29.01.18
10:17
(13) Удалять lck надо для проверки возможности удалить cdx.
Попробуйте удалить сразу cdx. Такой же эффект.
Не удалятся - в базе кто то есть. Удалятся - запускайте монопольно.
15 ADirks
 
29.01.18
10:19
(10) на OneScript напиши :)
16 victuan1
 
01.02.18
13:17
(15) Кстати, проект 1с++ для 1С 7.7 еще жив?
Есть некоторые баги в "движке", хочется поправить.

Например, падает отладчик и 1С: предприятие, если при трассировке модуля ВМ в табло укажешь имя переменной, которой не существует в текущем контексте.

При отладке обычных модулей 1С в этих случаях падения не происходит, а просто пишется:
"Ошибка в выражении!"

Можно ли доработать ВМ, чтобы он выдавал такое же сообщение, а не валил 1С?
17 victuan1
 
01.02.18
14:18
Поправка: не ВМ, а класс 1с++, реализованный в обработке ert
18 victuan1
 
05.02.18
16:23
Если немного подождать, то в отладчике будет написано в табло напротив несуществующей переменной:

абырвалг = Нарушена синхронизация между 1С:Предприятием и Отладчиком.

Отладчик можно закрыть, а вот 1С Предприятие зависло и закрылось.
19 big
 
08.02.18
19:43
Не претендую на истину в последней инстанции, но в случае удаления cdx на периферийной базе (при использовании УРБД), при запуске требует зайти монопольно. То есть индексы файла 1cupdts.dbf не восстанавливаются в пакетном режиме. Была идея восстанавливать его отдельно, но как-то забили на это.
Закон Брукера: Даже маленькая практика стоит большой теории.