Блокировки
| Тип-одиночка Стд::Сущности::Блокировки::Блокировки Базовые типы: Объект |
| Доступность: Сервер |
Иерархия типа
graph TD;
Блокировки["Блокировки"]-->Объект["Объект"];
Средство выполнения запросов на установку блокировок данных.
Пример
Блокировки.Заблокировать(новый Товары.Блокировки.Ссылка(Ссылка = СсылкаНаТовар))
// Блокировка всего пространства Товары.Ссылка
Блокировки.Заблокировать(новый Товары.Блокировки.Ссылка())
Сравнение ссылочное
Методы
Заблокировать
Заблокировать(Блокировка: БлокировкаДанных)| Доступность: Сервер |
| Перегрузка: Заблокировать(Блокировки: ЧитаемаяКоллекция<БлокировкаДанных>) |
Вспомогательная перегрузка для вызова Заблокировать(ЧитаемаяКоллекция<БлокировкаДанных>) с одним значением.
Заблокировать
Заблокировать(Блокировки: ЧитаемаяКоллекция<БлокировкаДанных>)| Доступность: Сервер |
| Перегрузка: Заблокировать(Блокировка: БлокировкаДанных) |
Выполняет запрос на установку переданных блокировок данных. Если коллекция пустая - никаких действий выполнено не будет. Метод можно вызывать только в транзакции (если транзакция не активна, то кидается исключение ИсключениеНетАктивнойТранзакции). Если не удалось установить блокировки (по причине конфликта с уже установленными блокировками), то кидается исключение ИсключениеКонфликтБлокировок. Установленная блокировка сама по себе не препятствует изменению или чтению данных, только препятствует установке других пересекающихся с ней блокировок из других транзакций. Блокировки, установленные из одной транзакции никогда не конфликтуют. При необходимости установить несколько блокировок, рекомендуется делать это одним вызовом Заблокировать (а не по одному вызову на каждую блокировку), это позволяет:
- снизить вероятность взаимоблокировки (deadlock)
- повысить эффективность, особенно в случае будущего кластерного варианта развёртывания