Перейти к содержимому

1с как выкинуть пользователей из файловой базы

  • автор:

1с как выкинуть пользователей из файловой базы

Кому подойдет информация: Администратор 1С, Системный администратор, Бухгалтер
Подойдет для конфигураций: Все типовые конфигурации 1С новых редакций

В данной публикации будет рассмотрено, как завершить работу пользователей в базах новых редакций, работающих в режиме управляемого приложения. Зачастую это необходимо, чтобы можно было выполнить операции, требующие монопольного режима базы (например, удаление помеченных на удаление объектов, выполнение тестирования и исправления базы). Тогда в базе остается активным только один пользователь, выполняющий такие операции.

Вообще необходимо стараться избегать необходимости завершать работу пользователей базы принудительно, а завершать работу пользователей стандартным закрытием сеансов работы. Т.к. каждое такое "выкидывание" пользователей из базы является по своей сути аварийным завершением работы с базой. И именно в такие аварийные завершения работы могут возникать или накапливаться ошибки (но не обязательно каждый раз) в пользовательских файлах, которые могут потом выражаться в нетиповом поведении 1С у отдельных пользователей, потребуется очистка кэша базы на отдельном рабочем месте. Но, когда других вариантов не остается, то приходится удалять активные сеансы работы пользователей принудительно.

Будет рассмотрено три момента: в файловой базе, а так же два варианта с использованием возможностей базы в режиме 1С:Предприятие и с помощью утилиты администрирования баз данных для серверного варианта базы. Понять, какой тип базы у Вас — файловый или серверный можно по ссылке.

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

Внимание: описанные ниже действия доступны для пользователей с полным набором прав!

1. Блокировка работы пользователей в файловой базе

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

Для этого необходимо перейти в разделе "Администрирование" ("НСИ и администрирование" — в зависимости от конфигурации может быть такое название) по ссылке "Обслуживание", далее по ссылке "Блокировка работы пользователей". Блокировка базы устанавливается текущим пользователем. После нажатия на кнопку "Установить блокировку" сеансы других пользователей будут прерваны до момента снятия блокировки.

1С 8 блокировка работы пользователей файловой базы

2. Завершение работы пользователей серверной базы в режиме 1С: Предприятие

Переходим в раздел "НСИ и администрирование" или "Администрирование" в зависимости от конфигурации базы 1С 8, далее переход по ссылке "Обслуживание".

1C 8 как удалить, выгнать работающих пользователей из базы в режиме Предприятие

Далее, как продемонстрировано на, объединенном изображении переход по ссылке "Активные пользователи" откроет одноименную форму списка работающих пользователей базы 1С. Выделяем несколько строк или отдельные и с помощью кнопки "Завершить сеанс" работа пользователей будет завершена.

как завершить работу пользователей в базе 1С 8

3. Завершение работы пользователей серверной базы с помощью "Администрирования серверов 1С Предприятия"

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

1с 8 не обнаружено свободной лицензии!

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

1C 8 ярлык Администрирование серверов 1С предприятия1C 8 утилита Администрирование серверов 1С Предприятие в меню кнопки Пуск в Windows

Находим базу в ветке "Кластер" — "Локальный кластер" — "Информационные базы" по имени базы и "Сеансы". Имя базы можно найти в "Справка" — "О программе", "Имя базы" или в списке запуска баз, внизу формы списка. Выделяются строки с отдельными сеансами работы или несколько подряд. Правой кнопкой мыши вызывается контекстное меню, в котором необходимо выбрать пункт "Удалить".

1С 8 удаление пользователей из базы

Согласится с предупреждением о том, что удаление сеанса может привести к потере не сохраненных изменений в справочниках и документах. Мера вынужденная, поэтому нажимается кнопка "ОК".

как завершить работу пользователей в базе 1с 8

Успешным результатом будет исчезновение строк удаляемых сеансов пользователей из списка.

1C 8 удаление сеансов работы пользователей

Может возникнуть ситуация, что в списке пользователей окажется пользователь "DefUser" — это значит, что в базе отрабатывает регламентное (фоновое) задание. Необходимо дождаться, когда фоновое здание закончит выполнение и пользователь DefUser сам автоматически отключиться. Иначе, если в настройке фонового задания установлена настройка запускать повторно при аварийном завершении, то пользователь после удаления его сеанса работы практически мгновенно тут же появится. И, если исходная цель была в получении монопольного доступа, то это сделать не получится из-за мгновенно снова запускающегося после завершения работы сеанса фонового задания. Необходимо дождаться самостоятельного завершения.

Завершение работы пользователей файловой информационной базы 1С:Предприятия

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

Для завершения текущих открытых сеансов и предотвращения новых подключений, в файловой базе, Effector Saver использует механизм «Завершить работу пользователей». Механизм встроен в типовые конфигурации, и основан на запуске 1С:Предприятия с параметром «ЗавершитьРаботуПользователей».

Механизм «Завершить работу пользователей», имеет ограничения, из-за которых завершение может не отработать. В этом случае при выполнении задачи, Effector Saver после запуска «Завершить работу пользователей», сообщит об ошибке исключительной блокировки информационной базы.

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

Рассмотрим причины по которым не удается завершить работу пользователей для файловой информационной базы 1С:Предприятия.

Причина 1. Не типовая конфигурация

В не типовых конфигурациях механизм «Завершить работу пользователей» может отсутствовать. Поэтому, если вы используете не типовую конфигурацию (разработана не на библиотеке стандартных подсистем) то, уточните у разработчика, поддерживает ли ваша конфигурация автоматическое завершение работы пользователей.

Причина 2. Присутствует окно авторизации

Механизм «Завершить работу пользователей» не отработает, если не закрыть сеанс пользователя, который попытался зайти в базу, но остановился на вводе логина и пароля, оставив окно авторизации.

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

Причина 3. Присутствует открытый сеанс Конфигуратор

Механизм «Завершить работу пользователей» не отработает, если не закрыть сеанс Конфигуратор. Пока будет запущен Конфигуратор, завершить работу пользователей не удастся.

Причина 4. Не закрывает сеанс внешнего соединения

Механизм «Завершить работу пользователей» не отработает, если файловая база, с помощью внешнего соединения, используется веб-сервером. Базу можно будет заблокировать, только в случае остановки веб-сервера.

Настройка и проверка отключения пользователей

Далее настроим и проверим работу штатного механизма завершения работы пользователей для файловой информационной базы 1С:Предприятия.

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

Переходим «Сервис» — «Параметры программы» — «Автозапуск», устанавливаем «Запускать как приложение (компьютер пользователя)» и нажимаем «Сохранить».

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

zapuskaem-aktivnyj-seans-1s

Настраиваем задачу «Резервное копирование 1С:Предприятие 8»

На вкладке «Подключение к 1С», укажем параметры подключения к нашей базе 1С:Предприятия.

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

Переходим на вкладку «Хранилище архивов» укажем, где следует хранить создаваемые архивы.
Нажимаем на кнопку — добавить хранилище архива.

Выберите существующее хранилище резервных копий или создайте новое.

Нажимаем на кнопку «Сохранить» — сохранить и закрыть.
Для запуска задачи в главном окне «Менеджера» правый клик по задаче и выбираем «Выполнить сейчас».

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

После удачного завершения работы пользователей, управляющий сеанс закроется и Effector Saver приступит к выполнению бэкапа.

aktivnyj-seans-1s-i-sluzhebnyj-seans-1s

Обратите внимание: служебный сеанс работает не более пяти минут и завершается самостоятельно.

rabota-sistemy-zavershaetsja-dlja-administratora

Наш активный сеанс будет перезапущен в течение минуты, и вы увидите диалоговое окно «Начало сеанса с информационной базой запрещено.»

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

zapuskaem-aktivnyj-seans-1s

Во вкладке «Журнал задач» отобразятся дата и результат выполнения задачи бэкапа.
Для детального просмотра результата выполнения задачи выбираем в меню «Журнал задач» — «Открыть запись» или сделайте клик мыши по записи выполнения задачи.

Откроется «Запись журнала» где наглядно отображены все процессы выполненной задачи.

завершение работы пользователей в файловой базе БП2.0 (обычное приложение)

Можно ли завершить работу пользователей в файловой базе БП2.0? База на сервере, пользователи заходят через терминальный доступ.<br>в процедуре ЗавершитьРаботуПользователей в глобальном модуле увидела комментарий // Невозможно принудительно отсоединить подключения в файловом режиме работы<br>На практике получилось отключить только себя. Т.е. средствами встроенного языка 1С в обычном приложении в файловой базе пользователей выбросить нельзя? Или все-таки можно?

Нельзя, написанному можно верить.

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

Если этот пользователь будет активно жать на кнопочки, то толку от такого обработчика?

значит предусмотреть возможность нажатия одного раза

В любом случае подключишь обработчик на какой-то интервал. Если этот интервал будет очень частый, то 1С будет часто просто так долбиться к какому-то источнику данных и в нем проверять нужно «выгонять» пользователя или нет. Если поставить редко, то уменьшается шанс срабатывания ожидания события. Тут основное понятие нарушается — для управления пользователями в сети необходимо наличие инструментов администрирования. Такие инструменты предоставляет сервер (на то он и сервер) — терминальный или сервер 1С. Все остальное «от лукавого».

Как закрыть активных пользователей 1С

Зачастую администратору или бухгалтеру среди рабочего дня нужен монопольный режим 1С для выполнения регламентных операций: обновления программы, изменения конфигурации, удаление объектов, группового перепроведения документов и др. При этом специалист, который должен провести регламентные операции сталкивается с проблемой «как закрыть активных пользователей». Штатными средствами не всегда возможно решить этот вопрос. В таком случае. как принудительно выбросить пользователей из программы? Сделать это можно следующими способами.

ФАЙЛОВАЯ БАЗА ДАННЫХ

Меню Сервис – Пользователи – Блокировка установки соединений с информационной базой

Если по этому пути вы не обнаружили обработку закрытия активных пользователей, посмотрите в меню Операции – Обработки — Блокировка установки соединений с информационной базой. Там она точно будет. Данная обработка появилась в платформе 1С 8.2.14. В более ранних версиях ее может не быть. Это единственный для файловой базы данных способ получить монопольный доступ. Детально рассматривать как работать с обработкой не будем. В общем то она простая и понятная.

В новых конфигурациях на управляемых формах (BAS — в Украине) появилась долгожданная волшебная кнопка завершения работы пользователя, которая доступна в Журнале активных пользователей. В BAS Бухгалтерия журнал регистрации открывается следующим образом:

Меню: Администрирование — Обслуживание — Активные пользователи

Также можно воспользоваться системными средствами ОС Windows и с помощью диспетчера задач завершить процессы других пользователей, в частности закрыть приложение 1с8.exe. Но только для этого у пользователя должны быть права администратора системы.

Существует еще один альтернативный вариант выбросить пользователей с файловой БД. Специальная программная обработка может: 1. Просто выводить информационное окно о необходимости закрыть программу или другое сообщение 2. Выводить сообщение и завершать сеансы пользователей. 3. Переводить 1С в монопольный режим. 4. Запрещать пользователям вход, когда включен монопольный режим. Данная обработка не штатная. Стоимость и функционал смотрите в наших проектах. Выглядит обработка так:

Информационное окно для пользователей

СЕРВЕРНАЯ БАЗА ДАННЫХ

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

3. Перезагрузка ПК. Есть и третий вариант быстро и эффективно выбросить всех пользователей с 1С — перезагрузить ПК или сервер, на котором находится база данных 1С. Этот способ несколько грубоват, потому что не позволяет предупредить пользователей, не дает им время корректно завершить работу и т.д., но весьма эффективный, когда монопольный доступ нужен очень срочно или когда предыдущих два способа кажутся вам «темным лесом».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *