1С:Предприятие 8.3 (8.3.8.2027)
"Управление торговлей для Украины", редакция 2.3.
Есть код :
Для Каждого Стр Из ТаблицаДанныхВрем Цикл
Сообщить(Стр[3]);
Товар = Справочники.Номенклатура.НайтиПоКоду(Стр[3]);
Если ПустаяСтрока(Стр[4]) Тогда
Продолжить;
КонецЕсли;
НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Сообщить("Загрузка в "+Товар+"...");
ВыбранноеИзображение = Новый Картинка(ИмяКаталогаИмяФайл, Ложь);
НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
НовыйОбъект.Объект = Товар;
Попытка
НовыйОбъект.Записать();
Стр.Статус = Истина;
ОбъектИзображения = Товар.ПолучитьОбъект();
ОбъектИзображения.ОсновноеИзображение = НовыйОбъект.Ссылка;
ОбъектИзображения.ОсновноеИзображение.ИмяФайла = НовыйОбъект.Ссылка;
ОбъектИзображения.Записать();
Исключение
КонецПопытки;
КонецЦикла;
вроде как все правильно..
у меня для УТП-шки вот такой код нормально срабатывал:
Процедура УстановитьОсновнуюКартинку(ИмяКартинки,КартинкаДляЗаливки,ОбъектТовар)
Если КартинкаДляЗаливки = Неопределено Тогда
Возврат;
КонецЕсли;
Хранилище = новый ХранилищеЗначения(КартинкаДляЗаливки);
// получаем новый элемент ХранилищеДополнительнойИнформации
ХранилищеДопИнф = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
// устанавливаем свойства элемента ХранилищеДополнительнойИнформации
ХранилищеДопИнф.Наименование = ИмяКартинки;
ХранилищеДопИнф.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
ХранилищеДопИнф.Объект = ОбъектТовар.Ссылка;
ХранилищеДопИнф.Хранилище = Хранилище;
// сохраняем новый элемент в базу
Попытка
ХранилищеДопИнф.Записать();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
ОбъектТовар.ОсновноеИзображение = ХранилищеДопИнф.Ссылка;
КонецПроцедуры
ОбъектИзображения.ОсновноеИзображение.ИмяФайла = НовыйОбъект.Ссылка;
Процедура КнопкаЗагрузитьКартинкиНажатие(Элемент)
ИндикаторОбработки = 0;
ЭлементыФормы.ИндикаторОбработки.МаксимальноеЗначение = ТаблицаДанныхВрем.Количество();
ВыбранноеИзображение = Новый Картинка(ИмяКаталогаИмяФайл, Ложь);
Для Каждого Стр Из ТаблицаДанныхВрем Цикл
Сообщить(Стр[3]);
Товар = Справочники.Номенклатура.НайтиПоКоду(Стр[3]);
НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Сообщить("Загрузка в "+Товар+"...");
ВыбранноеИзображение = Новый Картинка(ИмяКаталогаИмяФайл, Ложь);
НовыйОбъект.Наименование = Товар.Код;
НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
НовыйОбъект.Объект = Товар;
Попытка
НовыйОбъект.Записать();
ОбъектИзображения = Товар.ПолучитьОбъект();
ОбъектИзображения.ОсновноеИзображение = НовыйОбъект;
ОбъектИзображения.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
ИндикаторОбработки = ИндикаторОбработки + 1;
КонецЦикла;
КонецПроцедуры
Процедура КнопкаУдалитьИзображениеНажатие(Элемент)
Для Каждого Стр Из ТаблицаДанныхВрем Цикл
Сообщить(Стр[3]);
Товар = Справочники.Номенклатура.НайтиПоКоду(Стр[3]);
ИзображениеНом = Товар.ОсновноеИзображение;
ИзображениеНом = ИзображениеНом.Ссылка.ПолучитьОбъект();
ИзображениеНом.Удалить();
Сообщить(" удалена картинка "+Товар);
КонецЦикла;
КонецПроцедуры
1. Вместо
ОбъектИзображения.ОсновноеИзображение = НовыйОбъект;
нужно ОбъектИзображения.ОсновноеИзображение = НовыйОбъект.Ссылка;
2. ! | http://pro1c.org.ua/index.php?act=announce&id=2: п. 6 |
Спасибо. Картинку записывает , но не ставит основным изображением .
В ручную удалил все картинки . А потом с помощью этого кода загрузил одну и она появилась как основная .
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua