Данный инструмент создавался в первую очередь для слушателей курса по оптимизации, для демонстрации, какие блокировки, когда и на что будут установлены.
Инструмент не является конкурентом для ЦУП или облачного сервиса анализа блокировок, он предназначен в первую очередь для обучения и ознакомления с работой блокировок, а не для анализа ожиданий на блокировках.
Все инструменты на текущий момент показывают только информацию постфактум, когда ожидание уже случилось. Данный инструмент показывает ситуацию на текущий момент.
В некоторых случаях обработка может использоваться и для задач по оптимизации. Например, при переводе конфигурации на упр. режим, можно будет легко и быстро посмотреть, на какие именно записи была наложена управляемая блокировка.
Также можно в моменте посмотреть, что именно сейчас блокирует каждый из пользователей, и кто кого ждет.
Сразу скажу что обработка работает не быстро, но такая цель и не ставилась. При этом следует учитывать, что работа возможна только с СУБД MS SQL Server и только в управляемом приложении.
Если ожидание идет на сервере СУБД, тогда можно увидеть, на каком именно ресурсе идет ожидание, в колонке статус будет значение «Ожидание». Для блокировок 1С посмотреть, на чем идет ожидание, не получится, т.к. сервер 1С просто не пишет эту информацию в логи в момент ожидания, она туда попадает только после того, как ожидание завершится.
Для использования обработки необходимо сначала заполнить настройки.
Обработку надо обязательно открывать в той же базе, блокировки которой вы хотите посмотреть.
Если вы хотите видеть информацию по управляемым блокировкам, тогда необходимо включить флаг «Отображать блокировки 1С». Следует учитывать, что этот функционал является тестовым, возможны ошибки при отображении, когда пользователей несколько, к тому же блокировки будут отображаться только если в кластере один сервер.
Через 60 сек. будет включен технологический журнал, и данные об установленных управляемых блокировках начнут собираться.
Для отображения данных необходимо нажать «Обновить».
В данном случае видно, что администратором наложены как блокировки СУБД, так и блокировки 1С (выделены жирным).
Если блокировка СУБД наложена на кластерный индекс, тогда можно посмотреть, какие именно записи заблокированы, сделав двойной клик. При этом в таблице ниже будут отображены все заблокированные записи в терминах 1С. Например, здесь видно, что в таблице итогов регистра ТоварныеЗапасы заблокирована одна строка с итогом за октябрь и одна строка с текущими итогами.
Если блокировка СУБД наложена на некластреный индекс, тогда, к сожалению, заблокированные записи посмотреть не получится.
Если это блокировка 1С, тогда независимо от пространства блокировок можно будет всегда посмотреть, что именно заблокировано.
При желании можно включить отображение служебных блокировок СУБД (флаг «Отображать блокировки намерения и стабильности схемы»). Мне сложно представить, кому и зачем на практике может понадобиться этот флаг, разве что таким же маньякам, как я :)
Хотя, возможно, кто-то будет к 1С:Эксперт готовиться и захочет «потрогать руками» служебные блокировки СУБД, а то про них говорят и спрашивают, но никто не показывает.
На данном рисунке ясно видно блокировку намерения на страницу и таблицу.
Если в момент нажатия кнопки Обновить в базе было ожидание на блокировке, то это будет отображено в верхней таблице.
Данный рисунок показывает, что продавец ждет администратора, при этом можно поглядеть установленные блокировки обоих пользователей.
Если вы используете управляемый режим блокировок, то не удивляйтесь, что на уровне СУБД обработка почти всегда будет показывать только X блокировки. Просто S блокировки будут сниматься сразу после чтения, не дожидаясь конца транзакции, поэтому верятность их поймать крайне низка.
В автоматическом режиме блокировок работать с обработкой интереснее, например, можно поставить точку останова после Запрос.Выполнить() в транзакции и посмотреть, какие именно записи заблокировал этот запрос. Если запрос заблокировал лишнее (то что не подходит под его условия), вы сразу это увидите.
Надеюсь, что данная обработка поможет вам лучше понять работу блокировок на практике и сподвигнет на самостоятельные эксперименты в этой области. Особенно это будет полезно при подготовке к экзамену 1С:Эксперт.
UPD. 02.05.2020 Исправлены ошибки при отображении блокировок 1С и отображении дерева пользователей.