ОбъектМетаданных: ПланВидовРасчета.РежимУправленияБлокировкойДанных

Свойства · DataLockControlMode

Тип: РежимУправленияБлокировкойДанныхПоУмолчанию. Определяет режим управления блокировкой данных объекта конфигурации (например, Автоматический, Управляемый, АвтоматическийИУправляемый).

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

ОбъектМетаданных: ПланВидовРасчета.РежимУправленияБлокировкойДанных (MetadataObject: ChartOfCalculationTypes.DataLockControlMode)

ОбъектМетаданных: ПланВидовРасчета (MetadataObject: ChartOfCalculationTypes)

РежимУправленияБлокировкойДанных (DataLockControlMode)

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

Использование:
Только чтение.
Описание:
Тип: РежимУправленияБлокировкойДанныхПоУмолчанию.
Определяет режим управления блокировкой данных объекта конфигурации (например, Автоматический, Управляемый, АвтоматическийИУправляемый).
Доступность:

Сервер, толстый клиент, внешнее соединение.

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

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

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

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

Найти стандартные поля и части даже при пустых пользовательских коллекциях

Минимальный план уже имеет стандартные поля и части зависимостей. Коллекции пользовательских реквизитов/частей их не заменяют.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, имя корня УчебныеРасчеты85. Не изменяйте рабочие ЗУП/КА2/УНФ/УТ/БП. Пример технический: зарплата, налоги и выплаты не рассчитываются.

  2. Планы видов расчёта → Добавить: УчебныеНачисления85. ТипКода Строка, ДлинаКода 10, ДлинаНаименования 100. ИспользованиеПериодаДействия включено; ЗависимостьОтВидовРасчета=ПоПериодуДействия.

  3. В настройке базовых планов видов расчёта выберите только сам УчебныеНачисления85. Это позволяет учебным видам ссылаться на другие виды того же плана. Предопределённые виды, пользовательские реквизиты и табличные части не создавайте.

  4. Модули объекта/менеджера оставьте пустыми, регистры расчёта и бизнес-алгоритмы не добавляйте. Обновите конфигурацию БД и создайте серверный ВыполнитьПример() Экспорт собственной обработки.

  5. Фрагмент вставляется внутрь процедуры. Все виды и строки зависимостей создаются только в памяти; Записать, блокировки, удаления объектов и привилегированный режим не вызываются.

  6. Случайные ссылки зависимостей — ПЛАНОВЫЕ идентификаторы, соответствующих сохранённых видов нет. Они нужны для разбора типизированных списков, а не для запуска расчёта.

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

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

Описание = Метаданные.ПланыВидовРасчета.Найти("УчебныеНачисления85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Создайте собственный план УчебныеНачисления85";
КонецЕсли;
Если Описание.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
    Или Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
    Или Не Описание.ИспользованиеПериодаДействия
    Или Описание.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия Тогда
    ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.БазовыеВидыРасчета.Количество() <> 1
    Или Не Описание.БазовыеВидыРасчета.Содержит(Описание) Тогда
    ВызватьИсключение "Выберите только собственный план как базовый";
КонецЕсли;
Для Каждого Поле Из Описание.СтандартныеРеквизиты Цикл
    Сообщить("Стандартное поле: " + Поле.Имя);
КонецЦикла;
Для Каждого Часть Из Описание.СтандартныеТабличныеЧасти Цикл
    Сообщить("Стандартная часть: " + Часть.Имя);
КонецЦикла;
Сообщить(Описание.Реквизиты.Количество() = 0);
Сообщить(Описание.ТабличныеЧасти.Количество() = 0);
Сообщить(Описание.Команды.Количество() = 0);
Сообщить(Описание.Макеты.Количество() = 0);
Сообщить(Описание.ДополнительныеИндексы.Количество() = 0);
Сообщить("Описаний характеристик: " + Строка(Описание.Характеристики.Количество()));
Для Каждого ПолеБлокировки Из Описание.ПоляБлокировкиДанных Цикл
    Сообщить("Поле блокировки: " + ПолеБлокировки.Имя);
КонецЦикла;
Сообщить("Режим блокировки: " + Строка(Описание.РежимУправленияБлокировкойДанных));

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

  1. Стандартные поля перебираем через Имя; у их коллекции нет метода Найти.

  2. СтандартныеТабличныеЧасти показывает системные списки зависимостей. ТабличныеЧасти содержит только созданные разработчиком части.

  3. Команды, макеты, индексы и описания характеристик — элементы схемы, не строки расчётного регистра.

  4. Поля блокировки и режим выводим как настройки; реальная блокировка объекта не устанавливается.

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

  1. Пять логических сообщений дают Истина.

  2. В выводе стандартных частей видны списки зависимостей, хотя пользовательские ТабличныеЧасти пусты. Сверьте имена со схемой.

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

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

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

  1. ПоляБлокировкиДанных не является перечнем сейчас заблокированных начислений.

  2. Количество описаний характеристик не равно количеству видов расчёта.

  3. Чтение режима не устанавливает блокировку и не проверяет конкурентную запись.

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

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

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

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

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