Ключ ЗавершитьРаботуПользователей

1. BigTaur 95 03.04.24 10:16 Сейчас в теме
Приветствую. Понимаю, что 1С и логика вещи далекие друг от друга. Но может это я туплю.
Задача - резервное копирование 1С средствами самой 1С.
Чтобы выгрузить *.dt из 1С она должна быть в монопольном режиме - без пользователей.
В ключах запуска командной строки по мимо прочих есть ключи /CЗавершитьРаботуПользователей.
И он действительно завершает. НО! При этом запускает сессию администратора, которую не завершает и далее не дает сделать выгрузку, потому, что в базе "работает" администратор. И выгрузка не проходит.
Понятно, что можно писать отдельное отключение пользователей в конфе (фу-фу-фу для типовых), можно пробовать скрипты с com-соединением, можно попытаться "убить" этот единственный процесс администратора (но тоже беда он может быть совсем не один, а для разных баз). Но неужели нельзя штатными средствами отключить ВСЕХ пользователей, заблокировать вход (это делает), сделать выгрузку (возможность есть) и разрешить работу (это тоже делает по ключу /CРазрешитьРаботуПользователей). Затык именно в том, что при отключении пользователей заходит под админом и база не монопольна. Пробовал без Enterprise запускает только окно выбора баз.
Наставьте на пусть истинный в этом вопросе, а то и так весна. Ж:))
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 03.04.24 13:22 Сейчас в теме
(1) Backup нужно делать средствами SQL. 1C заявляет, что dt не является форматом резервной копии.
5. BigTaur 95 03.04.24 14:45 Сейчас в теме
(2) Бесспорно, тут чисто скорее спортивный интерес. Почему 1Совцы не предусмотрели нормальный вариант? Ну думаю может он и есть, да я его найти не могу.
К слову когда 1С ставит обновления по расписанию, то формирует скрипты для com-соединения, через которое и отключает пользователей. Неужели нельзя проще??? - Вопрос риторический.
9. Xershi 1506 03.04.24 19:22 Сейчас в теме
(5) я всегда использую бекап средствами СУБД есть скрипт на мсскуле и постгри. И все проблема решена!
А так расписание в СУБД должно быть, админы настраивают и тоже вопрос решен.
А ДТ может не сделаться, и может быть битым. Когда нужно будет восстановить уже будет поздно!
3. Vadim-SH 03.04.24 13:58 Сейчас в теме
(1) Тоже изредка появляется такая проблема.

По моему дело в процедуре СоединенияИБКлиент.ЗавершитьРаботуПользователей()
она делает попытку вызова процедуры СоединенияИБКлиентСервер.УдалитьВсеСеансыКромеТекущего(ПараметрыАдминистрирования)
Если происходит исключение то делается Возврат без вызова процедуры ЗавершитьРаботуЭтогоСеанса()


Решил пока проблему так:
Добавил процедуру в расширение с модификатором &После


&После("ЗавершитьРаботуПользователей")
Процедура ЗавершитьРаботуПользователей(ТекущийРежим)
	Если ПараметрыКлиента().ПроцедураЗавершитьРаботуПользователейУжеВыполняется=Ложь Тогда
		ЗавершитьРаботуЭтогоСеанса();
	КонецЕсли;
КонецПроцедуры


Показать
6. BigTaur 95 03.04.24 14:50 Сейчас в теме
(3)А вот это интересно, надо копнуть в эту сторону, но думаю для любых баз не подойдет.

Я приделал костыль попроще и по деревянее. Запустил в командной строке через /Execute внешнюю обработку которая ПриОткрытии закрывает базу. Ключ /CЗавершитьРаботуПользователей при этом отрабатывает. А текущий сеанс соответственно сразу закрывается. Но тоже такое себе решение.
7. Vadim-SH 03.04.24 15:07 Сейчас в теме
(6) Есть еще прога C:\Program Files\1cv8\8.3.хххххх\bin\ras.exe
можно написать файл.cmd, но это сложнее.
В БСП есть модуль АдминистрированиеКластераRAS он работает с ras.exe
4. Sashares 35 03.04.24 14:21 Сейчас в теме
(1)Для файловых баз резервное копирование - это копия файла 1CD. Ну так к слову.
Есть специальные программы для этого, например, Effector saver.
https://mixbackup.com/
8. Online-Ufa 03.04.24 16:44 Сейчас в теме
+1 dt - это не бекап.
Архивные копии лучше делать по другому
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот