ОписаниеКонфигурации.По умолчанию

Конструкторы

Создает объект на основе двоичных данных файла формата *.cf или *.cfe.

Синтаксис

Новый ОписаниеКонфигурации(<ДвоичныеДанные>)
Полное описание, параметры и ограничения

ОписаниеКонфигурации.По умолчанию

ОписаниеКонфигурации (ConfigurationDescription)

По умолчанию

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

Синтаксис:
Новый ОписаниеКонфигурации(<ДвоичныеДанные>)
Параметры:

<ДвоичныеДанные> (обязательный)
Тип: ДвоичныеДанные.
Двоичные данные файла, из которого будет сформирован объект ОписаниеКонфигурации.
Описание:

Создает объект на основе двоичных данных файла формата *.cf или *.cfe.

См. также:
РасширениеКонфигурации, метод ПолучитьДанные

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

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

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

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

Прочитать паспорт только своего CF, не устанавливая конфигурацию

Реальный собственный CF сохраняется при подготовке стенда. Перед чтением проверяются имя и размер файла, после конструктора — настоящие три readonly-поля снимка.

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

Полный серверный общий модуль собственной файловой Windows-базы 8.5.1.1343; подготовленный вручную свой пустой CF, только чтение. Здесь в 1С не запускался.

Подготовка

  1. Создайте отдельную пустую файловую Windows-базу на платформе 8.5.1.1343. В свойствах корневой конфигурации задайте Имя=УчебнаяКонфигурацияСинтаксиса, Версия=1.0.0.0, Поставщик=УчебныйСтенд85.

  2. Обновите конфигурацию базы данных. Это подготовка своего нового стенда, не изменение УТ/КА2/УНФ/БП. В рабочей базе эти уроки не выполняйте.

  3. Для положительного опыта в Конфигураторе сохраните только собственную пустую конфигурацию через Конфигурация → Сохранить конфигурацию в файл… под именем УчебныйПаспорт85.cf. Не используйте скачанный, рабочий или чужой CF.

  4. Создайте серверный непривилегированный общий модуль УчебныйПаспорт. Вставьте полный модуль одного урока. Клиентские флаги выключены, Глобальный=Ложь.

  5. Для положительного опыта создайте у своей формы строковый реквизит ПутьКУчебномуCF. В него вручную вставьте фактический абсолютный путь только что сохранённого своего CF, не демонстрационный C:/… и не адрес временного хранилища.

  6. Свою клиентскую команду свяжите с серверной процедурой формы; из неё вызовите УчебныйПаспорт.ВыполнитьПример(ПутьКУчебномуCF). Для отрицательного модуля экспортная процедура без параметра: УчебныйПаспорт.ВыполнитьПример().

  7. Используется отдельная файловая база Windows, поэтому путь доступен локальному серверному коду на этой машине. В клиент-серверной базе путь на клиентском ПК не является автоматически серверным: этот урок не загружает файл на сервер и не обходит права доступа.

  8. Файл только читается. Размер ограничен 20 МиБ, имя фиксировано УчебныйПаспорт85.cf, а полученные Имя/Версия/Поставщик проверяются до вывода. Не разбирайте недоверенные файлы: лимит внешнего размера не гарантирует защиту от всех повреждённых форматов.

  9. ОписаниеКонфигурации не устанавливает и не загружает конфигурацию в информационную базу. Конструктор работает с ДвоичныеДанные своего CF; текст XML-выгрузки или обычный TXT не подменяют этот формат.

  10. Три поля описания readonly. Не присваивайте им новую версию/поставщика и не выдавайте изменение локальной переменной за обновление конфигурации.

  11. Конструктор также поддерживает CFE, но данный положительный опыт проверяет именно подготовленный собственный CF. Описания обновления и загрузка расширения этим уроком не выполняются.

  12. В отрицательном опыте берутся только встроенные собственные UTF-16 TXT-байты. Файлов нет; возможная ошибка формата обрабатывается, а отсутствие ошибки фиксируется как неожиданное поведение, не как пригодный CF.

  13. Здесь в 1С конструктор не запускался, CF не сохранялся и базы не обновлялись. Проверены исходник и точный контракт установленной справки; runtime-успех проверяйте вручную только на своём стенде.

Процедура ВыполнитьПример(ПутьКУчебномуCF) Экспорт
    ПроверитьУчебнуюПлатформу();
    Если ТипЗнч(ПутьКУчебномуCF) <> Тип("Строка") Тогда
        ВызватьИсключение "Нужен фактический путь к собственному сохранённому CF";
    КонецЕсли;
    Если ПустаяСтрока(ПутьКУчебномуCF) Тогда
        ВызватьИсключение "Сначала сохраните свой учебный CF и укажите его путь";
    КонецЕсли;
    ФайлСнимка = Новый Файл(ПутьКУчебномуCF);
    Если ФайлСнимка.Имя <> "УчебныйПаспорт85.cf" Тогда
        ВызватьИсключение "Разрешён только свой заранее подготовленный УчебныйПаспорт85.cf";
    КонецЕсли;
    Если НЕ ФайлСнимка.Существует() Или НЕ ФайлСнимка.ЭтоФайл() Тогда
        ВызватьИсключение "Собственный CF недоступен в этом серверном файловом контексте";
    КонецЕсли;
    Если ФайлСнимка.Размер() <= 0 Или ФайлСнимка.Размер() > 20 * 1024 * 1024 Тогда
        ВызватьИсключение "Нужен непустой CF собственной пустой конфигурации не больше 20 МиБ";
    КонецЕсли;
    ДанныеCF = Новый ДвоичныеДанные(ПутьКУчебномуCF);
    Паспорт = Новый ОписаниеКонфигурации(ДанныеCF);
    Если Паспорт.Имя <> "УчебнаяКонфигурацияСинтаксиса"
        Или Паспорт.Версия <> "1.0.0.0"
        Или Паспорт.Поставщик <> "УчебныйСтенд85" Тогда
        ВызватьИсключение "Снимок не соответствует собственному учебному паспорту; данные не выводятся";
    КонецЕсли;
    Сообщить("Имя снимка: " + Паспорт.Имя);
    Сообщить("Версия снимка: " + Паспорт.Версия);
    Сообщить("Поставщик снимка: " + Паспорт.Поставщик);
    Сообщить("Это только чтение собственного CF. Ничего не установлено и конфигурация базы не обновлялась.");
КонецПроцедуры
Процедура ПроверитьУчебнуюПлатформу()
    Система = Новый СистемнаяИнформация;
    Если Система.ТипПлатформы <> ТипПлатформы.Windows_x86
        И Система.ТипПлатформы <> ТипПлатформы.Windows_x86_64 Тогда
        ВызватьИсключение "Этот пример использует Windows CryptoAPI";
    КонецЕсли;
КонецПроцедуры

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

  1. Подготовить свою пустую конфигурацию с точными Имя/Версия/Поставщик и сохранить фактический CF.

  2. Передать его настоящий путь серверной процедуре формы; путь и байты — разные значения.

  3. Ограничить имя, проверить существование, что это файл, и непустой размер не больше 20 МиБ.

  4. Получить ДвоичныеДанные своего файла и передать их конструктору ОписаниеКонфигурации.

  5. Сравнить три поля с подготовленным учебным снимком до их вывода. Не делать readonly-присваиваний.

  6. Вывести только подтверждённый собственный паспорт. Загрузка, установка и обновление базы не вызываются.

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

  1. Виден УчебнаяКонфигурацияСинтаксиса, 1.0.0.0, УчебныйСтенд85.

  2. Пустой путь, другое имя/версия/поставщик, каталог, отсутствие файла или превышение размера останавливают опыт.

  3. Сохранённый CF не удаляется и не меняется; сведения рабочей конфигурации не выдаются за содержимое этого файла.

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

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

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

  1. Имя файла УчебныйПаспорт85.cf не доказывает его содержимое. После чтения дополнительно сверяются три поля настоящего описания.

  2. Реквизит формы — путь на стороне исполнения. Он не является ДвоичныеДанные и не переносит файл с клиентского компьютера на произвольный сервер.

  3. CF — двоичный формат конфигурации; файл Configuration.xml из XML-выгрузки не равен сохранённому CF.

  4. Readonly Версия/Имя/Поставщик описывают снимок файла, а не состояние рабочей базы. Чтение описания не выполняет обновление.

  5. Отрицательный опыт не обещает текст конкретного сообщения об ошибке на всех машинах. При неожиданном принятии TXT результат не объявляется корректным учебным CF.

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

Отличить собственные текстовые байты от формата конфигурации CF

В отрицательном опыте вход целиком создан в модуле: это настоящий UTF-16 TXT, а не придуманный путь и не CF. Ошибка формата не означает попытку обновления базы.

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

Полный серверный модуль своего Windows-стенда 8.5.1.1343. Только собственные текстовые байты в памяти; здесь конструктор в 1С не запускался.

Подготовка

  1. Создайте отдельную пустую файловую Windows-базу на платформе 8.5.1.1343. В свойствах корневой конфигурации задайте Имя=УчебнаяКонфигурацияСинтаксиса, Версия=1.0.0.0, Поставщик=УчебныйСтенд85.

  2. Обновите конфигурацию базы данных. Это подготовка своего нового стенда, не изменение УТ/КА2/УНФ/БП. В рабочей базе эти уроки не выполняйте.

  3. Для положительного опыта в Конфигураторе сохраните только собственную пустую конфигурацию через Конфигурация → Сохранить конфигурацию в файл… под именем УчебныйПаспорт85.cf. Не используйте скачанный, рабочий или чужой CF.

  4. Создайте серверный непривилегированный общий модуль УчебныйПаспорт. Вставьте полный модуль одного урока. Клиентские флаги выключены, Глобальный=Ложь.

  5. Для положительного опыта создайте у своей формы строковый реквизит ПутьКУчебномуCF. В него вручную вставьте фактический абсолютный путь только что сохранённого своего CF, не демонстрационный C:/… и не адрес временного хранилища.

  6. Свою клиентскую команду свяжите с серверной процедурой формы; из неё вызовите УчебныйПаспорт.ВыполнитьПример(ПутьКУчебномуCF). Для отрицательного модуля экспортная процедура без параметра: УчебныйПаспорт.ВыполнитьПример().

  7. Используется отдельная файловая база Windows, поэтому путь доступен локальному серверному коду на этой машине. В клиент-серверной базе путь на клиентском ПК не является автоматически серверным: этот урок не загружает файл на сервер и не обходит права доступа.

  8. Файл только читается. Размер ограничен 20 МиБ, имя фиксировано УчебныйПаспорт85.cf, а полученные Имя/Версия/Поставщик проверяются до вывода. Не разбирайте недоверенные файлы: лимит внешнего размера не гарантирует защиту от всех повреждённых форматов.

  9. ОписаниеКонфигурации не устанавливает и не загружает конфигурацию в информационную базу. Конструктор работает с ДвоичныеДанные своего CF; текст XML-выгрузки или обычный TXT не подменяют этот формат.

  10. Три поля описания readonly. Не присваивайте им новую версию/поставщика и не выдавайте изменение локальной переменной за обновление конфигурации.

  11. Конструктор также поддерживает CFE, но данный положительный опыт проверяет именно подготовленный собственный CF. Описания обновления и загрузка расширения этим уроком не выполняются.

  12. В отрицательном опыте берутся только встроенные собственные UTF-16 TXT-байты. Файлов нет; возможная ошибка формата обрабатывается, а отсутствие ошибки фиксируется как неожиданное поведение, не как пригодный CF.

  13. Здесь в 1С конструктор не запускался, CF не сохранялся и базы не обновлялись. Проверены исходник и точный контракт установленной справки; runtime-успех проверяйте вручную только на своём стенде.

Процедура ВыполнитьПример() Экспорт
    ПроверитьУчебнуюПлатформу();
    ДанныеTXT = Base64Значение("//5zAHkAbgB0AGEAeAAtAGcAdQBpAGQAZQAtAG8AdwBuAGUAZAAtAGUAeAB0AHIAYQBjAHQAaQBvAG4ALQBvAG4AZQANAAoAGgQ9BDgEMwQwBDoAIAAzACAASARCBEMEOgQ4BC4ADQAKAA==");
    Попытка
        НеподтверждённыйПаспорт = Новый ОписаниеКонфигурации(ДанныеTXT);
        Сообщить(ТипЗнч(НеподтверждённыйПаспорт));
        Сообщить("TXT неожиданно принят конструктором: требуется отдельная проверка формата. Это не подтверждённый CF и не установка конфигурации.");
    Исключение
        Сообщить("Отрицательный опыт: собственные текстовые байты не стали корректным файлом конфигурации. Никакой CF не загружен в базу.");
    КонецПопытки;
КонецПроцедуры
Процедура ПроверитьУчебнуюПлатформу()
    Система = Новый СистемнаяИнформация;
    Если Система.ТипПлатформы <> ТипПлатформы.Windows_x86
        И Система.ТипПлатформы <> ТипПлатформы.Windows_x86_64 Тогда
        ВызватьИсключение "Этот пример использует Windows CryptoAPI";
    КонецЕсли;
КонецПроцедуры

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

  1. Проверить отдельную учебную конфигурацию и точную Windows-платформу.

  2. Декодировать встроенные собственные текстовые байты, без чтения файлов и рабочих данных.

  3. Передать байты конструктору только внутри Попытка.

  4. Ожидаемое отклонение неподходящего формата показать как отрицательный опыт, без привязки к тексту системной ошибки.

  5. Если конструктор неожиданно принял вход, явно сообщить о неподтверждённом формате; не выдавать его за правильный CF.

  6. Установка/загрузка конфигурации не вызываются ни в одной ветви.

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

  1. Текстовые байты не объявлены корректным учебным CF.

  2. Ожидаемая ошибка обрабатывается без падения всего учебного модуля.

  3. Нет изменения базы, сохранения файлов и утверждения о runtime-проверке.

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

На собственном непустом входе разобрана граница между ДвоичныеДанные произвольного текста и поддерживаемым форматом CF/CFE.

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

  1. Имя файла УчебныйПаспорт85.cf не доказывает его содержимое. После чтения дополнительно сверяются три поля настоящего описания.

  2. Реквизит формы — путь на стороне исполнения. Он не является ДвоичныеДанные и не переносит файл с клиентского компьютера на произвольный сервер.

  3. CF — двоичный формат конфигурации; файл Configuration.xml из XML-выгрузки не равен сохранённому CF.

  4. Readonly Версия/Имя/Поставщик описывают снимок файла, а не состояние рабочей базы. Чтение описания не выполняет обновление.

  5. Отрицательный опыт не обещает текст конкретного сообщения об ошибке на всех машинах. При неожиданном принятии TXT результат не объявляется корректным учебным CF.

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

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

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

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

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