К статье
Практический материал

Администрирование · 13 мин

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

Что делать, если объект 1С заблокирован: причины блокировки, как снять её через консоль кластера, сеансы и программно. Пошаговая инструкция для администраторов.

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

В большинстве случаев блокировка снимается за несколько минут: достаточно найти сеанс, который удерживает объект, и корректно его завершить. Однако бывают ситуации сложнее — например, когда сеанс завис, пользователь уже вышел, а блокировка осталась, или когда объект нельзя изменить из-за даты запрета редактирования, что пользователи тоже называют «блокировкой».

Ниже разобраны все типовые сценарии: как определить тип блокировки, как снять её через консоль кластера, список активных пользователей и программно, а также что делать, если объект заблокирован датой запрета изменения данных.

Определяем тип блокировки: сеансовая или запрет редактирования

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

Сеансовая (транзакционная) блокировка возникает, когда другой сеанс уже изменяет объект или удерживает его в транзакции. Типичные сообщения: «Конфликт блокировок при выполнении транзакции», «Запись не может быть изменена, так как объект заблокирован», превышено время ожидания блокировки. Часто причина — зависший сеанс пользователя, обмен данными, проведение большого пакета документов или регламентное задание.

Блокировка датой запрета изменения данных проявляется иначе: документ открывается, но поля недоступны для редактирования, а при попытке записи появляется сообщение о запрете изменения данных за период. Это не сбой, а штатный механизм защиты закрытых периодов, и снимается он настройкой, а не завершением сеансов.

Сообщение о конфликте блокировокСеансовая блокировка

Проверить активные сеансы и фоновые задания в консоли кластера

Поля документа недоступны, период закрытДата запрета изменения

Проверить настройку дат запрета в разделе администрирования

Блокировка возникает регулярно в одно времяРегламентное задание или обмен

Проверить расписание фоновых заданий и обменов данными

Пользователь вышел, но блокировка осталасьЗависший сеанс

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

Снимаем блокировку через список активных пользователей

Самый простой способ доступен даже без прав администратора кластера — через встроенный список активных пользователей. В типовых конфигурациях он находится в разделе «Администрирование» → «Обслуживание» → «Активные пользователи» (в некоторых конфигурациях — «Настройки» → «Активные пользователи»). В файловой базе путь аналогичный через меню «Администрирование» → «Активные пользователи».

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

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

Порядок действий через активных пользователей
  1. 1
    Откройте Администрирование → Активные пользователи
  2. 2
    Найдите сеанс пользователя, который работал с заблокированным объектом
  3. 3
    Проверьте время бездействия сеанса — зависшие сеансы обычно неактивны долго
  4. 4
    Попросите пользователя корректно выйти или завершите сеанс принудительно
  5. 5
    Повторите попытку записи объекта и убедитесь, что блокировка снята

Завершаем зависший сеанс через консоль кластера серверов

В клиент-серверном варианте основной инструмент администратора — консоль управления кластером серверов 1С. Откройте её на сервере (или с компьютера администратора), разверните нужный кластер, выберите базу и перейдите на вкладку «Сеансы». Здесь видны все подключения: пользовательские сеансы, фоновые задания, сеансы веб-сервисов и COM-соединений.

Найдите проблемный сеанс по имени пользователя, времени начала или длительному бездействию. Зависший сеанс обычно выглядит так: пользователь фактически не работает (компьютер выключен или программа аварийно закрыта), но сеанс числится активным и удерживает блокировки. Выделите его и нажмите «Удалить» — сеанс будет завершён, а удерживаемые им блокировки сняты.

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

Проверяем фоновые и регламентные задания

Частый источник «непонятных» блокировок — фоновые задания: обмены данными, загрузка курсов валют, полнотекстовое индексирование, отложенное проведение, синхронизация с сайтом или другими базами. Пользователь видит, что объект заблокирован, но никто из коллег его не открывал — потому что держит его не человек, а задание.

Проверить это можно в консоли кластера на вкладке «Сеансы» (фоновые задания отображаются отдельным типом сеанса) или внутри программы: «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания». Там видно, какое задание выполняется прямо сейчас, сколько оно длится и не завершилось ли с ошибкой.

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

Снимаем блокировку датой запрета изменения данных

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

Есть два корректных способа разблокировать объект. Первый — сдвинуть общую дату запрета на более ранний период, если это согласовано с учётной политикой. Второй, более безопасный — настроить индивидуальное исключение: в форме дат запрета перейти на вкладку «Другие способы указания даты запрета» или «По пользователям» и задать для конкретного пользователя свою дату либо разрешить редактирование конкретных данных. Так вы не открываете закрытый период для всех, а даёте точечный доступ.

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

Маршрут решения

Как выбрать действие

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

Программное снятие блокировки и работа с управляемыми блокировками

Разработчикам и администраторам с доступом к конфигуратору полезно понимать, что в управляемом режиме 1С использует управляемые блокировки СУБД, которые снимаются автоматически при завершении транзакции. «Вечных» блокировок в норме не бывает: если блокировка держится долго, значит, какой-то сеанс держит открытую транзакцию — и решение всё то же, найти и завершить этот сеанс.

Для диагностики в клиент-серверном варианте используется технологический журнал: включите сбор событий блокировок (TLOCK, TDEADLOCK, TTIMEOUT), чтобы увидеть, какие сеансы конфликтуют и на каких объектах. Это особенно полезно при взаимоблокировках (deadlock), когда два сеанса ждут друг друга и СУБД принудительно завершает одну из транзакций с ошибкой.

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

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

Частые ошибки и как проверить результат

Самая распространённая ошибка — перезагрузка сервера или службы 1С «для надёжности» вместо точечного завершения одного сеанса. Это выбивает всех пользователей, прерывает регламентные операции и не решает причину: если блокировку создаёт регламентное задание по расписанию, через час всё повторится.

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

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

Типичные ошибки
01
Перезапуск сервера вместо завершения одного зависшего сеанса — все пользователи теряют несохранённые данные, а причина остаётся
02
Завершение активного фонового задания в середине обмена — данные остаются в промежуточном состоянии и требуют повторной загрузки
03
Сдвиг общей даты запрета вместо точечного исключения — закрытый период открывается для всех пользователей
04
Игнорирование повторяющихся блокировок — без анализа расписания заданий проблема возвращается ежедневно
Контрольные точки

Как проверить результат

Запись объекта пользователем
Норма

Документ сохраняется и проводится без сообщений о блокировке

Тревожный признак

Ошибка конфликта блокировок повторяется — сеанс завершён не тот или держит задание

Список сеансов в консоли кластера
Норма

Зависший сеанс исчез, нет аномально долгих бездействующих сеансов

Тревожный признак

Сеанс появился снова — пользовательская программа переподключается с той же проблемой

Журнал регистрации
Норма

Нет новых ошибок фоновых заданий и конфликтов блокировок

Тревожный признак

Ошибки повторяются по расписанию — нужно менять настройки заданий

Ответы на частые вопросы

Объект заблокирован, но в списке активных пользователей никого нет. Что делать?

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

Можно ли разблокировать объект, не завершая сеанс пользователя?

Да, если пользователь доступен: попросите его закрыть форму объекта или записать/отменить изменения — блокировка снимется при завершении его транзакции. Принудительное завершение сеанса — крайняя мера для случаев, когда сеанс завис или пользователь недоступен.

Почему блокировка появляется каждый день в одно и то же время?

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

Опасно ли принудительно завершать сеанс? Не потеряются ли данные?

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

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

В настройке дат запрета изменения данных перейдите к указанию запретов по пользователям и задайте для конкретного сотрудника другую дату или разрешите редактирование отдельных видов объектов. Общая дата запрета при этом не меняется. После сохранения настроек сотруднику нужно перезайти в программу.

Итог

Что важно запомнить

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