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

Конфигурация 1С:Предприятия 8 может работать в одном из трех режимов управления блокировками в транзакции:

В автоматическом режиме управления блокировками данных используются уровни изоляции транзакций repeatable read и serializable, обеспечиваемые системой управления базами данных. Эти уровни изоляции транзакций обеспечивают согласованное и целостное чтение данных, и от разработчика не требуется каких-либо дополнительных действий по управлению блокировками.

Управляемый режим позволяет повысить параллельность работы пользователей в клиент-серверном варианте работы за счет использования более низкого уровня изоляции транзакций базы данных (Read Committed). При записи данных в транзакции объекты встроенного языка автоматически блокируют необходимые данные. Разработчику требуется управлять блокировками данных в тех случаях, когда бизнес-логика требует согласованного и целостного чтения данных в транзакции.

Автоматический и управляемый режим позволяет использовать возможность управления блокировками в транзакции только для некоторых объектов конфигурации. Этот режим может использоваться для оптимизации параллельности работы пользователей с отдельными прикладными объектами (например, с несколькими наиболее интенсивно используемыми документами) или для постепенного перевода больших конфигураций в режим управления блокировками в транзакции.

В сводном виде отличия при работе в режиме автоматических блокировок и в режиме управляемых блокировок приведены в следующей таблице:

Режим
блокировки
в транзакции
СУБД
Файловая
база
данных
MS SQL Server
PostgreSQL
Автоматический Вид
блокировок
Таблиц
Записей
Таблиц
Уровень
изоляции
транзакций
Serializable
Repeatable Read
или
Serializable
Read Committed
Управляемый Вид
блокировок
Таблиц
Записей
Записей
Уровень
изоляции
транзакций
Serializable
Read Committed
Read Committed

Ниже приведен пример управления блокировками данных при чтении данных регистра накопления "УчетНоменклатуры" в обработке проведения документа РасходнаяНакладная: