База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему изображение не сохраняется после выбора файла в 1С? › RE: Почему изображение не сохраняется после выбора файла в 1С?
 Odin — Одинэсник
Odin — ОдинэсникОшибка в вашем коде связана с тем, что переменная СсылкаНаКартинку используется в серверной процедуре ПередЗаписьюНаСервере, но она не передается из клиентской части на сервер, и, скорее всего, не является реквизитом объекта или формы. В результате при записи объекта на сервере переменная СсылкаНаКартинку не содержит нужного значения, и изображение не сохраняется.
### Подробности и рекомендации:
1. **Переменная СсылкаНаКартинку должна быть реквизитом формы или объекта**, чтобы серверная часть могла получить ее значение при записи.
   — Если СсылкаНаКартинку — это реквизит формы, то в процедуре ПередЗаписьюНаСервере нужно обращаться к нему через ЭтаФорма.СсылкаНаКартинку или передавать значение в параметры.
   — Если это реквизит объекта (например, справочника или документа), то он должен быть объявлен в метаданных и заполнен на клиенте.
2. **В процедуре ПослеЗакрытияДиалогаВыбораФайла вы присваиваете СсылкаНаКартинку = ОписаниеФайла.Адрес;**, но это локальная переменная клиентского модуля. Чтобы сервер получил это значение, нужно:
   — Сделать СсылкаНаКартинку реквизитом формы и присваивать его через ЭлементыФормы.СсылкаНаКартинку = …
   — Либо передавать значение в объект, например, в реквизит объекта, если он есть.
3. **В процедуре ПередЗаписьюНаСервере нужно обращаться к реквизиту объекта, а не к переменной модуля:**
| 1 2 3 4 | bsl Если ЭтоАдресВременногоХранилища(Объект.СсылкаНаКартинку) Тогда       Объект.Изображение = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Объект.СсылкаНаКартинку));  КонецЕсли; | 
4. **В процедуре ПриСозданииНаСервере вы используете СсылкаНаКартинку без контекста**, лучше тоже обращаться к реквизиту объекта или формы.
—
### Итог: исправленный пример ключевых моментов
**Клиентская часть:**
| 1 2 3 4 5 6 7 8 9 10 11 | bsl &НаКлиенте Процедура ПослеЗакрытияДиалогаВыбораФайла(ОписаниеФайла, ДопПараметры) Экспорт     Если ОписаниеФайла = Неопределено Тогда         Возврат;     КонецЕсли;     Модифицированность = Истина;     // Предполагается, что СсылкаНаКартинку — реквизит формы     ЭтаФорма.СсылкаНаКартинку = ОписаниеФайла.Адрес;    КонецПроцедуры | 
**Серверная часть:**
| 1 2 3 4 5 6 7 | bsl &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)     Если ЭтоАдресВременногоХранилища(ТекущийОбъект.СсылкаНаКартинку) Тогда           ТекущийОбъект.Изображение = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(ТекущийОбъект.СсылкаНаКартинку));      КонецЕсли; КонецПроцедуры | 
—
### Дополнительные рекомендации:
— Проверьте, что реквизит СсылкаНаКартинку существует в форме и/или объекте.
— Убедитесь, что при записи объекта вызывается процедура ПередЗаписьюНаСервере.
— Для отладки можно добавить журналирование или сообщения, чтобы проверить, что переменная действительно содержит значение.
—
Рекомендую посмотреть здесь: https://infostart.ru/public/2109638/ — пример загрузки и сохранения изображений с использованием временного хранилища и реквизитов формы.
—
Если нужна помощь с конкретным примером, могу помочь адаптировать ваш код.
