РасширениеКонфигурации.ИзменяетСтруктуруДанных

Методы · ModifiesDataStructure

Определяет, содержит ли данное расширение объекты метаданных, влияющие на структуры данных, и, соответственно, изменяло ли оно структуры для хранения данных.

Синтаксис

ИзменяетСтруктуруДанных()
Полное описание, параметры и ограничения

РасширениеКонфигурации.ИзменяетСтруктуруДанных (ConfigurationExtension.ModifiesDataStructure)

РасширениеКонфигурации (ConfigurationExtension)

ИзменяетСтруктуруДанных (ModifiesDataStructure)

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

Синтаксис:
ИзменяетСтруктуруДанных()
Возвращаемое значение:
Тип: Булево.

Описание:

Определяет, содержит ли данное расширение объекты метаданных, влияющие на структуры данных, и, соответственно, изменяло ли оно структуры для хранения данных.

Доступность:

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

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

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

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

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

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

ПолучитьДанные возвращает CFE как ДвоичныеДанные. Сравниваем тип, размер и влияние на структуру данных, не объявляя архив исходным текстом BSL.

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

Полный серверный модуль собственной УчебнаяКонфигурацияСинтаксиса. Чтение своего расширения, без его установки/обновления кодом.

Подготовка

  1. Создайте отдельную пустую учебную конфигурацию с именем УчебнаяКонфигурацияСинтаксиса. Защитная проверка имени не допускает выполнение этих уроков в КА2, УТ или другой рабочей конфигурации.

  2. В Конфигураторе этой учебной базы вручную создайте минимальное расширение УчебноеРасширениеСинтаксиса с назначением Дополнение, синонимом Учебное расширение и версией 1.0. Не добавляйте бизнес-код или новые таблицы.

  3. Оставьте безопасный режим и защиту от опасных действий включёнными; не выдавайте через расширение дополнительные основные роли всем пользователям. Установите расширение только в собственной учебной базе и начните новый сеанс.

  4. В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока. Запускайте свою серверную команду с правами, разрешёнными администратором учебной базы. Код не переключает привилегированный режим.

  5. Примеры только читают паспорт, данные и диагностику. Они не записывают/удаляют расширение, не экспортируют CFE на диск и не отключают защиту.

Процедура ВыполнитьПример() Экспорт
    Перечень = РасширенияКонфигурации.Получить();
    Учебное = Неопределено;
    Для Каждого Расширение Из Перечень Цикл
        Если Расширение.Имя = "УчебноеРасширениеСинтаксиса" Тогда
            Учебное = Расширение;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если Учебное = Неопределено Тогда
        ВызватьИсключение "Сначала подготовьте только своё минимальное УчебноеРасширениеСинтаксиса";
    КонецЕсли;
    Данные = Учебное.ПолучитьДанные();
    Если Данные = Неопределено Тогда
        Сообщить("Двоичные данные ещё не определены; сначала установите свою минимальную учебную добавку");
        Возврат;
    КонецЕсли;
    Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
        ВызватьИсключение "Ожидались штатные двоичные данные расширения";
    КонецЕсли;
    Сообщить(Данные.Размер() > 0);
    Сообщить("Размер CFE в памяти, байт: " + Строка(Данные.Размер()));
    Сообщить("Изменяет структуру данных: " + Строка(Учебное.ИзменяетСтруктуруДанных()));
    Сообщить("Файл не сохранён; двоичные данные не преобразуются в строку и не выполняются");
КонецПроцедуры

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

  1. У нового неустановленного объекта ПолучитьДанные может вернуть Неопределено. Проверка идёт до вызова Размер.

  2. Штатный результат установленного расширения — ДвоичныеДанные. Это не XML выгрузка, не текст всех модулей и не JSON.

  3. Размер выражен в байтах, а не числе модулей, объектов метаданных или мегабайтах.

  4. ИзменяетСтруктуруДанных — отдельный признак необходимости структурных изменений. Он не доказывает корректность обработчиков и не запускает изменение таблиц.

  5. Нет Данные.Записать, Расширение.Записать, исполнения CFE или восстановления поверх существующей конфигурации.

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

  1. У подготовленного установленного минимального расширения размер положительный, выводится его фактическая величина.

  2. Ни один CFE-файл не создан, расширение и структура базы не изменены.

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

Ученик получает правильный тип данных CFE и отделяет его размер от функциональной проверки.

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

  1. Не пытайтесь читать CFE как UTF-8 текст модулей.

  2. Отсутствие изменения структуры не означает отсутствие воздействия кода расширения на бизнес-данные.

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

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

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

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

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