Просмотр заблокированных строк в 1С

02.05.20

База данных - HighLoad оптимизация

Ввиду своей деятельности, мне часто приходится рассказывать про различные аспекты оптимизации и в том числе про блокировки. Очень часто слушатели задают следующие вопросы: Как посмотреть в реальном времени, какие именно данные сейчас заблокированы? Как понять, что сейчас заблокировано в терминах 1С? Если гранулярность блокировки страница, как увидеть, какие данные в ней находятся? Раньше приходилось отвечать, что инструмента, который показывает все вышеописанное, сейчас просто нет. Но потом мне это надоело, и я решил сделать собственный инструмент, который позволяет ответить на все вышеописанные вопросы.

Скачать файлы

Наименование Файл Версия Размер
Просмотр заблокированных строк в 1С:
.epf 247,85Kb
462
.epf 247,85Kb 462 Скачать

Данный инструмент создавался в первую очередь для слушателей курса по оптимизации, для демонстрации, какие блокировки, когда и на что будут установлены. 

Инструмент не является конкурентом для ЦУП или облачного сервиса анализа блокировок, он предназначен в первую очередь для обучения и ознакомления с работой блокировок, а не для анализа ожиданий на блокировках.

Все инструменты на текущий момент показывают только информацию постфактум, когда ожидание уже случилось. Данный инструмент показывает ситуацию на текущий момент.

В некоторых случаях обработка может использоваться и для задач по оптимизации. Например, при переводе конфигурации на упр. режим, можно будет легко и быстро посмотреть, на какие именно записи была наложена управляемая блокировка. 

Также можно в моменте посмотреть, что именно сейчас блокирует каждый из пользователей, и кто кого ждет.  

Сразу скажу что обработка работает не быстро, но такая цель и не ставилась. При этом следует учитывать, что работа возможна только с СУБД MS SQL Server и только в управляемом приложении.

Если ожидание идет на сервере СУБД, тогда можно увидеть, на каком именно ресурсе идет ожидание, в колонке статус будет значение «Ожидание». Для блокировок 1С посмотреть, на чем идет ожидание, не получится, т.к. сервер 1С просто не пишет эту информацию в логи в момент ожидания, она туда попадает только после того, как ожидание завершится.

Для использования обработки необходимо сначала заполнить настройки.

 

Обработку надо обязательно открывать в той же базе, блокировки которой вы хотите посмотреть.

Если вы хотите видеть информацию по управляемым блокировкам, тогда необходимо включить флаг «Отображать блокировки 1С». Следует учитывать, что этот функционал является тестовым, возможны ошибки при отображении, когда пользователей несколько, к тому же блокировки будут отображаться только если в кластере один сервер. 

Через 60 сек. будет включен технологический журнал, и данные об установленных управляемых блокировках начнут собираться. 

Для отображения данных необходимо нажать «Обновить».

В данном случае видно, что администратором наложены как блокировки СУБД, так и блокировки 1С (выделены жирным). 

Если блокировка СУБД наложена на кластерный индекс, тогда можно посмотреть, какие именно записи заблокированы, сделав двойной клик. При этом в таблице ниже будут отображены все заблокированные записи в терминах 1С. Например, здесь видно, что в таблице итогов регистра ТоварныеЗапасы заблокирована одна строка с итогом за октябрь и одна строка с текущими итогами.

Если блокировка СУБД наложена на некластреный индекс, тогда, к сожалению, заблокированные записи посмотреть не получится.

Если это блокировка 1С, тогда независимо от пространства блокировок можно будет всегда посмотреть, что именно заблокировано.

При желании можно включить отображение служебных блокировок СУБД (флаг «Отображать блокировки намерения и стабильности схемы»). Мне сложно представить, кому и зачем на практике может понадобиться этот флаг, разве что таким же маньякам, как я :)

Хотя, возможно, кто-то будет к 1С:Эксперт готовиться и захочет «потрогать руками» служебные блокировки СУБД, а то про них говорят и спрашивают, но никто не показывает.

На данном рисунке ясно видно блокировку намерения на страницу и таблицу.

Если в момент нажатия кнопки Обновить в базе было ожидание на блокировке, то это будет отображено в верхней таблице.

Данный рисунок показывает, что продавец ждет администратора, при этом можно поглядеть установленные блокировки обоих пользователей.

Если вы используете управляемый режим блокировок, то не удивляйтесь, что на уровне СУБД обработка почти всегда будет показывать только X блокировки. Просто S блокировки будут сниматься сразу после чтения, не дожидаясь конца транзакции, поэтому верятность их поймать крайне низка. 

В автоматическом режиме блокировок работать с обработкой интереснее, например, можно поставить точку останова после Запрос.Выполнить() в транзакции и посмотреть, какие именно записи заблокировал этот запрос. Если запрос заблокировал лишнее (то что не подходит под его условия), вы сразу это увидите.

Надеюсь, что данная обработка поможет вам лучше понять работу блокировок на практике и сподвигнет на самостоятельные эксперименты в этой области. Особенно это будет полезно при подготовке к экзамену 1С:Эксперт.

 

UPD. 02.05.2020 Исправлены ошибки при отображении блокировок 1С и отображении дерева пользователей.

блокировки текущие

См. также

Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    2402    spyke    25    

38

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    7357    149    ZAOSTG    66    

95

Удаление строк из таблицы значений различными способами с замером производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    5766    doom2good    48    

63

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    8589    ivanov660    6    

75

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    4999    a.doroshkevich    20    

72

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    15962    skovpin_sa    14    

98

Как эффективно настроить autovacuum в Postgres для 1С

HighLoad оптимизация Администрирование СУБД Платформа 1С v8.3 Бесплатно (free)

Кто не любит убирать мусор? Думаю, практически все, а вот в Postgres это обязательный ритуал для эффективной работы. Как эффективно настроить уборку за 1С в Postgres, можно прочитать в этой статье и еще раз задуматься о бесплатности Postgres.

05.08.2023    4974    1CUnlimited    5    

51
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. WellMaster 104 26.10.16 09:59 Сейчас в теме
Просто пытаюсь открыть обработку:

{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(1033,12)}: Процедура или функция с указанным именем не определена (ПолучитьТаблицуДанныхПоСтрокеSQL)
			Возврат <<?>>ПолучитьТаблицуДанныхПоСтрокеSQL(СтруктураПараметров);
{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(1035,12)}: Процедура или функция с указанным именем не определена (ПолучитьТаблицуДанныхПоСтраницеSQL)
			Возврат <<?>>ПолучитьТаблицуДанныхПоСтраницеSQL(СтруктураПараметров);
{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(1603,17)}: Процедура или функция с указанным именем не определена (ПолучитьТаблицуЛоговТЖ)
	ТаблицаЛогов = <<?>>ПолучитьТаблицуЛоговТЖ();
3. Andreynikus 1360 26.10.16 10:42 Сейчас в теме
(1) WellMaster, обработка написана только под управляемое приложение. При запуске в обычном приложении будет описанная вами ошибка.
2. DenisCh 26.10.16 10:08 Сейчас в теме
Обратись к автору обработки
4. starik-2005 3031 27.10.16 13:38 Сейчас в теме
Как я понял, обработка показывает текущие блокировки СУБД (MS SQL) и уже завершившиеся блокировки 1С? Для первого, в принципе, можно в менеджмент студио правой кнопкой на базе и в отчетах найти соответствующий отчет по блокировкам. Я так понимаю, что основной плюс - это получение имени объекта в 1С?
5. Andreynikus 1360 27.10.16 22:01 Сейчас в теме
(4) starik-2005,
> Как я понял, обработка показывает текущие блокировки СУБД (MS SQL)
Да, именно так.

> уже завершившиеся блокировки 1С
Нет, показываются установленные но не завершившиеся блокировки 1С

> Для первого, в принципе, можно в менеджмент студио правой кнопкой на базе и в отчетах найти соответствующий отчет по блокировкам.

Если имеется ввиду отчет «Все блокирующие транзакции» то это не так. В отчете вы увидите только то, что одна транзакция блокирует другую. На какие строки наложена блокировка там не указано, на какой ресурс тоже не указано, даже тип блокировки не указан. На практике этот отчет почти бесполезен.
adhocprog; tormozit; +2 Ответить
21. nvv1970 09.10.17 07:51 Сейчас в теме
(5) информация по блокировкам 1с получается из ТЖ или с сервера приложения?
Меня самого часто просят посмотреть "что и кто прямо сейчас блокирует"... Мне представляется более удобным и качественным расследовать инциденты по истории блокировок в ТЖ, т.е. с некоторой статистикой по блокировкам за интервал времени. А сию секундный срез информации обладает лишь частичной пользой. Скорее это инструмент для выявления и "ликвидации" виновника (завершения сеанса)
22. Andreynikus 1360 09.10.17 11:33 Сейчас в теме
(21)
Информация об управляемых транзакционных блокировках 1С берется из ТЖ т.к. сейчас это единственный источник такой информации.
Это инструмент скорее для изучения блокировок, чем для реального анализа проблем, я об этом писал в статье.
6. ture 606 01.12.16 16:46 Сейчас в теме
(0) 1С держит все блокировки на сервере СУБД?
Заблокировать() и если пользователь форму открывает и начинает редактировать туда же?
8. Andreynikus 1360 04.12.16 14:27 Сейчас в теме
(6)
Нет конечно, блокировки 1С находятся на сервере приложений, именно их обработка и показывает если включить флаг.
9. Andreynikus 1360 04.12.16 14:30 Сейчас в теме
(6)
Блокировки 1С на сервере приложений, блокировки СУБД на сервере СУБД. Обработка может показывать и то и другое.
7. ture 606 02.12.16 08:59 Сейчас в теме
Выбор эксперта на инфостарте стал не объективным.
10. Andreynikus 1360 04.12.16 14:33 Сейчас в теме
(7)
Напишите поподробнее, что вы имеете ввиду?
11. it@medipal-onko.ru 28.01.17 14:47 Сейчас в теме
Можно ли здесь увидеть блокировки Регламентных заданий сервера 1С?
12. Andreynikus 1360 28.01.17 22:20 Сейчас в теме
(11)
Обработка показывает транзакционные блокировки 1С и СУБД, при этом не важно кто их наложил, пользователь или регламентное задание.
13. it@medipal-onko.ru 30.01.17 11:40 Сейчас в теме
жаль, что нельзя увидеть какой пользователь заблокировал объекты...
14. Andreynikus 1360 30.01.17 23:16 Сейчас в теме
(13)
Обработка показывает пользователей которые блокируют объекты, посмотрите на скрин.
15. it@medipal-onko.ru 31.01.17 09:04 Сейчас в теме
(14) именно так. я вижу список практически всех своих пользователей (около 150) и все заблокированные объекты. Но понять, кто и что заблокировал невозможно.
16. Andreynikus 1360 31.01.17 12:19 Сейчас в теме
(15)
Эта обработка в первую очередь для тестовых баз, для анализа что именно и в каких случаях блокируется, а не для расследования проблем в боевых базах.
Вы выделяете пользователя, внизу должны отразится данные о тех объектах которые он заблокировал.
Если пользователь Б отображается вложенным в пользователя А, это значит что пользователь А заблокировал пользователя Б. На крайнем скриншоте видно что Администратор заблокировал пользователя Продовец.
17. rossoxa 164 14.06.17 21:08 Сейчас в теме
Добрый день.Подскажите пожалуйста. При попытке включить блокировки 1С получаю ошибку
Прикрепленные файлы:
18. Andreynikus 1360 15.06.17 01:35 Сейчас в теме
(17)
Как бы глупо это не звучало, но проверьте что у пользователя под которым запущена служба 1С есть доступ в этот каталог conf на чтение и запись. Если у вас rphost запускается под своим пользователем, то проверьте под ним.
19. EmpireSer 26.09.17 16:10 Сейчас в теме
Ошибка в обработке:
Логина и пароля от SQL может не быть, так как MS SQL может работать по доменной авторизации.

Из-за этого вот тут тест проходит успешно
	// тестируем подключение sql
	СоединениеSQL = ОбработкаОбъект.СоздатьВнешнееПодключение(ПараметрыПодключения,10);
	Если СоединениеSQL <> Неопределено Тогда
		Сообщить("Подключение к серверу СУБД прошло успешно", СтатусСообщения.Информация);
	КонецЕсли;

А тут получаем проблему
	Если НЕ НастройкиЗаполнены() Тогда
		ОткрытьФормуМодально("ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.Форма.ФормаНастроек");
		Возврат;
	КонецЕсли;
20. Andreynikus 1360 08.10.17 09:52 Сейчас в теме
(19)
Сейчас доменная авторизация в обработке не предусмотрена. Пока можно специально завести на сервере СУБД учетную запись и подключаться под ней.
23. user665952_a.karuna 03.11.17 13:19 Сейчас в теме
хорошая обработка, а под оракл когда-нибудь такая появится? или может уже есть?
24. Andreynikus 1360 04.11.17 11:29 Сейчас в теме
(23)
Может и есть, я не в курсе, хотя там СУБД версионник и как там получать список текущих блокировок не очень понятно.
В любом случае можно доработать обработку таким образом, что бы она фиксировала только управляемые блокировки, они не зависят от СУБД.
25. Novicad 2 21.11.17 06:28 Сейчас в теме
настройки кластера 1С, не проходит авторизация. Имя и пароль верные, админа 1С конфигурации?
27. harisov_r 26 11.01.18 15:58 Сейчас в теме
(25) эх, Александр догадался, а сюда не написал - у меня тоже не проходило соединение с Кластером, пока не наткнулся на фразу к описанию в другой обработке: если кластер без ограничения доступа, то следует писать так: Агент.Authenticate(Кластер, , );
и я понял, что на моем ноутбуке при установке я не делал пароль и логин для администратора кластера, поэтому имя и пароль администратора кластера надо оставить пустыми :о)
26. Novicad 2 21.11.17 06:29 Сейчас в теме
28. Xershi 1473 19.06.18 13:26 Сейчас в теме
При тестировании подключения пишет, что нужно проделать настройку по статье: https://infostart.ru/public/197627/
Сервер 1С 64-битный.
Выполнил настройку, но сервер не перезапускал.
Есть методы без этих манипуляций?
29. Andreynikus 1360 20.06.18 12:05 Сейчас в теме
(28)
Тут дело не в обработке, а в COM - конекторе, если он не работает, то и остальное работать не будет.
30. Xershi 1473 20.06.18 14:28 Сейчас в теме
(29) это понятно что не в обработке. Может нашли способ без создания обертки или без перезагрузки сервера хотя бы.
31. kar911 28.06.18 15:14 Сейчас в теме
Подскажите что не так делаю, ввел настройки, проверил подключение, подключился успешно. Поставил все галочки, нажал обновить но данных так никакие и не отобразило кроме списка пользователей.
32. Andreynikus 1360 29.06.18 17:57 Сейчас в теме
(31)
Возможно имя базы данных отличается от имени информационной базы.
33. kar911 29.06.18 18:12 Сейчас в теме
(32)ну да отличается, но ведь подключение проходит успешно
34. Andreynikus 1360 29.06.18 18:20 Сейчас в теме
(33)
Я имею ввиду, что в настройках обработки нужно указывать именно ту базу данных, которая указана в свойствах информационной базы 1С.
И еще следует учитывать тот факт, что обработка показывает только заблокированные строки на момент нажатия кнопки. Если ничего не заблокировано, то обработка ничего не покажет.
35. Xershi 1473 29.06.18 23:48 Сейчас в теме
Переписал вашу обработку на обычные формы, чтобы не нужно было создавать обертку для 64-битного сервера.
Кстати для таких случаев стоит предусмотреть использование названия через реквизит. Плюс таблицу "Пользователи" переименовал в "ТаблицаПользователи", т.к. в типовых есть одноименный общий модуль!
36. Andreynikus 1360 30.06.18 09:06 Сейчас в теме
(35)
Отлично, я как раз за то что бы обработка развивалась! Буду рад если выложите свою версию в комментариях, возможно это поможет кому-то еще.
37. TerveRus 21.08.18 09:56 Сейчас в теме
(35) как раз не получилось на конфигурации с обычными формами и 64 битным сервером запустить. Поделитесь?
38. Xershi 1473 21.08.18 10:28 Сейчас в теме
(37) планирую сделать публикацию, как только будет протестирована обработка. Сообщу как будет готова!
39. Pawlick 10 03.10.18 14:09 Сейчас в теме
Добрый день.
Скачал обработку, настроил, обертку создал, все ок.

Но при попытке обновить данные ошибка:

"Ошибка при выполнении запроса SQL. {ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(106)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][SQL Server]Контекст базы данных изменен на "ca_mss_second"."

Не подскажите в чем может быть проблема?
40. Andreynikus 1360 05.10.18 10:47 Сейчас в теме
(39)
Проверьте что у пользователя СУБД которого вы указали есть необходимые права для подключения к вашей базе. Это первое что приходит на ум.
41. WellMaster 104 22.10.18 12:04 Сейчас в теме
Долго бился с ошибкой подключения к кластеру 1с, пока не зарегистрировал длл-ку следующим методом (во вложении на картинке). Запуск командной строки от имени администратора.
Обертку в COM+ как в статье https://infostart.ru/public/197627/ не использовал.
Прикрепленные файлы:
Xershi; Andreynikus; +2 Ответить
44. Xershi 1473 30.01.19 21:47 Сейчас в теме
(41) спасибо!
Дублирую текстом:
c:\Windows\SysWOW64\regsvr32 "c:\Program Files\1cv8\8.3.13.1644\bin\comcntr.dll"

Останется только версию платформы подменить!
45. Xershi 1473 30.01.19 21:50 Сейчас в теме
(44) увы, что в 32-битной клиенте, что в 64-битном на УФ:
Не зарегистрирована компонента comcntr.dll: {ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(408)}: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса
В моей доработке для ОФ конечно код выполняется на 32-битном режиме и обработка запускается...
42. lemilk 2 30.01.19 16:34 Сейчас в теме
К серверу 1С на Ubuntu + PostgreSQL эту обработку можно приспособить?
43. Andreynikus 1360 30.01.19 20:35 Сейчас в теме
(42)
Если смотреть только управляемые блокировки тогда можно.
Если сервер 1С на Ubuntu то возможно потребуются танцы с бубном, но код открыт, так что все в ваших руках.
46. vova196 31 05.02.19 13:18 Сейчас в теме
В описании указано что для 8.х, но под 8.2 - не запускается.
Текст ошибки
47. Kinestetik 23 26.02.19 18:23 Сейчас в теме
(46), в 8.2 ещё не было таких инструкций препроцессора как "#Область", она появилась только в 8.3

Пройдитесь глобальной заменой по всей обработке и сделайте:

#Область заменить на //#Область
#КонецОбласти заменить на //#КонецОбласти

После этого ошибок быть не должно
dimaster; +1 Ответить
48. Franchiser 47 07.05.19 21:28 Сейчас в теме
При активизации пользователя в верхней таблице можно увидеть в нижней блокировки выделенного пользователя?
если нет, то как сопоставить блокировки с их инициаторами?
49. Andreynikus 1360 12.05.19 13:38 Сейчас в теме
(48)
Да, все верно. При выборе пользователя отображаются только те блокировки которые наложил именно он.
50. Franchiser 47 13.05.19 12:29 Сейчас в теме
(49) у меня не отображаются блокировки конкретного пользователя, всегда видны все блокировки без фильтра
52. Andreynikus 1360 13.05.19 14:29 Сейчас в теме
(50)
А у других пользователей точно есть наложенные в этот момент блокировки?
Обработка отображает только те блокировки, которые существовали в момент нажатия кнопки.
53. Franchiser 47 14.05.19 11:18 Сейчас в теме
(52) да, блокировки показывает по выделенному пользователю, но после нажатия кнопки активизируется всегда первая строка "все пользователи". Т.о. не понятно по кому смотрим блокировки.
54. Andreynikus 1360 14.05.19 11:36 Сейчас в теме
(53)
При нажатии кнопки, список всех блокировок для всех пользователей получается заново так и было задумано т.к. для моих целей этого достаточно.
Если вы хотите по нажатию на кнопку получать блокировки только выделенного пользователя, тогда можете просто дописать обработку, код полностью открыт.
51. Franchiser 47 13.05.19 12:32 Сейчас в теме
После нажатия на кнопку обновить активизируется строка "Все пользователи".
55. yabesabs 21.05.20 10:51 Сейчас в теме
Андрей, добрый день. А подскажите, пожалуйста, нет ли версии этой обработки, которая выполняет запрос SQL не на стороне сервера, а на стороне клиента (функцию ВыполнитьЗапросSQL() в случае этой обработки)? У меня нет доступа на сервер SQL (по правилам СБ), но при windows аутентификации со стороны клиента я могу выполнять запросы SQL. Я пытался доработать вашу обработку, но понял, что это достаточно сложная задача.
56. Andreynikus 1360 22.05.20 00:07 Сейчас в теме
(55) не очень понял что именно вы имеете ввиду под клиентом, сервер 1С?
В параметрах есть возможность Win аутентификации.
Прямой запрос выполняется только на СУБД через подключение для которого нужны логин и пароль. У вас же сервер 1С как то цепляется к СУБД, в свойствах ИБ на сервере прописан логин.
57. yabesabs 22.05.20 11:24 Сейчас в теме
(56) Я прикрепил картинку с настройками: произошло подключение и к SQL серверу и к 1С. Так как у нас Win аутентификация, логин и пароль я не вводил, пришлось в коде закомментить проверку на обязательное заполнение логина и пароля.

Но теперь при нажатии на кнопку "Обновить" возникает следующая ошибка:
"Ошибка при выполнении запроса SQL. {ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(106)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][SQL Server]Changed database context to 'Besschetnov_Kursy1C'."

В приложенном файле видно где возникает ошибка и сам запрос, который выполняется (см. рис.)

Так вот я писал, что если этот запрос выполнить не в модуле объекта (на сервере), а в модуле формы (&НаКлиенте), то запрос выполняется и ошибка не возникает. Админы написали, цитирую: "В обработке запрос выполняется на сервере под учеткой службы, права у этой службы ограничены. Если же послать этот запрос с клиента под своей учеткой, то права будут".
Прикрепленные файлы:
58. Andreynikus 1360 22.05.20 18:41 Сейчас в теме
(57)
А причем ту права доступа? Ошибка о которой вы написали с этим не связана.
Попробуйте другой способ соединения с БД например через Provider=SQLOLEDB
Там он уже есть просто в комментарии.
rpgshnik; +1 Ответить
59. Zhilyakovdr 142 12.08.20 23:08 Сейчас в теме
Добавьте в обработку ссылку на эту статью.
60. alexey_kurdyukov 155 16.12.20 14:34 Сейчас в теме
Спасибо, очень помогло
61. slknnk 65 23.12.20 02:47 Сейчас в теме
Ничего не отображает.

При нажатии на флаг "Отображать блокировки 1C" сначала ошибка модальности, но если это обойти, то ошибка доступа
При включении регистрации блокировок 1С произошла ошибка: {ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.Форма.Форма.Форма(439)}: Ошибка при вызове метода контекста (Записать): Ошибка доступа к файлу 'C:\Program Files\1cv8\8.3.18.1208\bin\conf\logcfg.xml'. Запускал под администратором - не помогло.

Неужели нельзя отладить, так чтобы хотя бы работало без ошибок.
62. Andreynikus 1360 23.12.20 09:55 Сейчас в теме
(61)
У меня работает, у многих других тоже. Код открыт, можете отладить, сделать и переделать все что вашей душе угодно.
Если нет доступа, то проверьте права на этот каталог у того пользователя под которым запущен rphost.
63. Suxar 29.01.21 14:00 Сейчас в теме
Хорошая обработка - спасибо!

Единственное чего не хватает так это номера сеанса, ну и скорость конечно не шибко быстрая.
Но в целом удобно, нашел подвисший сеанс, убил его и живи дальше.
64. Andreynikus 1360 30.01.21 15:26 Сейчас в теме
(63)
Честно говоря обработка писалась вообще не для этого. Она не для расследования блокировок на рабочих базах.
Обработка писалась для изучения и исследования того, какая блокировка в каком случае накладывается, т.е. для обучения. Так же она будет полезна при переходе с автоматического на упр. режим, если вы хотите понять что именно заблокировано вашей управляемой блокировкой.
Для получения заблокированных строк по таблице приходится ее сканировать, поэтому обработка будет работать медленно на больших базах.
Если нужны просто номера сеансов кто кого заблокировал, то можно написать свою небольшую обработку, ну или посмотреть в консоли кластера.
Дмитрий74Чел; +1 Ответить
65. Suxar 02.02.21 14:56 Сейчас в теме
(64) просто кто кого маловато, нужно понимать кто конкретную таблицу сейчас блокирует. Бывает что после наложения блокировок от клиента получаем "Программа выполнила недопустимую операцию", а сервер крайне редко понимает что клиента уже нет и держит блокировку или до убийства сеанса или до перезапуска. Пользователь то же перезапустил программу и сидит ровно, пока сам на свою блокировку не нарвётся.
Надо будет посмотреть обработку, вытащить номер сеанса и может быть упростить представление данных. В крайнем случае просто посмотрю как работать с кластером серверов. Мануал это хорошо, но работающий примерчик в чём то даже лучше.
66. Andreynikus 1360 02.02.21 17:22 Сейчас в теме
(65) буду рад если моя обработка вам поможет :)
67. gas-kostroma 10.06.21 10:23 Сейчас в теме
После перехода на 8.3.14 стала ошибка выходить типа
"{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(61)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][Shared Memory]Ошибка безопасности SSL"
Там что-то доставить нужно? не было ни у кого? sqlncli не помогает установка
68. Andreynikus 1360 11.06.21 20:16 Сейчас в теме
69. Noveng 08.02.22 13:09 Сейчас в теме
Запустил на боевой ЕРП, поставил "отображать блокировки 1С", посмотрел, закрыл и получил дикий вой от пользователей по производительности. Долго разбирались в чём дело. А сервер пишет и пишет в лог файл, ресурсы отжираются. Пока не зашел и снова поставил-снял флаг и затем закрыл обработку не удалось победить.
70. Andreynikus 1360 08.02.22 13:11 Сейчас в теме
(69)
Обработка не предназначена для расследования проблем с блокировками на боевой базе о чем явно сказано в статье.
Она больше для того что бы понять как работают блокировки что конкретно и в каком случае будет заблокировано.
71. YFred 18 07.11.22 23:52 Сейчас в теме
Ошибка при нажатии кнопки обновить

Неверное имя колонки
{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(857)}:ТаблицаДанныхSQL.Сортировать("ИмяОбъекта1с ВОЗР, ИндексКластерный УБЫВ");
{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.МодульОбъекта(579)}:ПроставитьСоответствияТаблиц1с(ТЗ_Блокировки);
{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.Форма.Форма.Форма(64)}:ОбработкаОбъект.ОбновитьИнформациюПоБлокировкам();
{ВнешняяОбработка.Блокировки_MS_SQL_Server_1С.Форма.Форма.Форма(29)}:КомандаОбновитьСервер();

по причине:
Неверное имя колонки
Оставьте свое сообщение