Тип: РежимУправленияБлокировкойДанныхПоУмолчанию. Содержит режим управления блокировкой данных по умолчанию.
Полное описание, параметры и ограничения
ПеречислимыеСвойстваОбъектовМетаданных.РежимУправленияБлокировкойДанныхПоУмолчанию (MetadataObjectEnumeratedProperties.DefaultDataLockControlMode)
ПеречислимыеСвойстваОбъектовМетаданных (MetadataObjectEnumeratedProperties)
РежимУправленияБлокировкойДанныхПоУмолчанию (DefaultDataLockControlMode)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: РежимУправленияБлокировкойДанныхПоУмолчанию.
Содержит режим управления блокировкой данных по умолчанию.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Отличить общий режим блокировок от настройки конкретного регистра
Корень КА2 Progress имеет управляемый режим, Хозрасчетный — автоматический. Эти настройки разных объектов и разных типов не сравниваем как одинаковое перечисление.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Варианты = Метаданные.СвойстваОбъектов;
Описание = Метаданные.РегистрыБухгалтерии.Найти("Хозрасчетный");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыБухгалтерии.Хозрасчетный";
КонецЕсли;
РежимКонфигурации = Метаданные.РежимУправленияБлокировкойДанных;
Сообщить(РежимКонфигурации = Варианты.РежимУправленияБлокировкойДанныхПоУмолчанию.Управляемый);
Сообщить(Описание.РежимУправленияБлокировкойДанных = РежимУправленияБлокировкойДанных.Автоматический);
Если РежимКонфигурации = Варианты.РежимУправленияБлокировкойДанныхПоУмолчанию.АвтоматическийИУправляемый Тогда
Сообщить("Смешанный режим: исследуйте режим каждого объекта отдельно");
Иначе
Сообщить("Режим корня: " + Строка(РежимКонфигурации));
КонецЕсли;
Сообщить("Режим Хозрасчетный: " + Строка(Описание.РежимУправленияБлокировкойДанных));Разбор по шагам
Режим корня имеет тип РежимУправленияБлокировкойДанныхПоУмолчанию.
Свойство регистра имеет другой тип РежимУправленияБлокировкойДанных.
Сравниваем каждый с контейнером своего типа и выводим реальное значение.
Транзакцию/БлокировкуДанных не создаём и никакие записи не блокируем.
Как проверить результат
Две проверки Истина в предоставленной схеме.
В другом релизе различие фиксируется реальным выводом, а не исправлением настройки кодом.
Ожидаемый результат
Получены две независимые настройки для дальнейшего анализа конкурентной записи.
На что обратить внимание
Этот пример не проверяет фактически захваченные блокировки SQL или RAS.
Нельзя считать настройку корня доказательством режима любого конкретного регистра.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Не путать настройку перемещения границы с командой восстановления
У исходной последовательности DontMove, автоматические блокировки и нет измерений. Читаем эти независимые свойства без изменения текущей границы.
Где и как запускать
Полный серверный модуль соответствующей учебной копии КА2 или УТ 10.3. Никаких операций перепроведения или изменения настроек.
Подготовка
Последовательность ПартионныйУчет взята из C:\claude\UT10_3\XML_UT_10_3\Sequences\ПартионныйУчет.xml. Используйте отдельную учебную копию именно этой УТ 10.3 на установленной платформе 8.5.1.1343, не рабочую базу.
Для первых двух уроков о режимах конфигурации используйте отдельную копию КА2 Progress. Для последующих пяти — копию указанной УТ 10.3. Не смешивайте имена и настройки разных конфигураций.
В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока и вызовите ВыполнитьПример() из своей серверной команды. В обычной конфигурации можно вызвать серверную процедуру из собственной учебной обработки.
Только чтение схемы и собственные значения в памяти: нет проведения, восстановления последовательности, изменения границ, назначения номеров или переключения совместимости.
Процедура ВыполнитьПример() Экспорт
Последовательность = Метаданные.Последовательности.Найти("ПартионныйУчет");
Если Последовательность = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Последовательности.ПартионныйУчет";
КонецЕсли;
Варианты = Метаданные.СвойстваОбъектов;
Сообщить(Последовательность.ПеремещениеГраницыПриПроведении = Варианты.ПеремещениеГраницыПриПроведении.НеПеремещать);
Если Последовательность.ПеремещениеГраницыПриПроведении = Варианты.ПеремещениеГраницыПриПроведении.Перемещать Тогда
Сообщить("Зарегистрированный документ при проведении будет пытаться переместить границу");
Иначе
Сообщить("По этой настройке документ при проведении не перемещает границу");
КонецЕсли;
Сообщить(Последовательность.РежимУправленияБлокировкойДанных = Варианты.РежимУправленияБлокировкойДанныхПоУмолчанию.Автоматический);
Сообщить(Последовательность.Измерения.Количество() = 0);
Сообщить("Дополнительных индексов схемы: " + Строка(Последовательность.ДополнительныеИндексы.Количество()));
Сообщить("Действительная граница последовательности не читалась и не устанавливалась");
КонецПроцедурыРазбор по шагам
НеПеремещать взято из MoveBoundaryOnPosting=DontMove. Перемещать означало бы попытку документа передвинуть границу при проведении, а не отдельную команду полного восстановления.
РежимУправленияБлокировкойДанных=Автоматический взят из DataLockControlMode=Automatic. Он не является списком текущих блокировок.
В XML нет дочерних измерений, поэтому контролируем 0. Не читаем Измерения[0] у пустой коллекции.
ДополнительныеИндексы с 8.3.26 — коллекция описаний индексов. На установленной платформе 8.5 выводим фактическое количество, не создавая индекс СУБД.
Пример не вызывает менеджер последовательности, проведение или установку границы.
Как проверить результат
Три контрольные Истина в исходной учебной копии и фактическое число дополнительных индексов.
Настройки блокировки и текущая граница не изменены.
Ожидаемый результат
Получена карта политики последовательности без опасного смешения с восстановлением учёта.
На что обратить внимание
Флаг НеПеремещать не доказывает, что граница правильная или что учёт требует восстановления.
Метаданные дополнительных индексов не подтверждают состояние физических индексов СУБД.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.