Блокировки данных 1С и СУБД: типы, настройка, решение проблем
Надежное ПО для всей России
г. Оренбург ул. Монтажников, 26/2
8 (800) 551-72-50 По общим вопросам
8 (800) 551-73-50 По вопросам связанным с 1С

Что такое блокировки в 1С и СУБД?

1C 25.12.2025
Что такое блокировки в 1С и СУБД?

Блокировки в 1С 8.3 и СУБД

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

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

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

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

Типы блокировок 1С

Они подразделяются на объектные и транзакционные. Первые делятся на оптимистические и пессимистические. А вторые на управляемые и автоматические.

Объектные

Этот вид блокировок внедрен целиком в 1С и никоим образом не касается СУБД.

Пессимистические

Они активируются, когда, к примеру, вы поменяли что-либо в справочнике, а другой ваш коллега то же делает попытки корректировки объекта в форме.

Данный тип блокировок предотвращает одновременное изменение одного объекта разными пользователями, обеспечивая последовательный доступ к данным.

Оптимистические

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

Транзакционные

Это интересный механизм со множеством функций, в отличие от перечисленных выше. В нем действуют блокировки на уровне СУБД.

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

У вас есть вопрос? Давайте обсудим!

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


Автоматические транзакционные блокировки 1С и СУБД

В этом режиме все блокировки осуществляет СУБД. Программисты не могут никак повлиять на процесс. При этом разработчикам несколько проще выполнять свои действия, но пользователям не рекомендуется создавать здесь информационную систему (в особенности для СУБД PostgreSQL, Oracle Database, т.к. в процессе модификации сведений они заблокируют всю табличную часть).

Для различных СУБД в автоматическом режиме применяют такие степени изоляции:

  • SERIALIZABLE целиком на таблицу – файловый режим 1С, PostgreSQL, Oracle.
  • SERIALIZABLE на записи – MS SQL, IBM DB2 (работая с не объектными сущностями).
  • REPEATABLE READ на записи – MS SQL, IBM DB2 (с объектными).

Управляемые режимы транзакционных блокировок 1С и СУБД

При таком варианте вся ответственность должна ложиться на производителя программного продукта 1С. Отметим, что СУБД назначает повышенный уровень изоляции для транзакций — READ COMMITED.

Взаимодействуя с БД, менеджер блокировок 1С проводит анализ – возможен ли «захват» ресурса. Важно понимать, что блокировки, проведенные одним исполнителем совместимы в любом случае.

Но существует ситуация, при которой две блокировки НЕ состыкуются ни при каких обстоятельствах:

  • Их сделали разные пользователи.
  • Несовместимые виды.
  • Установили на один ресурс.

Физическая реализация блокировок в СУБД

Мы говорим о таблице, находящейся в БД под именем «master». А таблица блокировок обозначается словом «syslockinfo».

В таблице есть четыре ячейки:

  • ИД блокирующей сессии SPID.
  • Что конкретно захвачено RES ID.
  • Типы блокировки — S, U или X MODE (их, конечно же, значительно больше, но в 1С применяют лишь эти три).
  • Состояние блокировки — есть два понятия: GRANT (установлена) и WAIT (в очереди).

Для мониторинга блокировок в SQL Server можно использовать системное представление sys.dm_tran_locks, которое предоставляет детальную информацию о текущих блокировках.

Чтобы завершить транзакции на уровне SQL как правило применяют команду KILL и указывают идентификатор сессии: KILL SPID/

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

Рекомендации по оптимизации блокировок

  • Сокращайте время транзакций до минимально необходимого
  • Используйте соответствующие уровни изоляции транзакций
  • Избегайте блокировок на уровне таблиц при работе с большими объемами данных
  • Регулярно мониторьте активные блокировки в системе
  • Оптимизируйте запросы для уменьшения времени блокировок

Какие типы блокировок 1С совместимы?

S

U

X

S

+

+

-

U

+

-

-

X

-

-

-

Обозначения:

  • S — разделяемая блокировка (чтение).
  • U — блокировка обновления (которая установлена в запросе конструкцией «ДЛЯ ИЗМЕНЕНИЯ»).
  • X — исключительная блокировка (на запись).

Частые вопросы о блокировках в 1С

Какие основные типы блокировок существуют в 1С?

В 1С используются объектные (оптимистические и пессимистические) и транзакционные блокировки (автоматические и управляемые). Объектные работают на уровне платформы 1С, транзакционные - на уровне СУБД.

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

Для решения конфликтов необходимо определить тип блокировки через мониторинг СУБД, сократить время транзакций, оптимизировать запросы. В экстренных случаях используется команда KILL с указанием ID сессии.

Чем отличаются оптимистические и пессимистические блокировки?

Пессимистические блокировки предотвращают одновременное редактирование объекта, оптимистические - позволяют редактирование, но проверяют версии объектов при сохранении и выдают ошибку при конфликте.

Какие блокировки совместимы между собой в 1С?

Совместимы только блокировки типа S (разделяемые) между собой и с U (обновления). Блокировки X (исключительные) не совместимы ни с какими другими типами блокировок.

Как настроить автоматическое удаление блокировок в 1С?

В разделе "Администрирование" → "Регламентные и фоновые задания" можно настроить автоматическое управление блокировками. Для разных СУБД рекомендуются различные уровни изоляции транзакций.

Какие инструменты мониторинга блокировок доступны?

Для мониторинга используются: системные представления СУБД (sys.dm_tran_locks в MS SQL), встроенные средства 1С, сторонние утилиты для анализа производительности и диагностики блокировок.


Подпишитесь на рассылку:

Получайте подборку полезных материалов по тематике 1C и бизнес-кейсов. Будьте в курсе всех новых событий!

Остались вопросы?

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

Иконка письма