ВыгонялкаПользователей - класс для выгона пользователей из 1С

06.03.14

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

Небольшой класс 1С++ для принудительного завершения сеансов пользователей 1С 7.7.

Скачать файлы

Наименование Файл Версия Размер
Архив_1_0_0_0
.zip 21,17Kb
57
.zip 1.0.0.0 21,17Kb 57 Скачать

Предыстория

В свое время искал на простора сети что то более менее адекватное. То что было в общем доступе не подошло по тем или иным причинам.

Сейчас решил выложить на обозрение вытяжку как это реализованно у меня в виде класса 1С++. Получилось достаточно удобно для встраивания в любую конфигурацию без лишних заморочек. Возможно баян, но, ИМХО, может кому-нибуть пригодиться.

Требования

Для работы класса необходмы внешние компоненты (скопировать желательно последние версии ВК в каталог ИБ/1С):
1. 1С++
2. FormEx (Автор - Алексей Фёдоров aka АЛьФ)

Использование

Класс может применять в любой конфигурации 1С 7.7.
Для "встраивания" в конфигурацию достаточно в ГлобальныйМодуль в процедуру "ПриНачалеРаботыСистемы()" добавить строки:

     //начало изменения
    //Загрузка 1С++
   
Если ЗагрузитьВнешнююКомпоненту("1CPP.dll")=0 Тогда
       
Сообщить("Не удается загрузить внешнюю компоненту ""1CPP.dll""");
    Иначе
       
//Загрузка FormEx
       
Если ЗагрузитьВнешнююКомпоненту("FormEx.dll")=0 Тогда
           
Сообщить("Не удается загрузить внешнюю компоненту ""FormEx.dll""");
        Иначе
           
Выгонялка = СоздатьОбъект("ВыгонялкаПользователей");
           
//здесь можно настроить свойства класса
            //Выгонялка.ВремяДоЖесткогоЗавершения = 0; //0 - не использовать жесткое завершение 1С
            //Выгонялка.ФильтрПользователей = "АДМИНИСТРАТОР"; //не выгонять администратора
           
Если Выгонялка.Запустить() = 0 Тогда
               
СтатусВозврата(0);
                Возврат;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
   
//конец изменения

 Если в конфигурации уже используется 1С++ или FormEx - необходимо скорректировать вышеприведенный код.

НЕ РЕКОМЕНДУЕТСЯ использовать "жесткое" завершение 1С на DBF версии БД, т.к. такое завершение может повлечь за собой повреждение файлов данных БД.

Свойства

 

У класса есть свойства, которые доступны пользователю (желательно изменять из до метода "Запустить()"):

  •     ИнтервалТаймера - интервал таймера в мсек по умолчанию (5000мсек=5сек)
  •     ВремяПростояДоЗавершения - время простоя системы в сек, после которого будет отключен сеанс 1С (2часа) (если "0" - не используется)
  •     ВремяДоЗавершенияПоУмолчанию - время до завершения сеанса 1С в сек по умолчанию (60сек)
  •     ВремяДоЗавершения - текущее значение счетчика времени до завершения сеанса 1С (60сек)
  •     ВремяДоЖесткогоЗавершенияПоУмолчанию - время до жесткого завершения процесса 1С в сек по умолчанию (20сек)
  •     ВремяДоЖесткогоЗавершения - время до жесткого завершения процесса 1С в сек (если "обычное" завершение не срабатывает из-за модальных окон) (20сек) (если "0" - не используется)
  •     СообщениеПользователям - сообщение, которое выдается пользователям при завершении сеанса 1С
  •     ФильтрПользователей - фильтр по тем пользователям, которых НЕ надо выгонять из 1С (через ";")
  •     ФильтрПользователейПростоя - фильтр по тем пользователям, которых НЕ надо выгонять из 1С по простою (через ";")
  •     ИмяБазы - имя экземпляра 1С, чтобы было ясно о какой БД идет речь в сообщениях пользователям (имя БД из реестра)

Принцип действия

    1. В каталог ИБ копируем/переименовываем файл "stop1с.txt" со структурой:

        ВРЕМЯ ОЖИДАНИЯ: {время до завершения сеанса}
       
СООБЩЕНИЕ: {сообщение, которое будет выведено пользователям}
       
ИСКЛЮЧЕНИЕ ПОЛЬЗОВАТЕЛЕЙ: {фильтр по пользователям, которых НЕ надо выгонять из 1С}

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

Инф.окно


    3. При заверешнии отпущенного пользователю на сохранение данных времени, 1С закрывается БЕЗ СОХРАНЕНИЯ всех несохраненных данных. Если при этом активно системное модальное окно (к примеру "О программе"), 1С не закроется и будет ждать, пока пользователь не закроет его (модальное окно) вручную, после чего 1С закроется. Чтобы исключить такую ситуацию - существует возможность указать задержку (по умолчанию 20 секунд после неудачного "обычного" завершения сеанса 1С) для "жесткого" закрытия 1С (завершение текущего процесса 1С). При этом информационное окно изменит свое содержимое и начнется отсчет таймера для "жесткого" закрытия (рис.2).

Инф.окно
    4. Пока в каталоге ИБ существует файл "stop1с.txt" - никто, кроме пользователей из фильтра, не сможет зайти в БД (им будет выведено информационное сообщение о запрете входа в 1С (рис.3)).
Запрет на вход в 1С    

    Кроме того, при простое системы в течении времени, заданного в свойстве "ВремяПростояДоЗавершения" (по умолчанию 2 часа) сеанс 1С будет так же завершен (кроме пользователей из фильтра "ФильтрПользователейПростоя").

Пояснения

При удалении/переименовании файла "stop1с.txt" из каталога ИБ у пользователей, которые еще не успели выйти, информационное окно закроется и пользователи продолжат работать в обычном режиме.
    
Для удобства администрирования можно написать отчет, который будет управлять созданием/удалением файла "stop1с.txt" в каталоге ИБ.

 

 Тема на 1cpp.ru

выгонялка завершение сеанса класс 1С++

См. также

Монопольное открытие формы обработки 1с77

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Блокировка открытия формы обработки одним пользователем.

1 стартмани

24.05.2023    583    igor7777    1    

0

Групповое переименование файлов для 1С 7.7

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простецкий скрипт переименования файлов в папке в нижний регистр, будет полезен программистам и системным администраторам имеющим навыки програмирования в 1С. Можно легко настроить под себя, спасает мне периодически час времени, может, кому еще будет полезен.

1 стартмани

18.02.2022    3780    0    igor7777    6    

2

[7.7 ТиС. СТОП-БАРДАК] Автоперенос непроведенных документов на текущий день

Инструменты администратора БД Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Боремся с бардаком. Работы в прошлых датах запрещены. Непроведенные документы (по разным причинам) - автоматом переносятся в начало текущего дня при запуске любого первого сеанса 1С в текущем дне. Задержка старта 1С - практически незначима. Не требует настройки, не требует допрограммирования (исключая один оператор вставки в процедуру старта системы). Можно обработку выполнять вручную с любой периодичностью.

2 стартмани

25.05.2020    5684    2    CheBurator    3    

2

Анализ 1С: Предприятие 7.7 с помощью ELK стека

Журнал регистрации Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    11093    phsin    20    

27

Автоматическое объединение конфигураций 1С 7.7

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Скрипт позволяет выполнить объединение конфигураций и реструктуризацию из командной строки. Объединение выполняется штатными средствами конфигуратора 1С 7.7, взаимодействие с которым происходит путем посылки нажатий клавиш. Пригодится, если есть необходимость обновить или постоянно обновлять множество ИБ.

1 стартмани

22.04.2017    15662    4    devlabnn    2    

6

Перепроведение по счету

Инструменты администратора БД Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Украина Бухгалтерский учет Абонемент ($m)

Перепроведение по счету для конфигурации Бухгалтерский учет для Украины, 1С: Предприятие 7.7

1 стартмани

23.09.2016    3745    1    Genyak    1    

0

Решение проблем с печатью, предварительным просмотром печати, пакетной печатью 1С: 7.7 в терминале

Инструменты администратора БД Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Периодически сталкивался со следующими проблемами при печати в 1С: 7.7 работающей под терминалом: 1) После замены принтера на клиентской машине 1С пытается печатать на старый принтер. 2) Отсутствует предварительный просмотр при печати. 3) Не работает печать без предварительного просмотра (пакетная печать документов). 4) В некоторых формах печатает, в некоторых нет.

1 стартмани

09.06.2016    27125    18    tux    3    

1

Логирование в 1С

Инструменты администратора БД Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Часто бывает необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами. Использовать для этих целей логирование 1С чрезвычайно неэффективно и не удобно. В таких случаях удобно использовать подход, применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

18.05.2016    34936    rudjuk    21    

33
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. westinka 17.03.14 00:03 Сейчас в теме
оооо, какая хорошая вещь!
спасибо!
у нас есть выгонялка, но простая, просто тупо выходите нафиг и все, и принудительное отключение после 3х предупреждений
а тут таймер, и его видно, гуд гуд :)
2. Elected 20 30.04.14 15:40 Сейчас в теме
Выгонялка = СоздатьОбъект("ВыгонялкаПользователей");
{Глобальный модуль(4086)}: Неудачная попытка создания объекта (ВыгонялкаПользователей)
3. zarius 184 05.05.14 14:25 Сейчас в теме
(2) Все необходимые ВК (1С++, FormEx) в наличии?
Проверьте как прописан класс в defcls.prm

Подобный вопрос уже задавался на http://www.1cpp.ru/forum/YaBB.pl?num=1393611161/7#7
Посмотрите, возможно ответ найдете там же.
4. Elected 20 05.05.14 14:56 Сейчас в теме
Спасибо! Был старой версии файл Formex.dll!
5. Nata 8 15.07.14 09:52 Сейчас в теме
6. Vortigaunt 96 15.04.16 10:31 Сейчас в теме
Хочу внедрить у себя. Интересует вопрос. Будет ли корректно работать жесткое завершение процесса 1с на терминальном сервере. Найдет ли эта программа нужный процесс 1сv7.exe из списка запущенных процессов? А также, если пользователь запустил несколько разных баз у себя, а надо выгнать только из одной, а остальные не трогать?
7. zarius 184 15.04.16 14:04 Сейчас в теме
(6) Закроется именно тот процесс 1С, в котором срабатывает "жесткое завершение".
В терминале работает корректно, хотя возможно могут быть проблемы с правами на запуск скрипта - но это уже зависит от настроек безопасности.
Vortigaunt; +1 Ответить
8. zarius 184 15.04.16 14:09 Сейчас в теме
(6) Однако обратите внимание на рекомендации по НЕ использованию "жесткого" завершения на DBF версиях 1С.
Оставьте свое сообщение