Тип: Строка. Представление идентификатора заблокированного объекта базы данных.
Полное описание, параметры и ограничения
АдминистрированиеБлокировка.ИдентификаторОбъекта (AdministrationLock.ObjectID)
АдминистрированиеБлокировка (AdministrationLock)
ИдентификаторОбъекта (ObjectID)
Доступен, начиная с версии 8.3.14.
Использование:
Только чтение.
Описание:
Тип: Строка.
Представление идентификатора заблокированного объекта базы данных.
Доступность:
Тонкий клиент, сервер, толстый клиент, интеграция.
Использование в версии:
Доступен, начиная с версии 8.3.14.
Методическая информация
Практические примеры
Посмотреть объектные блокировки учебного кластера
Диагностика без снятия блокировок, завершения сеансов и изменения информационных баз.
Где и как запускать
Модуль управляемой формы внешней обработки; серверный вызов к ras учебного кластера. Операции только чтения.
Подготовка
Только отдельный учебный кластер 1С:Предприятия 8.5.1.1343 с уже настроенным ras совместимой версии. Не подключайтесь к рабочему серверу для обучения.
Создайте внешнюю обработку с управляемой формой. Добавьте реквизиты АдресRAS (Строка), ПортRAS (Число), ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера (Строка). Выведите поля на форму; у элементов ввода паролей в свойствах включите Режим пароля (PasswordMode).
АдресRAS относится к машине серверного выполнения кода. Пример для ras на этой же тестовой машине: 127.0.0.1 и порт 1545; подтвердите фактические адрес и порт у администратора.
Используйте законные учётные данные учебного агента и кластера. Оставлять имя и пароль пустыми можно только если соответствующие администраторы не зарегистрированы и среда допускает такую аутентификацию.
При первом запуске оставьте ИдентификаторКластера пустым: код выведет идентификаторы и имена кластеров. Скопируйте идентификатор нужного учебного кластера в поле и повторите.
Вставьте клиентскую процедуру и серверную функцию отдельно на уровне модуля формы. Код не запускает ras и не настраивает учётные записи.
Создайте команду ПоказатьБлокировки, кнопку и одноимённый обработчик.
Для наблюдения используйте только учебную базу: откройте объект для интерактивного редактирования в другом учебном сеансе.
&НаКлиенте
Процедура ПоказатьБлокировки(Команда)
Результат = ПоказатьБлокировкиНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Сообщить(Результат);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПоказатьБлокировкиНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера)
Сервер = Новый АдминистрированиеСервера(АдресRAS, ПортRAS);
Сервер.ВыполнитьАутентификацию(ПарольАгента, ИмяАгента);
Кластеры = Сервер.ПолучитьКластеры();
Если Не ЗначениеЗаполнено(ИдентификаторКластера) Тогда
Строки = Новый Массив;
Для Каждого Элемент Из Кластеры Цикл
Строки.Добавить(Строка(Элемент.ИдентификаторКластера) + " — " + Элемент.Имя);
КонецЦикла;
Если Строки.Количество() = 0 Тогда
Возврат "Кластеров нет";
КонецЕсли;
Возврат СтрСоединить(Строки, Символы.ПС);
КонецЕсли;
Кластер = Неопределено;
Для Каждого Элемент Из Кластеры Цикл
Если НРег(Строка(Элемент.ИдентификаторКластера)) = НРег(СокрЛП(ИдентификаторКластера)) Тогда
Кластер = Элемент;
Прервать;
КонецЕсли;
КонецЦикла;
Если Кластер = Неопределено Тогда
ВызватьИсключение "Указанный учебный кластер не найден";
КонецЕсли;
Кластер.ВыполнитьАутентификацию(ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Блокировки = Кластер.ПолучитьБлокировки();
Строки = Новый Массив;
Для Каждого Блокировка Из Блокировки Цикл
Строки.Добавить(СтрШаблон("%1; объект=%2; сеанс=%3; соединение=%4; %5",
Формат(Блокировка.ВремяНачалаБлокировки, "ДФ=dd.MM.yyyy HH:mm:ss"),
Блокировка.ИдентификаторОбъекта, Блокировка.ИдентификаторСеанса,
Блокировка.ИдентификаторСоединения, Блокировка.Описание));
КонецЦикла;
Если Строки.Количество() = 0 Тогда
Возврат "Объектных блокировок сейчас нет";
КонецЕсли;
Возврат СтрСоединить(Строки, Символы.ПС);
КонецФункцииРазбор по шагам
Подключаемся и аутентифицируемся в явно выбранном учебном кластере.
ПолучитьБлокировки возвращает массив элементов АдминистрированиеБлокировка.
Читаем время начала и идентификаторы объекта, сеанса и соединения.
Это снимок на момент вызова: после закрытия редактора состав может измениться.
Как проверить результат
Без объектных блокировок выводится Объектных блокировок сейчас нет.
При наличии учебной блокировки сверяйте идентификаторы с консолью администрирования.
Закройте учебный редактор и повторите: освободившаяся блокировка должна исчезнуть из нового снимка.
Ожидаемый результат
Показаны существующие объектные блокировки либо сообщение об их отсутствии; блокировки не снимаются.
На что обратить внимание
Не путайте объектные блокировки с транзакционными ожиданиями СУБД или всеми управляемыми блокировками данных.
ИдентификаторСоединения и ИдентификаторСеанса — разные значения.
Для диагностики не нужно завершать сеансы или удалять данные.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.