Доброго дня, коллеги!
При работе с конструкцией языка запросов 1С “ДЛЯ ИЗМЕНЕНИЯ” следует понимать особенности блокировок регистров при работе с информационной базой в варианте клиент-сервер.
Разбираем вопрос от слушателя курса Разработка и оптимизация запросов в 1С:Предприятие 8.3 :)
Вопрос
Ответ
Добрый день! Не совсем. Конструкция ДЛЯ ИЗМЕНЕНИЯ используется только в режиме автоматических блокировок. В этом режиме применяются уровни изоляции транзакций REPEATABLE READ (для объектных сущностей – справочники, документы и т.д.) и SERIALIZABLE (для необъектных сущностей – регистры) – см. статью на ИТС Управление блокировками данных в транзакции.
При использовании в тексте запроса конструкции ДЛЯ ИЗМЕНЕНИЯ в фактически исполняемом запросе на уровне MS SQL Server появится подсказка (хинт) UPDLOCK:
SELECT ... FROM _Document1 T1 WITH(REPEATABLEREAD, UPDLOCK)
P.S.
Понимать, как работают запросы и уметь их строить - обязательный навык для всех, кто дорабатывает и внедряет 1С.
После курса Вы сможете:
- Строить сложные запросы с несколькими источниками данных
- Уверенно задействовать вложенные запросы и временные таблицы
- Использовать встроенный язык для обработки результатов запроса
- Учитывать особенности соединений и объединений нескольких таблиц.
- Разрабатывать запросы на уровне задач Аттестации 1С:Специалист по платформе.