Здравствуйте.
1С 8.1. Древнющая УТ 10.1. Клиент-серверный вариант.
В конфигурации включен управляемый режим управления блокировками базы данных.
В последнее время заметил плохую вещь: есть регламентное задание в котором делается запрос к РН ЗаказыПокупателейОстатки, РН ТоварыНаСкладахОстатки.
Так вот если в это время проводится документ затрагивающий эти регистры - то срабатывает блокировка.
Как это обойти?
Неужели в момент обычного обращения запросом к РН таблица блокируется?
Спасибо за помощь!
Разве в 8.1 и УТ 10 есть управляемый режим блокировки?
В любом случае, попробуйте обновить платформу хотя бы на 8.2.19
В управляемом режиме блокировки, при выполнении запроса данные не блокируются.
Посмотрите, какой режим блокировки установлен на регистре и документе.
В регистрах стоит автоматический режим управления блокировками.
Перейти на 8.2 нет вообще никакой возможности - в режиме совместимости все ужасно начинает тормозить, СУБД около 200 Гб весит. А переписывать сейчас нет ресурсов - на 95% от конфигурации не осталось ничего.
(5) управляемый режим в 8.1 не работает, не смотря на то что включить его можно. тормозит он жутко. нормально он начинает работать с версии платформы 8.2.19 и без режима совместимости.
если вам нужно решить свою проблему то нужно двигаться именно в этом направлении.
просто так отключить режим нельзя, нужно переписывать код согласно статье на итс.
(2) блокируются, просто очень быстро высвобождаются.
Самое простое это пересмотреть логику рег заданий и не выбирать данные такими большими порциями, что блокируется вся таблица.
Посмотреть профайлером планы выполнения запросов, может со временем они стали неактуальны или использованные индексы неселективны.
Выжать прирост производительности можно даже в таком "запущенном" случае.
Спасибо всем!
Теперь более менее понятна хоть сама причина стала.
Единственное - блокировка возникает из-за того что:
Операция чтения остатков должна быть блокирующей
А если использовать виртуальный регистр не Остатки, а ОстаткиИОбороты - все равно как я понимаю от блокировки не уйти?
И самое главное: в самом запросе я не указываю Блокировать получаемые данные для последующего изменения (в конструкторе запроса на вкладке дополнительно) - почему тогда вообще может блокироваться таблица???