Автоотключение пользователей 8.3 УФ

31.08.17

База данных - Инструменты администратора БД

Обработка, отключающая все клиент-серверные соединения (в т.ч. к web-серверу) к серверу 1С: Предприятие. Работает в т.ч. на последней платформе 8.3.10.2561 , предназначена для управляемых приложений. Пример использования - автоматический ее запуск для снятия резервных копий по расписанию.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Автоотключение пользователей 8.3 УФ:
.epf 7,52Kb ver:3
13 3 000 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Если с "Обычными формами" все несколько проще, и существует более одного решения по отключению пользователей, то с управляемыми, и на последних платформах 8.3 возникают различные проблемы.
Во-первых, добавляются веб-подключения.
Во-вторых, 8.3 сама решает, сколько Рабочих Процессов создать (не всегда можно знать заранее их количество).
В-третьих, в обработке предусмотрена ситуация, когда подключение сущестовало на момент запуска обработки, но уже отключилось (завершилось) на момент попытки его отключения.

Информация об этом запишется в лог-файл.

Запускать можно с любого ПК сети, откуда администрируется сервер. То есть это может быть как Windows-cервер, так и сервер с ОС Linux, просто в последнем случае соединения "рубятся" (и обработка запускается) с ПК из сети, а не с самого сервера.

Всегда существует возможность и создать регламентное задание, внеся " отключение пользователей " в конфигурацию, но я не преверженец этого метода.

По задумке, обработка используется в связке с Effector Saver, даже бесплатная версия которой весьма успешно снимает резервные копии с SQL в DT, и умеет хранить указанное количество копий (например, 30 штук). Разумеется, пользователь может снимать резервные копии любым иным способом (но нужна обработка для выгрузки именно в DT; SQL-копиям без разницы, но у них есть другие ограничения).

---

Запуск обработки предполагается скриптом подобного содержания, где
/nBackuper /p123 - запуск от имени пользователя Backuper с паролем 123,
/s127.0.0.1\uf2016 - обращение к локальному адресу, базе uf2016,
/execute E:\scripts\UserKill_v3.epf - запуск обработки UserKill_v3.epf , расположенной по указанному адресу.

echo запуск new_stop_Buh %Time% %Date% >> E:\scripts\log.txt
"C:\Program Files (x86)\1cv8\common\1cestart.exe" ENTERPRISE /s127.0.0.1\uf2016 /nBackuper /p123 /wa- /DisableStartupMessages /RunModeManagedApplication /execute E:\scripts\UserKill_v3.epf

---

Текст обработки по отключению пользователей.
Опять же, не забудьте сменить текст в строке РабПроц.AddAuthentication("Backuper", "123");
В принципе, можно получать логин и пароль из констант в конфигурации - вовсе не обязательно вписывать их в код.


&НаКлиенте
Процедура ПриОткрытии(Отказ)
	текстош="";
	текстош=ПриОткрытииНаСервере();
	если текстош <> "" тогда
		ФайлРегистрации = Новый ЗаписьТекста("E:\scripts\LogFile1c.txt", КодировкаТекста.ANSI, , Истина);
		ФайлРегистрации.Записать(строка(текстош)+Символы.ПС);
		ФайлРегистрации.Закрыть();
	конецесли;	
	ЗавершитьРаботуСистемы(Ложь);

КонецПроцедуры


&НаСервере
функция ПриОткрытииНаСервере()
	текстош="";
	
	Если Найти(СтрокаСоединенияИнформационнойБазы(), "Srvr") > 0 Тогда
		// серверный вариант
		Поиск1 = Найти(СтрокаСоединенияИнформационнойБазы(), "Srvr=");
		ПодстрокаПоиска = Сред(СтрокаСоединенияИнформационнойБазы(), Поиск1 + 6);
		ИмяСервера = Лев(ПодстрокаПоиска, Найти(ПодстрокаПоиска, """") - 1);
		// теперь ищем имя базы
		Поиск1 = Найти(СтрокаСоединенияИнформационнойБазы(), "Ref=");
		ПодстрокаПоиска = Сред(СтрокаСоединенияИнформационнойБазы(), Поиск1 + 5);
		ИмяБазы = Лев(ПодстрокаПоиска, Найти(ПодстрокаПоиска, """") - 1);
	Иначе
		// для других способов подключения алгоритм не актуален
		текстош=" Способ не актуален";
		Возврат текстош;
	КонецЕсли;
	
	Коннектор = Новый COMОбъект("v83.COMConnector");
	Агент = Коннектор.ConnectAgent(ИмяСервера);
	Кластеры = Агент.GetClusters();
	Для каждого Кластер из Кластеры Цикл
		АдминистраторКластера = "Имя администратора кластера";
		ПарольКластера = "Пароль администратора кластера";
		//Агент.Authenticate(Кластер, АдминистраторКластера, ПарольКластера);
		Агент.Authenticate(Кластер,,);
		Процессы = Агент.GetWorkingProcesses(Кластер);
		Для каждого Процесс из Процессы Цикл
			Порт = Процесс.MainPort;
			// теперь есть адрес и порт для подключения к рабочему процессу
			попытка
				РабПроц = Коннектор.ConnectWorkingProcess(ИмяСервера + ":" + СтрЗаменить(Порт, Символы.НПП, ""));
				РабПроц.AddAuthentication("Backuper", "123");
				
				ИнформационнаяБаза = "";
				
				Базы = Агент.GetInfoBases(Кластер);
				Для каждого База из Базы Цикл
					Если База.Name = ИмяБазы Тогда
						ИнформационнаяБаза = База;
						Прервать;
					КонецЕсли;
				КонецЦикла;
				Если ИнформационнаяБаза = "" Тогда
					// база не найдена
				КонецЕсли;
				
				Сеансы = Агент.GetInfoBaseSessions(Кластер, ИнформационнаяБаза);
				Для каждого Сеанс из Сеансы Цикл
					
					Если нРег(Сеанс.AppID) = "backgroundjob" ИЛИ нРег(Сеанс.AppID) = "comconsole" Тогда
						// если это сеансы com-приложения или фонового задания, то не отключаем
						Продолжить;
					КонецЕсли;
					Если Сеанс.UserName = ИмяПользователя() Тогда
						// это текущий пользователь
						Продолжить;
					КонецЕсли;
					Агент.TerminateSession(Кластер, Сеанс);
					Сообщить("Отключен сеанс "+строка(Сеанс.UserName));
				КонецЦикла;
				
				ИнформационнаяБаза2 = РабПроц.CreateInfoBaseInfo();
				ИнформационнаяБаза2.Name = ИмяБазы;
				СоединенияБазы = РабПроц.GetInfoBaseConnections(ИнформационнаяБаза2);
				// Разорвать соединения клиентских приложений.
				Для Каждого Соединение Из СоединенияБазы Цикл
					Если нРег(Соединение.AppID) = "backgroundjob" ИЛИ нРег(Соединение.AppID) = "comconsole" Тогда
						Продолжить;
					КонецЕсли;
					Если Соединение.UserName = ИмяПользователя() Тогда
						// это текущий пользователь
						Продолжить;
					КонецЕсли;
					РабПроц.Disconnect(Соединение);
				КонецЦикла;
			Исключение
				текстош=текстош+" Ошибка при откл пользователей userkill " + строка(ИмяБазы)+ " "+строка(ТекущаяДата());
			конецпопытки;
		КонецЦикла;
	КонецЦикла;
	Сообщить("Завершается работа...");
	Возврат текстош;

КонецФункции

!!! Разумеется, при первом запуске внешней обработки в последних релизах платформы - ее исполнение нужно "разрешить", так что, перед тем, как пустить в свободное плавание - пару раз протестируйте.

Вступайте в нашу телеграмм-группу Инфостарт

обработка архивирование отключение пользователей

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    68259    357    164    

313

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    25284    93    46    

102

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

24400 руб.

06.12.2023    22722    80    10    

113

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    50177    136    162    

92

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    1671    2    0    

20

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    45958    31    13    

49

Чистка данных Инструменты администратора БД Администрирование 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Решение представляет собой набор из 6 обработок для 1С по удалению организаций и справочников из базы по фильтрам, документов по фильтрам, универсальное сжатие данных, очистка битых движений регистратора, удаление устаревших регистров сведений, удаление устаревших документов "Электронное письмо входящее" и "Электронное письмо исходящее"

23999 руб.

20.02.2026    1254    1    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Gilev.Vyacheslav 1922 31.08.17 12:45 Сейчас в теме
dt не является средством резервного копирования о чем прямо сказано в документации 1С
alex-l19041; olegmedvedev; +2 Ответить
2. OlegAr 28 31.08.17 14:16 Сейчас в теме
раз Вячеслав сказал, значит так и есть, не спорим ..
3. rar_xxx 23 31.08.17 23:27 Сейчас в теме
только ms sql бекап забудте о dt причины: 1- mssql бекап в разы быстрее снимается и разворачивается потому что таблицы просто копируются для скорости полезно архивировать, для надежности не архивируйте. 2- при росте базы вы прийдете к тому что не сможете выгрузить в dt ;) хорошо если вовремя узнаете что бекап перестал сниматься 3. из dt вы можете в критический ден просто не восстановить базу. 4. очень интересно еслы вы бекап снимаете я так понимаю только ночью в течении дня бекапов у вас нет. надежда только на железо? Как насчет регулярного бекапа журнала транзакций например каждые 20мин или каждый час?
4. erutan 108 31.08.17 23:51 Сейчас в теме
(3) надежда на железо в плане аппаратного рейда.
С копией SQL комбинирую, но все равно раз в день.
Довольно часто приходится загрузить копию (в смысле sql > dt > файловая) гл.бухгалтеру, бухгалтеру или мне самому.

Нет, бэкапа транзакций не настраивал. Я так понимаю, это должно прикатить к восстановление SQL-копии + восстановление к моменту времени сохраненных транзакций?

Благодарю за комментарии.
5. rar_xxx 23 01.09.17 00:04 Сейчас в теме
Обязательно настройте бекап транзакционного журнала, на сторонний носитель, например раз в 1час или чаще. Таким образом если у вас есть ночной полны sql бекап и в середине дня железо накрывается или вы рушите базу. У вас будет возможность восстановится на любой момент времени, до секунды или конкретной транзакции из забекапленных журналов. Плюс если у вас стоит полная модель восстановления а вы не бекапите журнал, он будет постоянно расти. Так же с помощью журнальных бекапов вам можно отказаться от ежедневных бекапов, которые много весят, но тогда важно отстроить четкий рабочий бекап журналов, это опасная схема и рекомендуется только если у вас нет места на ежедневный бекап. Да и про рейд у нас один раз в схд вылетела вся полка не спас и 10 рейд, винты лучше брать разных серий ;) но для дорогих схд вам придется брать то что дает вендор(
Для отправки сообщения требуется регистрация/авторизация