АдминистрированиеБлокировка.ИдентификаторОбъекта

Свойства · ObjectID

Тип: Строка. Представление идентификатора заблокированного объекта базы данных.

Полное описание, параметры и ограничения

АдминистрированиеБлокировка.ИдентификаторОбъекта (AdministrationLock.ObjectID)

АдминистрированиеБлокировка (AdministrationLock)

ИдентификаторОбъекта (ObjectID)

Доступен, начиная с версии 8.3.14.

Использование:
Только чтение.
Описание:
Тип: Строка.
Представление идентификатора заблокированного объекта базы данных.
Доступность:

Тонкий клиент, сервер, толстый клиент, интеграция.

Использование в версии:

Доступен, начиная с версии 8.3.14.

Методическая информация

Практические примеры

Посмотреть объектные блокировки учебного кластера

Диагностика без снятия блокировок, завершения сеансов и изменения информационных баз.

Где и как запускать

Модуль управляемой формы внешней обработки; серверный вызов к ras учебного кластера. Операции только чтения.

Подготовка

  1. Только отдельный учебный кластер 1С:Предприятия 8.5.1.1343 с уже настроенным ras совместимой версии. Не подключайтесь к рабочему серверу для обучения.

  2. Создайте внешнюю обработку с управляемой формой. Добавьте реквизиты АдресRAS (Строка), ПортRAS (Число), ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера (Строка). Выведите поля на форму; у элементов ввода паролей в свойствах включите Режим пароля (PasswordMode).

  3. АдресRAS относится к машине серверного выполнения кода. Пример для ras на этой же тестовой машине: 127.0.0.1 и порт 1545; подтвердите фактические адрес и порт у администратора.

  4. Используйте законные учётные данные учебного агента и кластера. Оставлять имя и пароль пустыми можно только если соответствующие администраторы не зарегистрированы и среда допускает такую аутентификацию.

  5. При первом запуске оставьте ИдентификаторКластера пустым: код выведет идентификаторы и имена кластеров. Скопируйте идентификатор нужного учебного кластера в поле и повторите.

  6. Вставьте клиентскую процедуру и серверную функцию отдельно на уровне модуля формы. Код не запускает ras и не настраивает учётные записи.

  7. Создайте команду ПоказатьБлокировки, кнопку и одноимённый обработчик.

  8. Для наблюдения используйте только учебную базу: откройте объект для интерактивного редактирования в другом учебном сеансе.

&НаКлиенте
Процедура ПоказатьБлокировки(Команда)
    Результат = ПоказатьБлокировкиНаСервере(АдресRAS, ПортRAS, ИмяАгента, ПарольАгента, ИдентификаторКластера, ИмяАдминистратораКластера, ПарольАдминистратораКластера);
    Сообщить(Результат);
КонецПроцедуры

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

Разбор по шагам

  1. Подключаемся и аутентифицируемся в явно выбранном учебном кластере.

  2. ПолучитьБлокировки возвращает массив элементов АдминистрированиеБлокировка.

  3. Читаем время начала и идентификаторы объекта, сеанса и соединения.

  4. Это снимок на момент вызова: после закрытия редактора состав может измениться.

Как проверить результат

  1. Без объектных блокировок выводится Объектных блокировок сейчас нет.

  2. При наличии учебной блокировки сверяйте идентификаторы с консолью администрирования.

  3. Закройте учебный редактор и повторите: освободившаяся блокировка должна исчезнуть из нового снимка.

Ожидаемый результат

Показаны существующие объектные блокировки либо сообщение об их отсутствии; блокировки не снимаются.

На что обратить внимание

  1. Не путайте объектные блокировки с транзакционными ожиданиями СУБД или всеми управляемыми блокировками данных.

  2. ИдентификаторСоединения и ИдентификаторСеанса — разные значения.

  3. Для диагностики не нужно завершать сеансы или удалять данные.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.