Всем доброго времени суток. Столкнулся вот с какой ситуацией. Во внешней обработке при запуске на главной форме должен автоматически появляться логотип фирмы. Для решения этой задачи я решил использовать штатный справочник типовой конфигурации ЗиУП 1С 8.3 (3.0.57.10). В справочнике добавил новый элемент подгрузил в него картинку, обозвал как положено. Теперь значит в форме обработки делаю такой вот код:

```1c
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОбновитьИзображение();
    КонецПроцедуры
    Процедура ОбновитьИзображение()
    Попытка
    НайденныйСправочник = Справочники.Файлы.НайтиПоНаименованию("Логотип",Истина);
    Сообщить(ТипЗнч(НайденныйСправочник));

    ОбъектЭлемента = НайденныйСправочник.ПолучитьОбъект();

    //ПолеКартинки = ПоместитьВоВременноеХранилище(ОбъектЭлемента.ТекстХранилище.Получить(), УникальныйИдентификатор);//закомментировал этот кусок кода, т.к. он так же не приводит к нужному результату. Результат такой же как и у "ПолучитьНавигационнуюСсылку".
    ПолеКартинки = ПолучитьНавигационнуюСсылку(ОбъектЭлемента, "ТекстХранилище");
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    КонецПроцедуры
```

Проблема в том, что при запуске обработке в поле картинки вместо картинки, появляется просто крест (я так понимаю картинка не подгружается туда, или я пытаюсь не те данные туда впихнуть, в общем сам разобраться не могу).

Подскажет кто нибудь, что я делаю не так?)) Спасибо всем за внимание.
---
В общем проблему решил следующим образом. Справочник "Файлы" - вовсе не предназначен для хранения самих файлов, он просто хранит грубо выражаясь указание на тот регистр где находятся сами конкретно файлы. И этим регистром является РегистрСведений "ХранимыеФайлыВерсий" - у этого регистра есть ресурс "ХранимыйФайл" - думаю название говорит само за себя.

Грубо выражаясь, в метод "ПоместитьВоВременноеХранилище" нужно передавать как раз этот самый ресурс. И тогда у меня всё заработало. Привожу пример рабочего кода:

```1c
    Запрос = новый Запрос;

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

    Запрос.Текст = ТекстЗапроса;
    Запрос.Параметры.Вставить("Наименование", "Логотип");

    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    Пока РезультатЗапроса.Следующий() цикл
    ОбъектЭлемента = РезультатЗапроса.Файл; //данный код будет корректно работать если результатом запроса является одна единственная
    запись
    КонецЦикла;

    ПолеКартинки = ПоместитьВоВременноеХранилище(ОбъектЭлемента.Получить(), УникальныйИдентификатор);
```

Всем спасибо)
---
ПоместитьВоВременноеХранилище действительно возвращает текстовую строку. Я эту текстовую строку через метод "сообщить" вывел на экран, результат - как я понял какой то кеш, строка не длинная, а короткая. Просто какой то кэш. Возможно этот кэш и является адресом картинки во временном хранилище.
---
Посмотрите функцию РаботаСФайлами.ДвоичныеДанныеФайла()
И почитайте документацию по БСП, раздел Работа с файлами
---
В общем проблему решил следующим образом. Справочник "Файлы" - вовсе не предназначен для хранения самих файлов, он просто хранит грубо выражаясь указание на тот регистр где находятся сами конкретно файлы. И этим регистром является РегистрСведений "ХранимыеФайлыВерсий" - у этого регистра есть ресурс "ХранимыйФайл" - думаю название говорит само за себя.

Грубо выражаясь, в метод "ПоместитьВоВременноеХранилище" нужно передавать как раз этот самый ресурс. И тогда у меня всё заработало. Привожу пример рабочего кода:

```1c
    Запрос = новый Запрос;

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

    Запрос.Текст = ТекстЗапроса;
    Запрос.Параметры.Вставить("Наименование", "Логотип");

    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    Пока РезультатЗапроса.Следующий() цикл
    ОбъектЭлемента = РезультатЗапроса.Файл; //данный код будет корректно работать если результатом запроса является одна единственная
    запись
    КонецЦикла;

    ПолеКартинки = ПоместитьВоВременноеХранилище(ОбъектЭлемента.Получить(), УникальныйИдентификатор);
```

Всем спасибо)
---
А потом файлы перенесутся в тома и ваш код сломается. Используйте штатные методы библиотеки, велосипед в данном случае не оправдан
---
я не профессионал в 1С программировании, можете объяснить, что значит "потом файлы перенесутся в тома" - я считал что в регистре этот файл и будет дальше храниться, если соответствующий ему элемент справочника не удалят.
---
Есть такая штука - Библиотека стандартных подсистем, она содержит всякие типовые вещи и ее пихают во все типовые конфигурации. У нее в составе есть подсистема РаботаСФайлами, именно она отвечает за возможность прикрепления файлов в типовых конфигурациях. Так вот эта подсистема может хранить файлы двумя способами - В базе (как в вашем случае) и в томах на диске. В первом случае используется регистр ХранимыеФайлыВерсий, во втором - общая папка где-то в сети.
За подробностями сюда - https://its.1c.ru/db/bsp245doc#content:63:1
---
Может быть подскажешь тогда каким именно штатным методом я могу получить картинку и перенести её на форму? Если есть какая то общая процедура или функция для этого, то конечно, так лучше всего поступить. Но проблема в том, что я не знаю таких функций, а читать документацию по БСП и пересматривать весь код общего модуля "РаботаСФайлами" - вещь конечно интересная, но займет много времени, которого у меня к сожалению нет. Да и задача сам понимаешь, не принципиально важная, - разместить логотип фирмы на основной форме внешней обработки.

Поэтому если можешь подсказать какую то конкретную функцию или хотя бы процедуру из общего модуля для этого - я буду только рад.
---
Уже подсказал в (3)
---
код для ЗУП 3.1 (3.1.18.189)
Помещает файл xlsx (можно любой тип) с диска в Справочник.Файлы
Вернее, заполняет три объекта два справочника и регистр сведений.
Сам файл в двоичном виде помещает в РегистрСведений.ДвоичныеДанныеФайлов в реквизит ДвоичныеДанныеФайла
в реквизит Файл помещает ссылку на Справочник.ВерсииФайлов
Заполняет Справочник.ВерсииФайлов и Справочник.Файлы

```1c
    &НаСервере
    Процедура ДобавитьФайлИзФайловойСистемы()
    СсылкаНаПапку = ПолучитьСсылкуНаЭлементСправочникаФайлыВКакуюПапкуПомещать;
    ПолноеИмяФайла = "D:\ваш путь\1.xlsx";
    ФайлКлиента = Новый Файл( ПолноеИмяФайла);
    ДвоичныеДанные = Новый ДвоичныеДанные(ПолноеИмяФайла);
    АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор);
    АдресВременногоХранилищаТекста = ";
    СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией", ФайлКлиента);
    СведенияОФайле.АдресВременногоХранилищаФайла = АдресВременногоХранилищаФайла;
    СведенияОФайле.АдресВременногоХранилищаТекста = АдресВременногоХранилищаТекста;
    СведенияОФайле.ЗаписатьВИсторию = Истина;
    СведенияОФайле.ИмяБезРасширения = "1";
    СведенияОФайле.РасширениеБезТочки = "xlsx";
    ФайлСсылка = РаботаСФайламиСлужебныйВызовСервера.СоздатьФайлСВерсией(СсылкаНаПапку, СведенияОФайле);
    КонецПроцедуры
```