powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Завершени сеансов пользователей
19 сообщений из 19, страница 1 из 1
Завершени сеансов пользователей
    #36181381
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите пожалуйста разобраться в одном маленьком вопросике.
Есть база 1С 8.1 на SQL, создан батник для создания резервных копий, но к сожалению он работает только когда завершены все сеансы работы с базой, по-этому возникла задача - как принудительно завершить сеансы всех пользователей данной БД. Я создал задание, которе выполняет следующие команды:
ALTER DATABASE имяБД
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
пользователи отрубаются, но сеансы работы платформы 1С НЕТ, они отрубаются только после нажатия пользователем на сообщении кнопки "Завершение работы".
Как мне сделать так чтобы при выполнении задания отключалась 1С отключалась без вмешательства пользователя?
Зарание спасибо.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36181410
Шурыгин Иван Сергеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tssAdmin,

насколько я помню, сама 1с создала 1с:сервер как раз для управления, там есть возможность настроить чтоб сервер отрубал всех пользователей (блокировал базу), в определенное время,
была просто необходимость раньше работать в конфигураторе живой базы, и надо было переодически всех выкидывать дабы обновить базу... попробуйте покапаться в самом 1с:сервере

п.с. сейчас нет под рукой скуля чтоб проверить то что предлагаю сделать
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36181694
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tssAdmin,

Выбросьте свой батник в помойку. Настройте для бэкапа жоб с расписанием в SQL Server. И всё, не надо никого выгонять
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36181903
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL-копии, это не вариант. Из личного опыта: быкапилась SQL-ка в оджной конторе, все хорошо ни одной ошибки не выдавала, потом накрылась база, хотели востановить, а там болт, "не сходится контрольная сумма", востановили только базу с 3 месяцами потери данных, и ни один спец не ответил нам на этот вопрос, от чего она не востанавливалась из SQL-ной копии. Второй вариант: накрылась SQL, все работа встала!!!SQL-копии не годны, а из ДТ-шника я востановлю файловый вариант. И вообще бекапы 1C средствами SQL не рекамендуются))
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36181982
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tssAdmin И вообще бекапы 1C средствами SQL не рекамендуются))

Это не так. Наоборот, настоятельно рекомендуются 1с, особенно для больших баз. Причем вероятность сбоя при попытке восстановления из .dt значительно выше (о причинах пока распространяться не стану, но в практике случалось неоднократно).

По существу вопроса. Нужно написать регламентное задание 1С, используя методы раздела Администрирование кластера серверов
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182036
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СисойПо существу вопроса. Нужно написать регламентное задание 1С, используя методы раздела Администрирование кластера серверов
Да. Разобрался с этим вариантом все работает, всех выкидывает, но база полностью блокируется, и бекап сделать не получается.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182076
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может у кого есть свои варианты , как делать автоматом бекапы баз 1С?
Буду презнателен если поделитесь)))
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182163
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tssAdminSQL-копии, это не вариант. Из личного опыта: быкапилась SQL-ка в оджной конторе, все хорошо ни одной ошибки не выдавала, потом накрылась база, хотели востановить, а там болт, "не сходится контрольная сумма", востановили только базу с 3 месяцами потери данных, и ни один спец не ответил нам на этот вопрос, от чего она не востанавливалась из SQL-ной копии. Второй вариант: накрылась SQL, все работа встала!!!SQL-копии не годны, а из ДТ-шника я востановлю файловый вариант. И вообще бекапы 1C средствами SQL не рекамендуются))

Вы совершенно не правы. Если у Вас база крутится в клиент-серверном варианте, то единственный разумный вариант - это бэкапы ср-ми SQL Server'a. Читайте документацию 1С. dt-выгрузки 1С делать категорически не рекомендует из-за того, что при наличии в базе некоторых логических ошибок они попросту теряются при упаковке в .dt, что грозит непредсказуемыми последствиями в дальнейшем, т.к. в этом случае исправить их в базе уже будет невозможно, в отличие от варианта со стандартным бэкапом ср-ми SQL server.
А чтобы не пришлось столкнуться с ошибками при распаковке из SQL-бэкапа, возмите себе за правило периодически проверять работоспособность бэкапов. Но повторяю Вам ещё раз, это совершенно надежный вариант, который безопасен и для "горячей" базы. Я не знаю про ваш личный опыт, могу сказать, что у меня опыт работы с 1С свыше 10 лет. За это время многократно приходилось разворачивать базы с SQL-бэкапа и ни разу с этим не возникало никаких проблем.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182211
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
От dt-шников нельзя отказываться, если накроется SQL, то работа встанет. Спорить по поводу лучшего способа создания бекапов смысла нет, т.к. надо делать и SQL-бекап, и выгружать .dt-шник,дабы избежать беды. Как настроить автоматом бекап SQL у меня получилось, и настроить авто-бекап в .dt-шник тоже получилось, но бывают случаи(частые), когда работники поздно уходят дамой и не завершают работу программы и бекап не делается.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182242
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем проблема то... пишешь vbs, в нем ломишься как сайгак по кластеру и срубаешь все коннекты
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182248
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пользователю будет мессага - "принудительно разорвал соединение, целую". Зайдет утром по-новой... чтоб ыне обламать кого-то работающего - можно щупать объем данных по коннекту за последние 5 мин. Трафика нет - на выход
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182257
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tssAdmin,

В типовых конфах (за все не поручусь, в Бухгалтерии точно есть) есть обработка БлокировкаСоединенийСИнформационнойБазой.
Посмотрите как она работает, сделайте регламентное задание в 1С и вызывайте её, когда Вам нужно делать выгрузки
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182282
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nicktchertssAdmin,

В типовых конфах (за все не поручусь, в Бухгалтерии точно есть) есть обработка БлокировкаСоединенийСИнформационнойБазой.
Посмотрите как она работает, сделайте регламентное задание в 1С и вызывайте её, когда Вам нужно делать выгрузки
Есть такая штука, но она предусматривает ручную работу
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182290
tssAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господин ПЖв чем проблема то... пишешь vbs, в нем ломишься как сайгак по кластеру и срубаешь все коннекты
Вариант хороший. Скинь пример пожалуйста, если есть, а то я не пойму как ломиться по кластеру, если скриптом отрубать все конекты SQL, то можно отрубить лишнее, а это не желательно
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182402
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там не коннекты SQL а коннекты с серверу предприятия рубятся, можно по приложению проверить, что рубить что нет, где-то на мисте был пример.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36182464
nicktcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tssAdmin

Есть такая штука, но она предусматривает ручную работу

Да что ж такое, всё разжевывать надо, как в детском саду((
Я же говорю, сделать регламентное задание, в нем прописать вызов нужного механизма. Вот его основная часть.

Процедура ЗавершитьРаботуПользователей() Экспорт

Соединения = ПолучитьСоединенияИнформационнойБазы();

Если Соединения.Количество() = 1 Тогда
// Отключены все пользователи, кроме текущего сеанса
// В последнюю очередь завершается сеанс, запущенный с параметром "ЗавершитьРаботуПользователей".
// Такой порядок отключений необходим для обновления конфигурации с помощью пакетного файла

ЗавершитьРаботуСистемы(Ложь);

Возврат;
КонецЕсли;

// Получим текущее значение параметров блокировки
ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений();
БлокировкаУстановлена = ТекущийРежим.Установлена;
ВремяНачалаБлокировки = ТекущийРежим.Начало;
ИнтервалОтключения = - УправлениеСоединениямиИБ.ИнтервалОжиданияЗавершенияРаботыПользователей();
ТекущийМомент = ТекущаяДата();

Если БлокировкаУстановлена И
(НЕ ЗначениеЗаполнено(ВремяНачалаБлокировки)
ИЛИ ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалОтключения) Тогда

// после начала блокировки сеансы всех пользователей должны быть отключены
// если этого не произошло пробуем принудительно прервать соединения
ОтключитьОбработчикОжидания("ЗавершитьРаботуПользователей");

// Невозможно принудительно отсоединить подключения в файловом режиме работы
Если ОпределитьЭтаИнформационнаяБазаФайловая() Тогда
УправлениеСоединениямиИБ.РазрешитьРаботуПользователей();
Сообщение = УправлениеСоединениямиИБ.ПолучитьНазванияСоединенийИБ("Не удалось завершить работу пользователей:");
ЗаписьЖурналаРегистрации("Завершение работы пользователей", УровеньЖурналаРегистрации.Предупреждение, , , Сообщение);
ЗавершитьРаботуСистемы(Ложь);
Возврат;
КонецЕсли;

ПараметрыАдминистрированияИБ = УправлениеСоединениямиИБ.ПолучитьПараметрыАдминистрированияИБ();
ПараметрыЗапуска = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ПараметрЗапуска,";");
Если ПараметрыЗапуска.Количество() > 1 Тогда
ПараметрыАдминистрированияИБ.ИмяАдминистратораИБ = Врег(ПараметрыЗапуска[1]);
КонецЕсли;
Если ПараметрыЗапуска.Количество() > 2 Тогда
ПараметрыАдминистрированияИБ.ПарольАдминистратораИБ = Врег(ПараметрыЗапуска[2]);
КонецЕсли;

Результат = УправлениеСоединениямиИБ.ОтключитьСоединенияИБ(ПараметрыАдминистрированияИБ);
Если Результат Тогда
Сообщить("Завершение работы пользователей выполнено успешно.", СтатусСообщения.Информация);
ЗавершитьРаботуСистемы(Ложь);
Иначе
Сообщение = УправлениеСоединениямиИБ.ПолучитьНазванияСоединенийИБ("Не удалось завершить работу пользователей:");
Сообщить(Сообщение, СтатусСообщения.Внимание);
ЗаписьЖурналаРегистрации("Завершение работы пользователей", УровеньЖурналаРегистрации.Предупреждение, , , Сообщение);
КонецЕсли;

КонецЕсли;

КонецПроцедуры
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36188476
VenQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Процедура ПриНачалеРаботыСистемы()
...
ЗавершениеРаботыПользователей();
ПодключитьОбработчикОжидания("ЗавершениеРаботыПользователей",10);
...
// РегистрСведений АктивныеПользователи
МенеджерЗаписи=РегистрыСведений.АктивныеПользователи.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Пользователь=ПараметрыСеанса.Пользователь;
МенеджерЗаписи.Компьютер=ИмяКомпьютера();
МенеджерЗаписи.ВремяВхода=ТекущаяДата();
МенеджерЗаписи.Время=60;
МенеджерЗаписи.Записать();
КонецПроцедуры // ПриНачалеРаботыСистемы()

Процедура ЗавершениеРаботыПользователей()Экспорт
Если ПараметрыСеанса.Пользователь=Справочники.Пользователи.Администратор Тогда
Возврат;
КонецЕсли;
Если Час(ТекущаяДата())<Час(Константы.НачалоРаботы.Получить()) ИЛИ Час(ТекущаяДата())>Час(Константы.КонецРаботы.Получить()) Тогда
МенеджерЗаписи=РегистрыСведений.АктивныеПользователи.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Пользователь=ПараметрыСеанса.Пользователь;
МенеджерЗаписи.Компьютер=ИмяКомпьютера();
МенеджерЗаписи.Прочитать();
Тики=МенеджерЗаписи.Время-10;
Предупреждение("Система прекратит функционирование через "+МенеджерЗаписи.Время+" секунд",2,"Предупреждение");
Если Тики<0 Тогда
Предупреждение("В систме 1С проводятся профилактические работы",2,"Forbidden");
ПрекратитьРаботуСистемы();
Иначе
МенеджерЗаписи.Время=Тики;
МенеджерЗаписи.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры

В константах прописано разрешенное время работы пользователей.
При запуске системы проверяется текущее время и разпешенный интервал
Обработчик ожидания каждые 10 секунд проверяет не надо ли выгонять пользователя.
Если время вышло то каждые 10 секунд ему вываливается на экран предупреждение что скоро система завершит работу.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36193021
detec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё можно скриптом задать рестарт сервера 1С Предприятие - тогда коннекты надёжно отваливаются. У нас так настроен ежедневный ночной бэкап, а потом сразу же восстановление dt-файла на тестовый сервер.

Ещё вроде есть и Postgres-ные бэкапы, но в деталях я не в курсе, что и как.
...
Рейтинг: 0 / 0
Завершени сеансов пользователей
    #36195791
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде есть в "простые примеры разработки" у Радченко
нужно просто читать
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Завершени сеансов пользователей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]