Помогите разобраться с блокировкой при выполнении запроса. В запросе получаю остатки по регистру накоплений ЗаказПокупателя по одному заказу покупателя, получаю блокировку всей таблицы регистра накопления. Как обойти блокировку всего регистра?
---
И проверь на всякий случай, в каком режиме изоляции транзакций работает база. Где-то на просторах встречал, как это можно сделать. Ну, чтобы "read committed snapshot" было для неблокирующего чтения.
---
А база не файловая случаем?
---
Если немножко подумать, то можно догадаться предоставить чуть больше информации об окружении, в котором возникает проблема.
---
Прошу прощения

Вот сам запрос:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Док.НомерСтроки КАК НомерСтроки,
    | Док.Номенклатура КАК Номенклатура,
    | Док.Номенклатура.Услуга КАК Услуга,
    | Док.Номенклатура.Набор КАК Набор,
    | Док.Номенклатура.Комплект КАК Комплект,
    | Док.Количество * Док.Коэффициент / Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Количество,
    | Док.Цена КАК Цена,
    | Док.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    | Док.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    | Док.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
    | Док.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
    | Док.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
    | Док.Сумма КАК Сумма,
    | ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) КАК СтавкаНДС,
    | 0 КАК НДС,
    | 0 КАК СуммаБезНДС,
    | Док.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | Док.Размещение КАК Размещение,
    | Док.Размещение.ВидСклада КАК ВидСкладаРазмещения,
    | Док.СерияНоменклатуры КАК СерияНоменклатуры,
    | Док.КлючСтроки КАК КлючСтроки,
    | Док.Ответственный КАК Ответственный,
    | Док.Номенклатура.ВидНоменклатуры.ТипНоменклатуры КАК ТипНоменклатуры,
    | Док.ТК_ПокаНеЗаказывать КАК ТК_ПокаНеЗаказывать,
    | ЗаказыПокупателейОстатки.КоличествоОстаток,
    | ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток,
    | ЗаказыПокупателейОстатки.СуммаУпрОстаток,
    | Док.СпособПолучения,
    | ЗаказыПокупателейОстатки.ДоговорКонтрагента
    |ИЗ
    | РегистрНакопления.ЗаказыПокупателей.Остатки(&Дата, ЗаказПокупателя = &ДокументСсылка) КАК ЗаказыПокупателейОстатки
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК Док
    | ПО ЗаказыПокупателейОстатки.ЗаказПокупателя = Док.Ссылка
    | И ЗаказыПокупателейОстатки.Номенклатура = Док.Номенклатура
    | И ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры = Док.ХарактеристикаНоменклатуры
    |ГДЕ
    | Док.Ссылка = &ДокументСсылка
    | И ЗаказыПокупателейОстатки.КоличествоОстаток > 0
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | Док.НомерСтроки,
    | Док.Номенклатура,
    | Док.Номенклатура.Услуга,
    | Док.Номенклатура.Набор,
    | Док.Номенклатура.Комплект,
    | Док.Количество,
    | Док.Цена,
    | НЕОПРЕДЕЛЕНО,
    | Док.ПроцентСкидкиНаценки,
    | Док.ПроцентАвтоматическихСкидок,
    | Док.УсловиеАвтоматическойСкидки,
    | Док.ЗначениеУсловияАвтоматическойСкидки,
    | Док.Сумма,
    | ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС),
    | 0,
    | 0,
    | НЕОПРЕДЕЛЕНО,
    | НЕОПРЕДЕЛЕНО,
    | НЕОПРЕДЕЛЕНО,
    | НЕОПРЕДЕЛЕНО,
    | НЕОПРЕДЕЛЕНО,
    | Док.Ответственный,
    | Док.Номенклатура.ВидНоменклатуры.ТипНоменклатуры,
    | Док.ТК_ПокаНеЗаказывать,
    | ЗаказыПокупателейОстатки.КоличествоОстаток,
    | ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток,
    | ЗаказыПокупателейОстатки.СуммаУпрОстаток,
    | Док.СпособПолучения,
    | ЗаказыПокупателейОстатки.ДоговорКонтрагента
    |ИЗ
    | РегистрНакопления.ЗаказыПокупателей.Остатки(&Дата, ЗаказПокупателя = &ДокументСсылка) КАК ЗаказыПокупателейОстатки
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Услуги КАК Док
    | ПО ЗаказыПокупателейОстатки.ЗаказПокупателя = Док.Ссылка
    | И ЗаказыПокупателейОстатки.Номенклатура = Док.Номенклатура
    |ГДЕ
    | Док.Ссылка = &ДокументСсылка
    | И ЗаказыПокупателейОстатки.КоличествоОстаток > 0
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтроки";

    Запрос.УстановитьПараметр("Дата", Дата);
    Запрос.УстановитьПараметр("ДокументСсылка", Заказ);
    ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
```

и после выгрузки результата получаю блокировку всей таблицы РН
---
<тяжелый вздох>

1. Версия платформы?
2. Файловая/клиент-сервер?
3. Если клиент-сервер, какая СУБД?
4. Блокировки автоматические/управляемые?
5. Запрос в транзакции или нет?
6. Блокировку получаете на чтение или на запись?
7. Каким образом определяли диапазон блокировки?
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
(5)
1) 8.3.10.2299
2) клиент-сервер
3) SQL (13.0.4224.16)
4)Управляемые
5) В обработке проведения
6) на запись
7) через обработку "Текущие блокировки MS SQL Server и 1C"
---
Режим блокировки "Х" - это типа эксклюзивная?
Очень странно.
Уверен, что дело в этом запросе?
Может, проводимый документ - регистратор в заказах покупателей?
---
Может, проводимый документ - регистратор в заказах покупателей?

Он регистратор, но до этой строчки блокировка идет на запись и сразу после накладывается на всю таблицу
---
Похоже,что запрос служит "последней каплей" для принятия решения об эскалации. Может, к этому моменту уже "наложена большая куча" эксклюзивных блокировок на строки? Но да - поведение неочевидное.
---
И проверь на всякий случай, в каком режиме изоляции транзакций работает база. Где-то на просторах встречал, как это можно сделать. Ну, чтобы "read committed snapshot" было для неблокирующего чтения.
---
Видимо про эту статью https://infostart.ru/public/91879/

Сделал как там описано, вроде все получилось, буду тестировать дальше. Спасибо
---
Вообще, странно. Если база создавалась не в режиме совместимости с 8.2, то оно из коробки должно быть как надо.
---
Да стоит совместимость 8.2
Древняя УТ 10.3
---
Тогда проанализируй возможность повышения режима совместимости до 8.3, а то слыхал что опять слететь может. Сам я особо с таким не сталкиваюсь, так как я последнее время на postgres в основном, а там MVCC врожденный.