Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/69: Рейтинг темы: голосов - 69, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 30.10.2009
Сообщений: 21

Как в принудительном режиме "жестко" выбросить всех пользователей из 1С?

06.11.2009, 03:00. Показов 14509. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как в принудительном режиме "жостко" выбросить всех пользователей из 1С?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2009, 03:00
Ответы с готовыми решениями:

Как в принудительном режиме выбросить всех пользователей из 1С?
как в принудительном режиме "жостко" выбросить всех пользователей из 1С?

Debian: Примонтировать 2 жестких диска для всех пользователей в режиме RW
Не получается примонтировать 2 жестких диска в fstab внес их вроде бы с RW, но на деле открываются они только для чтения /dev/sda1 ...

Яндекс сегодня всех жестко индексирует?
Вот сейчас увидел, заходит каждые 10 минут стабильно, меня это настораживает: User-Agent Yandex/1.01.001 (compatible; Win16; I) ...

3
14 / 14 / 0
Регистрация: 26.10.2009
Сообщений: 124
10.11.2009, 22:25
сейчас поищу...

Добавлено через 31 минуту
Если еще актуально пиши...
0
14 / 14 / 0
Регистрация: 26.10.2009
Сообщений: 124
12.11.2009, 21:09
В языке предесмотрена замечательная процедура "ОбработкаОжидания(<ИмяПроцедуры>,<Интер валВызова>)" вот с её помощью и будем их автоматически завершать.
Все изменения проводим в глобальном модуле

1. Сначала добавим новую константу "ЗавершитьРаботуПользователей" - тип её пусть будет пречислением "ДаНет" (это перечисление присутсвует практически во всех конфигурациях) если же его по каким-то причинам нет, то пусть будет число (0 или 1) - только необходимо помнить что в этом случае все проверки типа
"Если Константа.ЗавершитьРаботуПользователей = Перечисление.ДаНет.Да Тогда" надо заменить на "Если Константа.ЗавершитьРаботу = 1 Тогда" (ну и в константах ставить либо "0" либо "1")

Теперь когда нам надо всех "выкинуть" из сеанса, заходим в константы и переключаем в положение "Да" (или "1").
Чтобы делать это могли только мы добавим проверку на возможность редактирования этой константы.
Ищем в глобальном модуле служебную процедуру "ПриЗаписиКонстанты(ИмяКонстанты,Значени е)" и добавляем туда следующий код:

Код
1C
1
2
3
4
5
6
7
8
Если (ИмяКонстанты="ЗавершитьРаботуПользователей") Тогда
Если не(ИмяПользователя() = "Администратор") Тогда
   Предупреждение("Константа """+СокрЛП(ИмяКонстанты)+""" является служебной и 
может быть изменена только администратором.");
   СтатусВозврата(0);
   Возврат;
КонецЕсли;
КонецЕсли;
Как вы уже догадались вместо имени "Администратор" может быть любое ... именно этому пользователю позволено завершить работу всех.

2. Теперь перейдем к нашей процедуре "ОбработкаОжидания(<ИмяПроцедуры>,<Интер валВызова>)". Её замечательность в том, что она раз в заданный период (<ИнтервалВызова>) в секундах, запускает указанную процедуру(<ИмяПроцедуры>).
т.е. сначала опишем её в нашем глобальном модуле (если там уже есть описание, т не трогаем а модифицируем вызываемую процедуру).

ОбработкаОжидания("глЗавершитьРаботу",30 );

помещаем сразу после определения переменных

3. Теперь создадим вызываемую функцию "глЗавершитьРаботу()"

Код
1C
1
2
3
4
5
6
7
8
9
10
Процедура глЗавершитьРаботу()
Если Константа.ЗавершитьРаботуПользователей = Перечисление.ДаНет.Да Тогда
  если не(ИмяПользователя() = "Администратор") Тогда
     глСколькоРазСказалиНет = глСколькоРазСказалиНет + 1;
     ЗавершитьРаботуСистемы(0);
  КонецЕсли;
Иначе
 глСколькоРазСказалиНет = 0;
КонецЕсли;
КонецПроцедуры
здесь замечаем неопределённую ранее переменную "глСколькоРазСказалиНет" - она нужна для так называемой отсрочки завершения, дадим пользователю возможность отсрочить завершение в течении нескольких циклов проверки (количество циклов зададим далее)
конечно эту переменную необходимо объявить
Перем глСколькоРазСказалиНет;
и в служебной процедуре "ПриНачалеРаботыСистемы()" её обнулить
глСколькоРазСказалиНет = 0;

4. при завершении работы ситемы отрабатывает служебная процедура "ПриЗавершенииРаботыСистемы()" ищем/создаём её и добавляем следующий код

Код
1C
1
2
3
4
5
6
7
8
9
10
11
12
Если Константа.ЗавершитьРаботуПользователей = Перечисление.ДаНет.Да Тогда
    ТекстрПред = "Извините, по техническим причинам запущена процедура принудительного завершения работы. " + РазделительСтрок + "Пожалуйста, сохраните свои документы..........";
    ТекстрПред1 = " (осталось " + Строка(3 - глСколькоРазСказалиНет) + " предупреждений.)";
Иначе
    ТекстрПред = "";
    ТекстрПред1 = "";
КонецЕсли;
Если глСколькоРазСказалиНет < 4 Тогда
    Если Вопрос(ТекстрПред + РазделительСтрок + "Закрыть программу ?"+ РазделительСтрок + ТекстрПред1, "Да+Нет",15) = "Нет" Тогда
 СтатусВозврата(0);
    КонецЕсли;
КонецЕсли;

этот код просмотрит на константу, на количество отсрочек и выкинет пользователя при привышении, администртора не тронет т.к. на него счетчик не работет...

5. Ладно, а как быть с теми кто хочет попасть в систему. Надо их не пустить. Т.к. база в данный момент захвачена не монопольно на поможет всё таже служебная процедура
"ПриНачалеРаботыСистемы()", ищем и добавляем в неё следующий код

Код
1C
1
2
3
4
5
6
7
8
Если Константа.ЗавершитьРаботуПользователей = Перечисление.ДаНет.Да Тогда
    Если если не(ИмяПользователя() = "Администратор") Тогда
 ТекстрПред = "Извините, по техническим причинам запущена процедура принудительного завершения работы. ";
 Предупреждение(ТекстрПред,5);
 СтатусВозврата(0);
 Возврат;
    КонецЕсли;
КонецЕсли;
т.е. при входе пользователю бутет выдано сообщение о невозможности и завершён сеанс...

Как видим ничего сложного и после того как в базу можно будет запускать пользователей, заходим опять в константы и переключаем в исходное положение "Нет"("0").
1
 Аватар для hunt27
39 / 38 / 1
Регистрация: 12.12.2008
Сообщений: 103
15.02.2010, 16:51
Если юзьвери работают в терминале или через Цитрикс, можно высвиснуть всех через Диспетчер служб терминалов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2010, 16:51
Помогаю со студенческими работами здесь

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

Как вывести список всех пользователей?
Как вывести список всех пользователей, которые могут логиниться, группы к которым они принадлежат, ID, домашний адрес, используемый Shell,...

Как отобразить всех пользователей на карте?
Есть задача разместить всех пользователей(давших разрешение) на карте. Карту могут видеть и другие пользователи. Как это можно...

Как получить список всех пользователей ПК?
Как получить список всех пользователей на конкретной машине? Мож функция какая есть...

Как узнать имена всех пользователей?
как узнать имена всех пользователей? P.S. можно использовать cmd.exe


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru