Не могли бы Вы, пожалуйста, помочь.
Как добавить программно изображение в карточку номенклатуры?
При нажатие кнопки Команда1 во внешней обработке (в табличной части выбирается номенклатура и подставляется ссылка вручную) для номенклатуры в карточку подставлялось бы изображение по ссылке, как на 3-й картинке.
---
До конца не понял что нужно, но я думаю процедурка поможет

```1c
    Процедура ЗагрузитьИзображениеНаСервере(Номенклатура)

    Путь = "c:\1CDBases\NewPic\Pic\"+СокрЛП(Номенклатура.Код)+".jpg";

    Попытка
    НачатьТранзакцию();

    ФайлИзображения = новый Файл(Путь);
    Если ФайлИзображения.Существует() Тогда
    ДвоичныеДанные = Новый ДвоичныеДанные(Путь);
    АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные);

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

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

    Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда
    НоменклатураОбъект = Номенклатура.ПолучитьОбъект();
    НоменклатураОбъект.ФайлКартинки = ПрисоединенныйФайл;

    НоменклатураОбъект.Записать();
    ЗафиксироватьТранзакцию();
    Сообщить("УСПЕШНО загружено изображение в "+Номенклатура);
    Иначе
    Сообщить("Не удалось добавить в базу файл "+Путь);
    ОтменитьТранзакцию();
    КонецЕсли;

    КонецЕсли;

    Иначе
    Сообщить("Файл "+Путь+" не найден");
    ОтменитьТранзакцию();
    КонецЕсли;
    Исключение
    Сообщить("При добавлении файла "+Путь+" произошла ошибка "+ОписаниеОшибки());
    ОтменитьТранзакцию();
    КонецПопытки;

    КонецПроцедуры
```
---
До конца не понял что нужно, но я думаю процедурка поможет

```1c
    Процедура ЗагрузитьИзображениеНаСервере(Номенклатура)

    Путь = "c:\1CDBases\NewPic\Pic\"+СокрЛП(Номенклатура.Код)+".jpg";

    Попытка
    НачатьТранзакцию();

    ФайлИзображения = новый Файл(Путь);
    Если ФайлИзображения.Существует() Тогда
    ДвоичныеДанные = Новый ДвоичныеДанные(Путь);
    АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные);

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

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

    Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда
    НоменклатураОбъект = Номенклатура.ПолучитьОбъект();
    НоменклатураОбъект.ФайлКартинки = ПрисоединенныйФайл;

    НоменклатураОбъект.Записать();
    ЗафиксироватьТранзакцию();
    Сообщить("УСПЕШНО загружено изображение в "+Номенклатура);
    Иначе
    Сообщить("Не удалось добавить в базу файл "+Путь);
    ОтменитьТранзакцию();
    КонецЕсли;

    КонецЕсли;

    Иначе
    Сообщить("Файл "+Путь+" не найден");
    ОтменитьТранзакцию();
    КонецЕсли;
    Исключение
    Сообщить("При добавлении файла "+Путь+" произошла ошибка "+ОписаниеОшибки());
    ОтменитьТранзакцию();
    КонецПопытки;

    КонецПроцедуры
```
---
Спасибо Вам большое за Вашу помощь. Ваш код сработал так, как нужно. Спасибо!
---
Это для УТ11
---
Добрый день!
Мы сейчас решаем почти аналогичную задачу, могли бы нам помочь с ней, за оплату через инфостарт.
Напишите, пожалуйста, в личные сообщения.
---
Не могли бы вы помочь начал разбираться что такое 1С Розница 2_3_1_30 и как им пользоваться, пытаюсь добавить картинки по ссылкам из файла через обработку стандартную, все добавляться но возникла проблема. Картинка загружается в Номенклатур столько раз сколько запускалась обработка. подскажите как сделать сравнение и если есть уже такая картинка то ее не загружать

```1c
    НаименованиеНоменклатуры = СокрЛП(ТекстыЯчеек[2]);
    ПутьРисунка = СокрЛП(ТекстыЯчеек[35]);

    ФайлИзображения = новый Файл(ПутьРисунка);
    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьРисунка);
    АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные);

    Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Наименование КАК Наименование,
    | Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    | Номенклатура.ЭтоГруппа КАК ЭтоГруппа
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.ЭтоГруппа = ЛОЖЬ
    | И Номенклатура.Наименование = &Наименование";
    Запрос = Новый Запрос(Текст);
    Запрос.УстановитьПараметр("Наименование", НаименованиеНоменклатуры);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() тогда
    ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(Выборка.Ссылка,ФайлИзображения.ИмяБезРасширения,СтрЗаменить(ФайлИзображения.Расширение,".","),ТекущаяДата(),ТекущаяДата(),АдресВременногоХранилищаФайла,,"Изображение загружено обработкой по данным файла Excel");

    Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда
    НоменклатураОбъект = Выборка.Ссылка.ПолучитьОбъект();
    НоменклатураОбъект.ФайлКартинки = ПрисоединенныйФайл;
    НоменклатураОбъект.Записать();
    Сообщить("УСПЕШНО загружено изображение в "+Выборка.Ссылка);
    КонецЕсли;
    КонецЕсли;
```
---
Если кому-то вдруг понадобится, рабочий код для обмена с УТ 11.5.11.96 (объекта в базе еще может не быть):

```1c
    ИмяФайла = ПараметрыОбъекта.Получить("ИмяФайла");

    Если ЗначениеЗаполнено(ИмяФайла) Тогда

    Файл = Новый Файл(ИмяФайла);
    Если Файл.Существует() Тогда

    ПрисоединенныйФайлНайден = Ложь;

    Если Не Объект.Ссылка.Пустая() Тогда

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

    Запрос.УстановитьПараметр("Номенклатура", Объект.Ссылка);
    Запрос.УстановитьПараметр("ИмяБезРасширения", Файл.ИмяБезРасширения);

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда

    ПрисоединенныйФайлНайден = Истина;
    ПрисоединенныйФайл = Выборка.Ссылка;

    Если ПрисоединенныйФайл.ДатаМодификацииУниверсальная <> Файл.ПолучитьУниверсальноеВремяИзменения() Тогда

    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);

    ИнформацияОФайле = Новый Структура;
    ИнформацияОФайле.Вставить("АдресФайлаВоВременномХранилище", ПоместитьВоВременноеХранилище(ДвоичныеДанные));
    ИнформацияОФайле.Вставить("АдресВременногоХранилищаТекста", ");

    РаботаСФайлами.ОбновитьФайл(ПрисоединенныйФайл, ИнформацияОФайле);

    КонецЕсли;

    КонецЕсли;

    КонецЕсли;

    Если Не ПрисоединенныйФайлНайден Тогда

    СсылкаНаОбъект = Объект.Ссылка;;
    Если СсылкаНаОбъект.Пустая() Тогда
    СсылкаНаОбъект = Объект.ПолучитьСсылкуНового();
    Если СсылкаНаОбъект.Пустая() Тогда
    СсылкаНаОбъект = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Объект.Ссылка).ПолучитьСсылку();
    Объект.УстановитьСсылкуНового(СсылкаНаОбъект);
    КонецЕсли;
    КонецЕсли;

    ПараметрыФайла = РаботаСФайлами.ПараметрыДобавленияФайла();
    ПараметрыФайла.ВладелецФайлов = СсылкаНаОбъект;
    ПараметрыФайла.ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения();
    ПараметрыФайла.ИмяБезРасширения = Файл.ИмяБезРасширения;
    ПараметрыФайла.РасширениеБезТочки = ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(Файл.Расширение);

    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
    АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);

    ПрисоединенныйФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, АдресФайлаВоВременномХранилище, ");

    Объект.ФайлКартинки = ПрисоединенныйФайл;

    КонецЕсли;

    КонецЕсли;

    КонецЕсли;
```
---
Спасибо, пригодилось. Код рабочий для 11.5