ПолучитьДанные возвращает CFE как ДвоичныеДанные. Сравниваем тип, размер и влияние на структуру данных, не объявляя архив исходным текстом BSL.
Где и как запускать
Полный серверный модуль собственной УчебнаяКонфигурацияСинтаксиса. Чтение своего расширения, без его установки/обновления кодом.
Подготовка
Создайте отдельную пустую учебную конфигурацию с именем УчебнаяКонфигурацияСинтаксиса. Защитная проверка имени не допускает выполнение этих уроков в КА2, УТ или другой рабочей конфигурации.
В Конфигураторе этой учебной базы вручную создайте минимальное расширение УчебноеРасширениеСинтаксиса с назначением Дополнение, синонимом Учебное расширение и версией 1.0. Не добавляйте бизнес-код или новые таблицы.
Оставьте безопасный режим и защиту от опасных действий включёнными; не выдавайте через расширение дополнительные основные роли всем пользователям. Установите расширение только в собственной учебной базе и начните новый сеанс.
В серверном общем модуле УчебныеЗадачи разместите полный модуль одного урока. Запускайте свою серверную команду с правами, разрешёнными администратором учебной базы. Код не переключает привилегированный режим.
Примеры только читают паспорт, данные и диагностику. Они не записывают/удаляют расширение, не экспортируют CFE на диск и не отключают защиту.
Процедура ВыполнитьПример() Экспорт
Перечень = РасширенияКонфигурации.Получить();
Учебное = Неопределено;
Для Каждого Расширение Из Перечень Цикл
Если Расширение.Имя = "УчебноеРасширениеСинтаксиса" Тогда
Учебное = Расширение;
Прервать;
КонецЕсли;
КонецЦикла;
Если Учебное = Неопределено Тогда
ВызватьИсключение "Сначала подготовьте только своё минимальное УчебноеРасширениеСинтаксиса";
КонецЕсли;
Данные = Учебное.ПолучитьДанные();
Если Данные = Неопределено Тогда
Сообщить("Двоичные данные ещё не определены; сначала установите свою минимальную учебную добавку");
Возврат;
КонецЕсли;
Если ТипЗнч(Данные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение "Ожидались штатные двоичные данные расширения";
КонецЕсли;
Сообщить(Данные.Размер() > 0);
Сообщить("Размер CFE в памяти, байт: " + Строка(Данные.Размер()));
Сообщить("Изменяет структуру данных: " + Строка(Учебное.ИзменяетСтруктуруДанных()));
Сообщить("Файл не сохранён; двоичные данные не преобразуются в строку и не выполняются");
КонецПроцедурыРазбор по шагам
У нового неустановленного объекта ПолучитьДанные может вернуть Неопределено. Проверка идёт до вызова Размер.
Штатный результат установленного расширения — ДвоичныеДанные. Это не XML выгрузка, не текст всех модулей и не JSON.
Размер выражен в байтах, а не числе модулей, объектов метаданных или мегабайтах.
ИзменяетСтруктуруДанных — отдельный признак необходимости структурных изменений. Он не доказывает корректность обработчиков и не запускает изменение таблиц.
Нет Данные.Записать, Расширение.Записать, исполнения CFE или восстановления поверх существующей конфигурации.
Как проверить результат
У подготовленного установленного минимального расширения размер положительный, выводится его фактическая величина.
Ни один CFE-файл не создан, расширение и структура базы не изменены.
Ожидаемый результат
Ученик получает правильный тип данных CFE и отделяет его размер от функциональной проверки.
На что обратить внимание
Не пытайтесь читать CFE как UTF-8 текст модулей.
Отсутствие изменения структуры не означает отсутствие воздействия кода расширения на бизнес-данные.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.