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