Решение задач 1С:Предприятие 8 на примерах

«Ошибка блокировки объекта. Объект уже заблокирован» в 1С: что делать

Ошибки 1СБлокировки и транзакцииОпубликовано

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

Текст ошибки

Ошибка блокировки объекта. Объект уже заблокирован

Причины

Для пользователя

  1. Посмотрите в тексте ошибки, у кого открыт объект: там указаны имя компьютера, пользователь и номер сеанса.
  2. Попросите коллегу закрыть документ или сохранить изменения. После закрытия формы блокировка снимается.
  3. Если указан ваш собственный пользователь, проверьте, не открыт ли объект в другом окне или во втором запущенном экземпляре программы.

Для администратора: сеанс завис

Если пользователь уже вышел, а блокировка осталась, значит его сеанс продолжает существовать.

Для разработчика

Объектная блокировка устанавливается при начале редактирования в форме или явным вызовом. Если код блокирует объекты сам, обязательно снимайте блокировку и обрабатывайте ошибку:

ДокументОбъект = Ссылка.ПолучитьОбъект();
Попытка
    ДокументОбъект.Заблокировать();
Исключение
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
        "Документ " + Ссылка + " редактируется другим пользователем");
    Возврат;
КонецПопытки;

ДокументОбъект.Комментарий = "Обработано";
ДокументОбъект.Записать();
ДокументОбъект.Разблокировать();

В управляемых формах для блокировки по ссылке используйте ЗаблокироватьДанныеДляРедактирования(Ссылка, , УникальныйИдентификатор) и снимайте её через РазблокироватьДанныеДляРедактирования(). Если передать уникальный идентификатор формы, блокировка снимется автоматически при закрытии формы.

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

Частые вопросы

Блокировка снимется сама?

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

Это то же самое, что конфликт блокировок?

Нет. Здесь речь об объектной блокировке на время редактирования формы. Конфликт блокировок относится к транзакционным блокировкам данных при записи.

Сервер 1С:Предприятия и кластер: состав, порты, консоль, rac и веб-сервер

Базы данных и СУБД

Устройство сервера 1С и кластера, порты по умолчанию, консоль администрирования и управление сеансами через rac, кэш сервера, установка на Windows и Linux и публикация базы на веб-сервере.

Запись в регистр сведений 1С программно: менеджер записи, набор записей и удаление

Алгоритмы

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

Как открыть форму в управляемом приложении 1С и обработать результат после закрытия

Управляемые формы

Шесть типовых сценариев открытия управляемой формы в 1С: новый объект, создание на основании, существующий документ, форма выбора и получение результата после закрытия через ОписаниеОповещения.

Похожие ошибки