Коллеги, подскажите где я туплю?
Хочу Хранилище значений сохранить в файл.

В пустой конфигурации есть РС с ресурсом типа ХранилищеЗначений.
В это поле я хочу сохранять файлы, прикрепленные к документу.

Прикрепляется все без ошибок. Проблема с сохранением.

текст процедуры сохранения

```1c
    &НаСервере
    Процедура СохранитьФайлНаСервере(Ссылка)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДвоичныеДанныеФайлов.ДвоичныеДанные КАК ДвоичныеДанные
    |ИЗ
    | РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов
    |ГДЕ
    | ДвоичныеДанныеФайлов.ВладелецФайла = &ВладелецФайла";

    Запрос.УстановитьПараметр("ВладелецФайла", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();

    ДвоичныеДанные = ?(Выборка.Следующий(), Выборка.ДвоичныеДанные.Получить(), Неопределено);

    ДвоичныеДанные.Записать("D:\test.xlsx");

    КонецПроцедуры
```

так вот в отладчике ДвоичныеДанные = C:\Users\Алексей\AppData\Local\Temp\v8_C4CF_8.xlsx

А я думал, там именно двоичные данные будут.

Что я не так делаю?
---
Процедура ЗагрузитьНаСервере
1. Добавить третьей строкой запись данных во временный файл:
ФайлВременногоХранилища.Записать(ДанныеФайла);

2. Исправить помещение данных в хранилище значений:
Рег.ДвоичныеДанные = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ФайлВременногоХранилища), Новый СжатиеДанных(9));
---
Я хотел двоичные данные поместить во временное хранилище, а потом сохранить как положено.
А тут не пойму почему мне путь к файлу возвращается.

Вот приведу код как я сохраняю файл в хранилище

```1c
    &НаКлиенте
    Процедура ПрикрепитьФайл(Команда)

    Если Объект.Ссылка.Пустая() Тогда
    Сообщить("Нужно сперва записать элемент!");
    Возврат;
    КонецЕсли;

    ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

    ДиалогФыбораФайла.Фильтр = "Файл Excel (*.xls, *.xlsx)|*.xls?";
    ДиалогФыбораФайла.Заголовок = "Выберите файл для загрузки данных";
    ДиалогФыбораФайла.ПредварительныйПросмотр = Ложь;
    ДиалогФыбораФайла.ИндексФильтра = 0;
    ДиалогФыбораФайла.ПроверятьСуществованиеФайла = Истина;

    НачатьПомещениеФайла(Новый ОписаниеОповещения("ВыполнитьЗагрузку",ЭтаФорма),,ДиалогФыбораФайла,истина,УникальныйИдентификатор);

    КонецПроцедуры

    &НаКлиенте
    Процедура ВыполнитьЗагрузку(Результат,Адрес,ВыбранноеИмяФайла,ДополнительныеПараметры) Экспорт
    Если Не Результат Тогда
    Возврат;
    КонецЕсли;
    Расширение=СтрЗаменить(ВыбранноеИмяФайла,".",Символы.ПС);
    Расширение=СтрПолучитьСтроку(Расширение,СтрЧислоСтрок(Расширение));
    ЗагрузитьНаСервере(Адрес,Расширение,ВыбранноеИмяФайла);
    КонецПроцедуры

    &НаСервере
    Процедура ЗагрузитьНаСервере(Знач Адрес,Расширение,ИмяФайла)
    ФайлВременногоХранилища=ПолучитьИзВременногоХранилища(Адрес);
    ДанныеФайла=ПолучитьИмяВременногоФайла(Расширение);
    УдалитьИзВременногоХранилища(Адрес);
    //
    Рег = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
    Рег.ВладелецФайла = Объект.Ссылка;
    Рег.ДвоичныеДанные = Новый ХранилищеЗначения(ДанныеФайла, Новый СжатиеДанных(9));
    Рег.РасширениеФайла=Расширение;
    Рег.ИмяФайла=ИмяФайла;
    Попытка
    Рег.Записать();
    ОбщегоНазначенияСообщения.глСообщениеПользователю("Файл успешно загружен в базу!");
    Исключение
    ОбщегоНазначенияСообщения.глСообщениеПользователю(ИнформацияОбОшибке());
    КонецПопытки;
    //
    УдалитьФайлы(ИмяФайла);
    КонецПроцедуры
```
---
Процедура ЗагрузитьНаСервере
1. Добавить третьей строкой запись данных во временный файл:
ФайлВременногоХранилища.Записать(ДанныеФайла);

2. Исправить помещение данных в хранилище значений:
Рег.ДвоичныеДанные = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ФайлВременногоХранилища), Новый СжатиеДанных(9));
---
Спасибо! я в запаре пытаюсь вытащить двоичные данные файла, не заметив, что не файл туда загрузил, а строку с именем файла.

Вот так вышло

Код&НаСервере
Процедура ЗагрузитьНаСервере(Знач Адрес,Расширение,ИмяФайла)
   ФайлВременногоХранилища=ПолучитьИзВременногоХранилища(Адрес);
   ДанныеФайла=ПолучитьИмяВременногоФайла(Расширение);
   ФайлВременногоХранилища.Записать(ДанныеФайла);
   //
   Рег = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
   Рег.ВладелецФайла = Объект.Ссылка;
   Рег.ДвоичныеДанные = Новый ХранилищеЗначения(ФайлВременногоХранилища, Новый СжатиеДанных(9));
   Рег.РасширениеФайла=Расширение;
   Рег.ИмяФайла=ИмяФайла;
   Попытка
      Рег.Записать();
      ОбщегоНазначенияСообщения.глСообщениеПользователю("Файл успешно загружен в базу!");
   Исключение
      ОбщегоНазначенияСообщения.глСообщениеПользователю(ИнформацияОбОшибке());
   КонецПопытки;
    //
   УдалитьИзВременногоХранилища(Адрес);
КонецПроцедуры
Показать полностью
---
Тогда для чего строки?
ДанныеФайла=ПолучитьИмяВременногоФайла(Расширение);
ФайлВременногоХранилища.Записать(ДанныеФайла);
---
Да, Вы опять правы. Я просто уже заработался. Из другой обработки дергал код (забыл удалить).