Блокировка пользователей в 1С:Предприятие — стандартная административная задача, которая возникает при увольнении сотрудников, временном отстранении от работы или подозрениях в несанкционированных действиях. Однако неправильное выполнение этой процедуры может привести к потере данных, нарушению бизнес-процессов или даже блокировке всей базы для остальных пользователей, если речь идет о пользователе с полными правами. В этой статье разберем все актуальные способы блокировки — от простых до продвинутых, — а также расскажем, как избежать типичных ошибок.
Важно понимать, что механизмы блокировки зависят от версии платформы (1С:Предприятие 8.3 или 8.2), типа базы (файловая или клиент-серверная) и конфигурации (например, Бухгалтерия 3.0, УТ 11, ЗУП 3.1). Некоторые методы работают только при наличии прав администратора сервера 1С или SQL. Если вы не уверены в своих действиях, лучше предварительно создать резервную копию базы или протестировать блокировку на тестовом стенде.
1. Блокировка пользователя через Конфигуратор 1С
Самый распространенный и безопасный способ — использование встроенного Конфигуратора. Он подходит для большинства типов баз и не требует знаний SQL или доступа к серверу. Чтобы заблокировать пользователя:
- Откройте базу в режиме
Конфигуратор(для этого при запуске 1С удерживайте клавишуShiftили выберите пункт в меню запуска). - Перейдите в меню
Администрирование → Пользователи. - В списке найдите нужного пользователя и дважды кликните по его имени.
- В открывшемся окне снимите галочку
Разрешить вход(или установите галочкуЗаблокирован, если такой параметр есть в вашей конфигурации). - Сохраните изменения и перезапустите базу.
Этот метод работает для всех конфигураций на платформе 1С:Предприятие 8.3, включая Бухгалтерию, ЗУП и Управление торговлей. Однако у него есть ограничение: пользователь с правами администратора может разблокировать себя самостоятельно, если у него остался доступ к Конфигуратору. Чтобы этого избежать, потребуется дополнительная настройка прав.
Создать резервную копию базы|Проверить текущие права пользователя|Убедиться, что блокируемый пользователь не подключен к базе|Зафиксировать время блокировки для отчетности-->
2. Блокировка через режим «Администрирование сервера 1С»
Если база работает в клиент-серверном варианте (например, на Microsoft SQL Server или PostgreSQL), можно заблокировать пользователя на уровне сервера 1С:Предприятие. Этот способ более надежен, так как не позволяет пользователю обойти блокировку через локальные настройки. Инструкция:
- Откройте
Администрирование сервера 1С(доступно в менюПуск → 1С Предприятие → Администрирование сервера). - В дереве кластеров выберите нужный сервер и разверните список баз данных.
- Кликните правой кнопкой по базе, в которой нужно заблокировать пользователя, и выберите
Список пользователей. - В открывшемся окне найдите пользователя и нажмите
Заблокировать(илиОтключить, в зависимости от версии). - Подтвердите действие и дождитесь обновления статуса.
Преимущество этого метода в том, что блокировка происходит мгновенно, даже если пользователь в данный момент работает в базе. Однако для его использования требуются права администратора сервера 1С. Если таких прав нет, можно воспользоваться альтернативными способами, например, через SQL-запросы (об этом расскажем ниже).
3. Блокировка пользователя в 1С через SQL-запрос
Для опытных администраторов доступен метод блокировки непосредственно в базе данных с помощью SQL-запроса. Этот способ подходит для клиент-серверных баз и требует доступа к SQL Management Studio (для MS SQL) или pgAdmin (для PostgreSQL). Внимание: неправильный запрос может повредить данные, поэтому перед выполнением обязательно сделайте бэкап!
Пример запроса для Microsoft SQL Server:
UPDATE [dbo].[v8users]
SET [Active] = 0
WHERE [Name] = 'ИмяПользователя'
Для PostgreSQL запрос будет аналогичным, но с учетом синтаксиса этой СУБД:
UPDATE v8users
SET active = false
WHERE name = 'ИмяПользователя';
После выполнения запроса пользователь не сможет войти в базу. Чтобы разблокировать его, достаточно изменить значение Active обратно на 1 (или true для PostgreSQL). Этот метод особенно полезен, если пользователь заблокировал себя сам (например, изменив права доступа) и нет возможности зайти в Конфигуратор.
Что делать, если запрос не сработал?
Если после выполнения SQL-запроса пользователь все еще может входить в базу, проверьте:
1. Правильность имени пользователя (регистр может иметь значение).
2. Наличие транзакций, которые могли откатить изменения.
3. Права вашего пользователя SQL — возможно, у вас нет прав на изменение таблицы v8users.
4. Версию платформы 1С — в некоторых конфигурациях структура таблиц может отличаться.
4. Временная блокировка пользователя по расписанию
Иногда требуется заблокировать пользователя не навсегда, а на определенный срок — например, на время отпуска или командировки. В 1С:Предприятие 8.3 это можно сделать с помощью механизма плановых заданий или внешних обработок. Рассмотрим оба варианта.
Способ 1: Плановое задание в Конфигураторе
- Откройте Конфигуратор и перейдите в
Объекты → Плановые задания. - Создайте новое задание с типом
Выполнить код. - В теле задания укажите код для блокировки пользователя (пример ниже).
- Настройте расписание выполнения (например, на дату начала блокировки).
- Сохраните и активируйте задание.
Пример кода для блокировки:
Пользователи = Справочники.Пользователи;
ВыбранныйПользователь = Пользователи.НайтиПоНаименованию("Иванов И.И.");
Если Не ВыбранныйПользователь.Пустая() Тогда
ВыбранныйПользователь.Заблокирован = Истина;
ВыбранныйПользователь.Записать();
КонецЕсли;
Способ 2: Внешняя обработка с таймером
Если в вашей конфигурации нет плановых заданий, можно использовать внешнюю обработку, которая будет запускаться по расписанию через Планировщик задач Windows. В обработке прописывается аналогичный код блокировки, а в Планировщике настраивается время ее выполнения.
Чтобы автоматически разблокировать пользователя после истечения срока, создайте второе плановое задание с кодом ВыбранныйПользователь.Заблокирован = Ложь; и настройте его выполнение на дату окончания блокировки.
5. Блокировка пользователя с полными правами: особые случаи
Самая сложная ситуация — когда нужно заблокировать пользователя с правами администратора или Полные права. Такой пользователь может разблокировать себя через Конфигуратор или даже изменить права других администраторов. В этом случае требуется комплексный подход:
- 🔒 Изменить пароль администратора через SQL-запрос или утилиту
chdbfl.exe(для файловой базы). - 🛡️ Ограничить доступ на уровне ОС: заблокировать учетную запись Windows, под которой запускается 1С.
- 🔄 Создать нового администратора с другими учетными данными и удалить старого.
- 📜 Изменить права в конфигурации: временно убрать галочку
Полные правау роли пользователя.
Для файловой базы можно воспользоваться утилитой chdbfl.exe, которая входит в комплект поставки 1С. Команда для смены пароля администратора:
chdbfl.exe C:\Путь\К\Базе\1Cv8.1CD /ChangeUserPassword Администратор НовыйПароль
Для клиент-серверной базы потребуется SQL-запрос к таблице v8users, где хранится хеш пароля. Внимание: изменение пароля через SQL может привести к несовместимости с механизмом аутентификации 1С, поэтому после такой операции рекомендуется проверить работоспособность базы.
Блокировка администратора — рискованная операция. Если у вас нет доступа к серверу или резервной копии, лучше обратиться к специалистам 1С. Неправильные действия могут привести к полной потере доступа к базе!
6. Как проверить, заблокирован ли пользователь
После выполнения блокировки необходимо убедиться, что пользователь действительно не может войти в систему. Для этого:
- Попробуйте войти в базу под учетной записью заблокированного пользователя. Должно появиться сообщение
Пользователь заблокированилиОтказано в доступе. - Проверьте журнал регистрации (
Администрирование → Журнал регистрациив Конфигураторе). В нем должна быть запись о попытке входа с статусомОшибка. - Для клиент-серверной базы можно выполнить SQL-запрос:
SELECT [Name], [Active] FROM [dbo].[v8users]В результате должно отобразиться
Active = 0для заблокированного пользователя.
Если пользователь по-прежнему может входить в базу, проверьте:
- 🔄 Не обновлен ли кэш 1С (иногда требуется перезапуск клиента или сервера).
- 📋 Не изменены ли права пользователя в другой роли (например, он может входить через другую учетную запись).
- 🖥️ Не используется ли файловая версия базы, где блокировка через Конфигуратор не срабатывает мгновенно.
7. Типичные ошибки при блокировке пользователей в 1С
Даже опытные администраторы иногда допускают ошибки, которые ведут к сбоям в работе базы. Вот самые распространенные из них:
| Ошибка | Последствия | Как избежать |
|---|---|---|
| Блокировка пользователя во время его работы в базе | Потеря несохраненных данных, возможны ошибки при записи документов | Предварительно оповестить пользователя или дождаться завершения сеанса |
| Изменение прав администратора без резервной копии | Потеря доступа к базе для всех пользователей | Создать бэкап и протестировать изменения на тестовой базе |
| Блокировка через SQL без знания структуры базы | Повреждение данных, невозможность входа в Конфигуратор | Использовать только проверенные запросы или обратиться к специалисту |
| Забыли разблокировать пользователя после истечения срока | Простой в работе, нарушение бизнес-процессов | Настроить автоматическую разблокировку через плановое задание |
Еще одна частая проблема — блокировка себя самого. Если вы работаете под учетной записью, которую собираетесь заблокировать, после сохранения изменений вы потеряете доступ к базе. Чтобы этого избежать, всегда используйте отдельную учетную запись администратора с полными правами.
Перед массовой блокировкой пользователей (например, при реорганизации компании) составьте список заблокированных учетных записей и их текущих ролей. Это поможет быстро восстановить доступ, если потребуется.
8. Как разблокировать пользователя в 1С
Если пользователь был заблокирован ошибочно или истек срок блокировки, разблокировать его можно теми же способами, что и заблокировать. Рассмотрим процесс для каждого метода:
- 🔓 Через Конфигуратор: зайдите в
Администрирование → Пользователи, найдите пользователя и установите галочкуРазрешить вход. - 🖥️ Через Администрирование сервера: в списке пользователей выберите заблокированного и нажмите
Разблокировать. - 🗃️ Через SQL-запрос:
UPDATE [dbo].[v8users]SET [Active] = 1
WHERE [Name] = 'ИмяПользователя'
- ⏰ Автоматически: если блокировка была настроена через плановое задание, разблокировка произойдет по расписанию.
Если после разблокировки пользователь все равно не может войти в базу, проверьте:
- 🔒 Не изменился ли его пароль.
- 📋 Не удалена ли его роль в конфигурации.
- 🖥️ Не блокирует ли доступ антивирус или брандмауэр.
В некоторых случаях (например, после некорректного SQL-запроса) может потребоваться тестирование и исправление базы через Конфигуратор (Администрирование → Тестирование и исправление). Эта операция может занять много времени, поэтому выполняйте ее в нерабочие часы.
Если разблокировка не помогает, проверьте журнал регистрации (Администрирование → Журнал регистрации) на наличие ошибок аутентификации. Часто там указаны причины, по которым пользователь не может войти.
FAQ: Частые вопросы по блокировке пользователей в 1С
Можно ли заблокировать пользователя, не выгоняя его из базы?
Да, но это зависит от метода блокировки. Если блокировать через Конфигуратор или SQL-запрос, пользователь сможет продолжать работу до завершения текущего сеанса. Чтобы принудительно завершить его сеанс, используйте Администрирование сервера 1С — там есть опция Отключить пользователя.
Что делать, если заблокировал себя самого?
Если вы потеряли доступ к базе, попробуйте:
- Войти под другой учетной записью администратора.
- Использовать утилиту
chdbfl.exeдля сброса пароля (для файловой базы). - Обратиться к администратору сервера SQL для ручного изменения статуса пользователя.
- Восстановить базу из резервной копии (крайний случай).
Как заблокировать пользователя в облачной версии 1С (1С:Fresh)?
В 1С:Fresh блокировка пользователей осуществляется через Личный кабинет на сайте 1С:
- Авторизуйтесь в Личном кабинете по ссылке
https://online.1c.ru. - Перейдите в раздел
Мои сервисы → 1С:Fresh. - Выберите нужную базу и откройте список пользователей.
- Найдите пользователя и нажмите
Заблокировать.
В облачной версии нет доступа к SQL или Конфигуратору, поэтому все изменения вносятся через веб-интерфейс.
Можно ли заблокировать пользователя на определенное время суток?
Да, но стандартными средствами 1С это сделать сложно. Потребуется:
- Создать внешнюю обработку, которая будет проверять время входа.
- Настроить плановое задание, которое будет блокировать/разблокировать пользователя по расписанию.
- Использовать сторонние модули для управления доступом (например, "1С:Контрагент" или "Битрикс24" для интеграции).
Гораздо проще настроить ограничение по времени на уровне ОС (например, через Групповые политики Windows).
Как заблокировать всех пользователей кроме администратора?
Для массовой блокировки можно использовать SQL-запрос:
UPDATE [dbo].[v8users]
SET [Active] = 0
WHERE [Name] <> 'Администратор'
Или написать обработку в Конфигураторе, которая пройдет по всем пользователям и установит флаг Заблокирован = Истина, кроме указанных исключений. Внимание: перед массовой блокировкой обязательно оповестите пользователей и сделайте резервную копию!