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

Важно понимать, что механизмы блокировки зависят от версии платформы (1С:Предприятие 8.3 или 8.2), типа базы (файловая или клиент-серверная) и конфигурации (например, Бухгалтерия 3.0, УТ 11, ЗУП 3.1). Некоторые методы работают только при наличии прав администратора сервера или SQL. Если вы не уверены в своих действиях, лучше предварительно создать резервную копию базы или протестировать блокировку на тестовом стенде.

1. Блокировка пользователя через Конфигуратор 1С

Самый распространенный и безопасный способ — использование встроенного Конфигуратора. Он подходит для большинства типов баз и не требует знаний SQL или доступа к серверу. Чтобы заблокировать пользователя:

  1. Откройте базу в режиме Конфигуратор (для этого при запуске удерживайте клавишу Shift или выберите пункт в меню запуска).
  2. Перейдите в меню Администрирование → Пользователи.
  3. В списке найдите нужного пользователя и дважды кликните по его имени.
  4. В открывшемся окне снимите галочку Разрешить вход (или установите галочку Заблокирован, если такой параметр есть в вашей конфигурации).
  5. Сохраните изменения и перезапустите базу.

Этот метод работает для всех конфигураций на платформе 1С:Предприятие 8.3, включая Бухгалтерию, ЗУП и Управление торговлей. Однако у него есть ограничение: пользователь с правами администратора может разблокировать себя самостоятельно, если у него остался доступ к Конфигуратору. Чтобы этого избежать, потребуется дополнительная настройка прав.

Создать резервную копию базы|Проверить текущие права пользователя|Убедиться, что блокируемый пользователь не подключен к базе|Зафиксировать время блокировки для отчетности-->

2. Блокировка через режим «Администрирование сервера 1С»

Если база работает в клиент-серверном варианте (например, на Microsoft SQL Server или PostgreSQL), можно заблокировать пользователя на уровне сервера 1С:Предприятие. Этот способ более надежен, так как не позволяет пользователю обойти блокировку через локальные настройки. Инструкция:

  1. Откройте Администрирование сервера 1С (доступно в меню Пуск → 1С Предприятие → Администрирование сервера).
  2. В дереве кластеров выберите нужный сервер и разверните список баз данных.
  3. Кликните правой кнопкой по базе, в которой нужно заблокировать пользователя, и выберите Список пользователей.
  4. В открывшемся окне найдите пользователя и нажмите Заблокировать (или Отключить, в зависимости от версии).
  5. Подтвердите действие и дождитесь обновления статуса.

Преимущество этого метода в том, что блокировка происходит мгновенно, даже если пользователь в данный момент работает в базе. Однако для его использования требуются права администратора сервера . Если таких прав нет, можно воспользоваться альтернативными способами, например, через SQL-запросы (об этом расскажем ниже).

📊 Какой способ блокировки вы используете чаще?
Через Конфигуратор
Через Администрирование сервера
Через 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: Плановое задание в Конфигураторе

  1. Откройте Конфигуратор и перейдите в Объекты → Плановые задания.
  2. Создайте новое задание с типом Выполнить код.
  3. В теле задания укажите код для блокировки пользователя (пример ниже).
  4. Настройте расписание выполнения (например, на дату начала блокировки).
  5. Сохраните и активируйте задание.

Пример кода для блокировки:

Пользователи = Справочники.Пользователи;

ВыбранныйПользователь = Пользователи.НайтиПоНаименованию("Иванов И.И.");

Если Не ВыбранныйПользователь.Пустая() Тогда

ВыбранныйПользователь.Заблокирован = Истина;

ВыбранныйПользователь.Записать();

КонецЕсли;

Способ 2: Внешняя обработка с таймером

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

💡

Чтобы автоматически разблокировать пользователя после истечения срока, создайте второе плановое задание с кодом ВыбранныйПользователь.Заблокирован = Ложь; и настройте его выполнение на дату окончания блокировки.

5. Блокировка пользователя с полными правами: особые случаи

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

  • 🔒 Изменить пароль администратора через SQL-запрос или утилиту chdbfl.exe (для файловой базы).
  • 🛡️ Ограничить доступ на уровне ОС: заблокировать учетную запись Windows, под которой запускается 1С.
  • 🔄 Создать нового администратора с другими учетными данными и удалить старого.
  • 📜 Изменить права в конфигурации: временно убрать галочку Полные права у роли пользователя.

Для файловой базы можно воспользоваться утилитой chdbfl.exe, которая входит в комплект поставки . Команда для смены пароля администратора:

chdbfl.exe C:\Путь\К\Базе\1Cv8.1CD /ChangeUserPassword Администратор НовыйПароль

Для клиент-серверной базы потребуется SQL-запрос к таблице v8users, где хранится хеш пароля. Внимание: изменение пароля через SQL может привести к несовместимости с механизмом аутентификации , поэтому после такой операции рекомендуется проверить работоспособность базы.

💡

Блокировка администратора — рискованная операция. Если у вас нет доступа к серверу или резервной копии, лучше обратиться к специалистам 1С. Неправильные действия могут привести к полной потере доступа к базе!

6. Как проверить, заблокирован ли пользователь

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

  1. Попробуйте войти в базу под учетной записью заблокированного пользователя. Должно появиться сообщение Пользователь заблокирован или Отказано в доступе.
  2. Проверьте журнал регистрации (Администрирование → Журнал регистрации в Конфигураторе). В нем должна быть запись о попытке входа с статусом Ошибка.
  3. Для клиент-серверной базы можно выполнить 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С — там есть опция Отключить пользователя.

Что делать, если заблокировал себя самого?

Если вы потеряли доступ к базе, попробуйте:

  1. Войти под другой учетной записью администратора.
  2. Использовать утилиту chdbfl.exe для сброса пароля (для файловой базы).
  3. Обратиться к администратору сервера SQL для ручного изменения статуса пользователя.
  4. Восстановить базу из резервной копии (крайний случай).
Как заблокировать пользователя в облачной версии 1С (1С:Fresh)?

В 1С:Fresh блокировка пользователей осуществляется через Личный кабинет на сайте :

  1. Авторизуйтесь в Личном кабинете по ссылке https://online.1c.ru.
  2. Перейдите в раздел Мои сервисы → 1С:Fresh.
  3. Выберите нужную базу и откройте список пользователей.
  4. Найдите пользователя и нажмите Заблокировать.

В облачной версии нет доступа к SQL или Конфигуратору, поэтому все изменения вносятся через веб-интерфейс.

Можно ли заблокировать пользователя на определенное время суток?

Да, но стандартными средствами это сделать сложно. Потребуется:

  1. Создать внешнюю обработку, которая будет проверять время входа.
  2. Настроить плановое задание, которое будет блокировать/разблокировать пользователя по расписанию.
  3. Использовать сторонние модули для управления доступом (например, "1С:Контрагент" или "Битрикс24" для интеграции).

Гораздо проще настроить ограничение по времени на уровне ОС (например, через Групповые политики Windows).

Как заблокировать всех пользователей кроме администратора?

Для массовой блокировки можно использовать SQL-запрос:

UPDATE [dbo].[v8users]

SET [Active] = 0

WHERE [Name] <> 'Администратор'

Или написать обработку в Конфигураторе, которая пройдет по всем пользователям и установит флаг Заблокирован = Истина, кроме указанных исключений. Внимание: перед массовой блокировкой обязательно оповестите пользователей и сделайте резервную копию!