Тип: РежимЗаписиРегистра. Определяет режим добавления записей в регистр сведений (например, Независимый, ПодчинениеРегистратору).
Полное описание, параметры и ограничения
ОбъектМетаданных: РегистрСведений.РежимЗаписи (MetadataObject: InformationRegister.WriteMode)
ОбъектМетаданных: РегистрСведений (MetadataObject: InformationRegister)
РежимЗаписи (WriteMode)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: РежимЗаписиРегистра.
Определяет режим добавления записей в регистр сведений (например, Независимый, ПодчинениеРегистратору).
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Изучить основной отбор и риск сужения типа кодов региона
КодСубъектаРФ — числовое измерение АдминистративнаяИерархия. Читаем основной отбор, индекс и политику сокращения типа без изменения структуры базы.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Регистр = Метаданные.РегистрыСведений.Найти("АдминистративнаяИерархия");
Если Регистр = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыСведений.АдминистративнаяИерархия";
КонецЕсли;
Поле = Регистр.Измерения.Найти("КодСубъектаРФ");
Если Поле = Неопределено Тогда
ВызватьИсключение "В АдминистративнаяИерархия отсутствует измерение КодСубъектаРФ";
КонецЕсли;
Сообщить(Поле.Тип.СодержитТип(Тип("Число")));
Сообщить(Поле.ОсновнойОтбор);
Сообщить(Поле.Индексирование = Метаданные.СвойстваОбъектов.Индексирование.Индексировать);
Сообщить("Режим записи регистра: " + Строка(Регистр.РежимЗаписи));
Если Регистр.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Тогда
Политика = Поле.РежимСокращенияТипа;
Сообщить("Сокращение типа: " + Строка(Политика));
Если Политика = Метаданные.СвойстваОбъектов.РежимСокращенияТипа.ПреобразовыватьЗначения Тогда
Сообщить("До сужения типа проверьте потерю точности и возможное совпадение ключей в копии базы");
ИначеЕсли Политика = Метаданные.СвойстваОбъектов.РежимСокращенияТипа.УдалятьДанные Тогда
Сообщить("Особенно опасная политика: изменение структуры может удалить данные, здесь ничего не меняем");
Иначе
Сообщить("Проверьте запрет изменения при потере данных; это отдельная операция Конфигуратора");
КонецЕсли;
КонецЕсли;Разбор по шагам
Числовой тип и индекс сверяем с конкретным измерением, а не с названием региона.
ОсновнойОтбор не заменяет условие конкретного запроса и не является RLS.
РежимСокращенияТипа рассматриваем только у независимого регистра сведений, как указано в справке.
Результат — предупреждение перед проектированием миграции; обновление конфигурации не выполняется.
Как проверить результат
По предоставленному XML три сравнения Истина: число, основной отбор и дополнительный индекс.
В выводе указана реальная политика сужения типа, никаких данных она сейчас не преобразует.
Ожидаемый результат
Собран безопасный предварительный контракт для анализа будущей миграции.
На что обратить внимание
Сужение типа может сделать разные ключи одинаковыми; требуется отдельная копия и анализ данных.
Не меняйте политику на УдалятьДанные как быстрый способ убрать ошибку обновления.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Прочитать риск сокращения типа измерения до изменения схемы
В независимом графике измерение Дата имеет режим ПреобразовыватьЗначения. Настройка относится к обновлению конфигурации БД и возможной потере/слиянию ключей, не к формату строки даты.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Варианты = Метаданные.СвойстваОбъектов;
Описание = Метаданные.РегистрыСведений.Найти("ГрафикиРаботыПоВидамВремени");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыСведений.ГрафикиРаботыПоВидамВремени";
КонецЕсли;
Если Описание.РежимЗаписи <> Варианты.РежимЗаписиРегистра.Независимый Тогда
ВызватьИсключение "Урок рассчитан на независимую схему";
КонецЕсли;
Измерение = Описание.Измерения.Найти("Дата");
Если Измерение = Неопределено Тогда
ВызватьИсключение "Не найдено измерение Дата";
КонецЕсли;
Режим = Измерение.РежимСокращенияТипа;
Сообщить(Режим = Варианты.РежимСокращенияТипа.ПреобразовыватьЗначения);
Если Режим = Варианты.РежимСокращенияТипа.Запрещать Тогда
Сообщить("При несовместимом сокращении обновление запрещается; нужен отдельный план миграции");
ИначеЕсли Режим = Варианты.РежимСокращенияТипа.ПреобразовыватьЗначения Тогда
Сообщить("До обновления проверяйте потерю данных и коллизии преобразованных ключей на копии");
ИначеЕсли Режим = Варианты.РежимСокращенияТипа.УдалятьДанные Тогда
Сообщить("Режим допускает удаление несовместимых записей: требуется копия и проверенный план восстановления");
КонецЕсли;Разбор по шагам
Требуем независимый регистр, затем ищем конкретное измерение.
Читаем РежимСокращенияТипа из схемы и выбираем пояснение риска по системному перечислению.
Три ветки показывают разные последствия миграции. ПреобразовыватьЗначения не обещает отсутствие потери.
Ни тип, ни режим не изменяем; обновление конфигурации БД не запускаем.
Как проверить результат
Одна проверка Истина и пояснение о потере данных/коллизиях по исходному XML.
Сравните значение в Конфигураторе: Регистр сведений → ГрафикиРаботыПоВидамВремени → Измерения → Дата.
Ожидаемый результат
Определена политика миграции одного измерения без выполнения опасной миграции.
На что обратить внимание
Это не функция форматирования даты и не преобразование переменной Дата в Строка.
Учебный разбор не является разрешением обновлять рабочую базу: данные и коллизии здесь не исследуются.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.