Ряд свойств корня пока возвращает только Неопределено. Проверяем границу API, а не наличие модулей, рисунков, интерфейса или разрешений мобильного приложения.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте отдельную НОВУЮ пустую файловую базу на 8.5.1.1343. Корневое имя конфигурации УчебныйПаспорт85. Рабочие конфигурации не меняйте.
Режим совместимости Не использовать; основной запуск Управляемое приложение. Пользовательские назначения общих форм, хранилища настроек, дополнительные словари и основные роли не задавайте. Расширения не устанавливайте.
Обновите конфигурацию БД. В собственной обработке создайте серверный обработчик ВыполнитьПример() Экспорт; фрагмент вставляйте внутрь него. Каждую задачу запускайте отдельно.
Задачи только читают настройки схемы. Не вызываются сохранение настроек, запись данных, смена прав, публикация сервисов или чтение секретов.
НедоступныеПредставления = Новый Структура;
НедоступныеПредставления.Вставить("МодульВнешнегоСоединения", Метаданные.МодульВнешнегоСоединения);
НедоступныеПредставления.Вставить("МодульОбычногоПриложения", Метаданные.МодульОбычногоПриложения);
НедоступныеПредставления.Вставить("МодульСеанса", Метаданные.МодульСеанса);
НедоступныеПредставления.Вставить("МодульУправляемогоПриложения", Метаданные.МодульУправляемогоПриложения);
НедоступныеПредставления.Вставить("Справка", Метаданные.Справка);
НедоступныеПредставления.Вставить("КомандныйИнтерфейс", Метаданные.КомандныйИнтерфейс);
НедоступныеПредставления.Вставить("ИнтерфейсКлиентскогоПриложения", Метаданные.ИнтерфейсКлиентскогоПриложения);
НедоступныеПредставления.Вставить("КомандныйИнтерфейсОсновногоРаздела", Метаданные.КомандныйИнтерфейсОсновногоРаздела);
НедоступныеПредставления.Вставить("ФрагментКомандногоИнтерфейса", Метаданные.ФрагментКомандногоИнтерфейса);
НедоступныеПредставления.Вставить("РабочаяОбластьНачальнойСтраницы", Метаданные.РабочаяОбластьНачальнойСтраницы);
НедоступныеПредставления.Вставить("КартинкаОсновногоРаздела", Метаданные.КартинкаОсновногоРаздела);
НедоступныеПредставления.Вставить("Логотип", Метаданные.Логотип);
НедоступныеПредставления.Вставить("Заставка", Метаданные.Заставка);
НедоступныеПредставления.Вставить("ДопустимыеТипыВходящихЗапросовПоделиться", Метаданные.ДопустимыеТипыВходящихЗапросовПоделиться);
НедоступныеПредставления.Вставить("ИспользуемаяФункциональностьМобильногоПриложения", Метаданные.ИспользуемаяФункциональностьМобильногоПриложения);
НедоступныеПредставления.Вставить("НавигационныеСсылкиМобильногоПриложения", Метаданные.НавигационныеСсылкиМобильногоПриложения);
НедоступныеПредставления.Вставить("НазначенияИспользования", Метаданные.НазначенияИспользования);
НедоступныеПредставления.Вставить("ПодписьМобильногоКлиента", Метаданные.ПодписьМобильногоКлиента);
НедоступныеПредставления.Вставить("СоставАвтономнойКонфигурации", Метаданные.СоставАвтономнойКонфигурации);
НедоступныеПредставления.Вставить("ТребуемыеРазрешенияМобильногоПриложения", Метаданные.ТребуемыеРазрешенияМобильногоПриложения);
НедоступныеПредставления.Вставить("РодительскиеКонфигурации", Метаданные.РодительскиеКонфигурации);
Сообщить(НедоступныеПредставления.Количество() = 21);
Для Каждого Представление Из НедоступныеПредставления Цикл
Сообщить(Представление.Ключ + ": " + Строка(Представление.Значение = Неопределено));
КонецЦикла;Разбор по шагам
Собираем конкретные свойства, чей контракт текущей платформы возвращает Неопределено, а не исходный текст/рисунок/список разрешений.
Свойства модулей не дают содержимое обработчиков. Свойства интерфейса не отражают фактически видимое окно.
Названия мобильных свойств не делают их Булево: нельзя проверять Если Метаданные.ТребуемыеРазрешенияМобильногоПриложения Тогда.
В цикле проверяем только значение, предоставленное этим API. Вывод не является аудитом функциональности конфигурации.
Как проверить результат
Количество равно 21; для каждого поля выводится Истина по текущему контракту.
Не делайте вывод «модуль пуст» или «камера запрещена»: для проверки нужны Конфигуратор/соответствующая выгрузка или профильный API.
Ожидаемый результат
Показана реальная граница чтения схемы без выдуманного извлечения недоступных данных.
На что обратить внимание
Возвращаемое Неопределено не доказывает отсутствие объекта/настройки в конфигурации.
Эта задача не проверяет разрешения ОС, сертификаты подписи, публикацию мобильного клиента или автономную синхронизацию.
Не добавляйте автоматическую замену Неопределено на Ложь: смысл будет искажён.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.