ЭлементСоставаХранимыхДанныхХранилищаДвоичныхДанных

Типы · BinaryDataStorageDataContentItem

Элемент коллекции типа СоставХранимыхДанныхХранилищаДвоичныхДанных.

Полное описание, параметры и ограничения

ЭлементСоставаХранимыхДанныхХранилищаДвоичныхДанных (BinaryDataStorageDataContentItem)

ЭлементСоставаХранимыхДанныхХранилищаДвоичныхДанных (BinaryDataStorageDataContentItem)

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

Свойства:
Метаданные (Metadata)
Хранение (Location)

Описание:

Элемент коллекции типа СоставХранимыхДанныхХранилищаДвоичныхДанных.

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

Сервер.

См. также:
СоставХранимыхДанныхХранилищаДвоичныхДанных

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

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

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

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

Подготовить собственный состав хранения двух файловых полей

Добавляем два настоящих реквизита собственного учебного справочника в новый состав. Это проект настройки в памяти, не изменение работающего хранилища.

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

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

Подготовка

  1. Создайте отдельную пустую учебную конфигурацию на платформе 8.5.1.1343 с режимом совместимости НеИспользовать. Не используйте производственную базу и не изменяйте предоставленные выгрузки КА2/УТ/УНФ.

  2. Добавьте справочник УчебныеФайлы и три реквизита: Данные и Предпросмотр с типом ХранилищеЗначения, ИспользоватьВнешнееХранение с типом Булево. Обновите только свою учебную базу. Сами записи справочника создавать не нужно.

  3. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своей серверной команды.

  4. Упражнения с Новый СоставХранимыхДанныхХранилищаДвоичныхДанных и параметрами подключения меняют только собственные объекты в памяти. Нет установки состава, записи менеджера, резервного копирования или физической очистки.

  5. Для диагностики настоящего хранилища нужен отдельно подготовленный администратором учебный сервер. Код различает отсутствие поддержки платформой и ошибку чтения состояния, не включает сервис автоматически.

Процедура ВыполнитьПример() Экспорт
    Справочник = Метаданные.Справочники.Найти("УчебныеФайлы");
    Если Справочник = Неопределено Тогда
        ВызватьИсключение "Сначала подготовьте собственный учебный справочник УчебныеФайлы";
    КонецЕсли;
    Данные = Справочник.Реквизиты.Найти("Данные");
    Предпросмотр = Справочник.Реквизиты.Найти("Предпросмотр");
    Если Данные = Неопределено ИЛИ Предпросмотр = Неопределено Тогда
        ВызватьИсключение "Нужны два собственных реквизита ХранилищеЗначения";
    КонецЕсли;
    Если НЕ Данные.Тип.СодержитТип(Тип("ХранилищеЗначения"))
        ИЛИ НЕ Предпросмотр.Тип.СодержитТип(Тип("ХранилищеЗначения")) Тогда
        ВызватьИсключение "Состав допускает данные типа ХранилищеЗначения, не произвольную строку";
    КонецЕсли;
    Состав = Новый СоставХранимыхДанныхХранилищаДвоичныхДанных;
    Основной = Состав.Добавить(Данные, ИспользованиеХраненияВХранилищеДвоичныхДанных.НеИспользовать);
    Миниатюра = Состав.Добавить(Предпросмотр, ИспользованиеХраненияВХранилищеДвоичныхДанных.Использовать);
    Сообщить(Состав.Количество() = 2);
    Сообщить(Основной.Метаданные = Данные);
    Сообщить(Основной.Хранение = ИспользованиеХраненияВХранилищеДвоичныхДанных.НеИспользовать);
    Сообщить(Миниатюра.Метаданные = Предпросмотр);
    Сообщить(Состав.Индекс(Миниатюра) = 1);
    Сообщить(Состав.Получить(1).Метаданные = Предпросмотр);
    Найден = Состав.Найти(Данные);
    Если Найден = Неопределено Тогда
        ВызватьИсключение "Добавленный реквизит не найден в собственном составе";
    КонецЕсли;
    Сообщить(Найден.Метаданные = Данные);
КонецПроцедуры

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

  1. Добавить принимает метаданные реквизита, ресурса или константы, содержащей ХранилищеЗначения. Не передаём туда весь справочник или строковый Артикул.

  2. Метаданные и Хранение элемента читаются отдельно. Первая настройка запрещает использование хранения для собственного поля Данные, вторая допускает его для Предпросмотр только в проекте состава.

  3. Количество и порядок известны, потому что состав создан самим уроком. Индекс второго элемента равен 1; Получить не вызывается у пустой коллекции.

  4. Найти может вернуть Неопределено. Проверяем результат до обращения к его свойствам.

  5. Нет УстановитьСоставХранимыхДанных или Записать. Новые правила не применяются к базе и не переносят двоичные данные.

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

  1. Семь контрольных Истина. Состав содержит только два подготовленных вами поля.

  2. После запуска записи справочника и конфигурация реального сервиса не изменились.

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

Получен осмысленный проект состава с двумя разными настройками хранения.

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

  1. Длинный общий тип Метаданные в описании элемента не означает, что Добавить принимает любой объект конфигурации.

  2. Созданный состав не является подтверждением доступности сервера хранения.

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

Изменить проект правила через замену readonly-элемента

У Хранение элемента состава по справке только чтение. Не присваиваем это свойство; заменяем правило в собственной новой коллекции.

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

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

Подготовка

  1. Создайте отдельную пустую учебную конфигурацию на платформе 8.5.1.1343 с режимом совместимости НеИспользовать. Не используйте производственную базу и не изменяйте предоставленные выгрузки КА2/УТ/УНФ.

  2. Добавьте справочник УчебныеФайлы и три реквизита: Данные и Предпросмотр с типом ХранилищеЗначения, ИспользоватьВнешнееХранение с типом Булево. Обновите только свою учебную базу. Сами записи справочника создавать не нужно.

  3. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своей серверной команды.

  4. Упражнения с Новый СоставХранимыхДанныхХранилищаДвоичныхДанных и параметрами подключения меняют только собственные объекты в памяти. Нет установки состава, записи менеджера, резервного копирования или физической очистки.

  5. Для диагностики настоящего хранилища нужен отдельно подготовленный администратором учебный сервер. Код различает отсутствие поддержки платформой и ошибку чтения состояния, не включает сервис автоматически.

Процедура ВыполнитьПример() Экспорт
    Справочник = Метаданные.Справочники.Найти("УчебныеФайлы");
    Если Справочник = Неопределено Тогда
        ВызватьИсключение "Сначала подготовьте собственный учебный справочник УчебныеФайлы";
    КонецЕсли;
    Данные = Справочник.Реквизиты.Найти("Данные");
    Предпросмотр = Справочник.Реквизиты.Найти("Предпросмотр");
    Если Данные = Неопределено ИЛИ Предпросмотр = Неопределено Тогда
        ВызватьИсключение "Нужны два собственных реквизита ХранилищеЗначения";
    КонецЕсли;
    Если НЕ Данные.Тип.СодержитТип(Тип("ХранилищеЗначения"))
        ИЛИ НЕ Предпросмотр.Тип.СодержитТип(Тип("ХранилищеЗначения")) Тогда
        ВызватьИсключение "Состав допускает данные типа ХранилищеЗначения, не произвольную строку";
    КонецЕсли;
    Состав = Новый СоставХранимыхДанныхХранилищаДвоичныхДанных;
    Старое = Состав.Добавить(Данные, ИспользованиеХраненияВХранилищеДвоичныхДанных.НеИспользовать);
    Сообщить(Старое.Хранение = ИспользованиеХраненияВХранилищеДвоичныхДанных.НеИспользовать);
    Состав.Удалить(Старое);
    Новое = Состав.Добавить(Данные, ИспользованиеХраненияВХранилищеДвоичныхДанных.Использовать);
    Сообщить(Новое.Хранение = ИспользованиеХраненияВХранилищеДвоичныхДанных.Использовать);
    Сообщить(Новое.Метаданные = Данные);
    Сообщить(Состав.Количество() = 1);
    Сообщить(Состав.Найти(Данные).Хранение = Новое.Хранение);
КонецПроцедуры

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

  1. Readonly-свойство Хранение нельзя менять присваиванием. Новый режим передаётся вторым аргументом Добавить.

  2. Старый элемент удаляется до добавления нового для того же реквизита. Не полагаемся на недокументированное поведение повторного добавления дубликата.

  3. Число правил остаётся 1, ссылка на объект метаданных прежняя, режим нового элемента другой.

  4. Меняется только проект состава в памяти. Никакая запись реквизита не переносится в сервис автоматически.

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

  1. Пять контрольных Истина; в собственной коллекции одно новое правило.

  2. Нельзя найти в коде присваивание Старое.Хранение или вызов административного применения состава.

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

Показан корректный способ построения нового описания вместо записи в readonly-свойство.

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

  1. Новый элемент не означает миграцию уже записанных двоичных данных.

  2. Нельзя переносить Очистить из собственной коллекции на рабочую конфигурацию без отдельного анализа.

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

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

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

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

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