Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Установка Основного изображения , Картинку загружает к товару , но не устанавливает основным изображение          
Tseka Подменю пользователя
сообщение 02.03.19, 18:12
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

1С:Предприятие 8.3 (8.3.8.2027)

"Управление торговлей для Украины", редакция 2.3.

Есть код :

Для Каждого Стр Из ТаблицаДанныхВрем Цикл
        
        
        Сообщить(Стр[3]);
        Товар = Справочники.Номенклатура.НайтиПоКоду(Стр[3]);
        
        Если ПустаяСтрока(Стр[4]) Тогда
            Продолжить;
        КонецЕсли;
        НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        Сообщить("Загрузка в "+Товар+"...");
        ВыбранноеИзображение = Новый Картинка(ИмяКаталогаИмяФайл, Ложь);
        
        НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
        НовыйОбъект.Объект = Товар;
        Попытка
            НовыйОбъект.Записать();
            Стр.Статус = Истина;
            
            ОбъектИзображения = Товар.ПолучитьОбъект();
            ОбъектИзображения.ОсновноеИзображение = НовыйОбъект.Ссылка;
            ОбъектИзображения.ОсновноеИзображение.ИмяФайла = НовыйОбъект.Ссылка;
            ОбъектИзображения.Записать();
        Исключение
        КонецПопытки;
        
    КонецЦикла;


Картинку загружает к товару , но не устанавливает основным изображением .

Что в этом коде добавить чтобы осуществить установку основного изображения товара ? Картинку загружает к товару , но не устанавливает основным изображением .


nik389 Подменю пользователя
сообщение 02.03.19, 19:32
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 153
Из: Украина
Спасибо сказали: 37 раз
Рейтинг: 34

вроде как все правильно..

у меня для УТП-шки вот такой код нормально срабатывал:

Процедура УстановитьОсновнуюКартинку(ИмяКартинки,КартинкаДляЗаливки,ОбъектТовар)
    Если КартинкаДляЗаливки = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Хранилище = новый ХранилищеЗначения(КартинкаДляЗаливки);

    // получаем новый элемент ХранилищеДополнительнойИнформации
    ХранилищеДопИнф = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();

    // устанавливаем свойства элемента ХранилищеДополнительнойИнформации
    ХранилищеДопИнф.Наименование = ИмяКартинки;
    ХранилищеДопИнф.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;    
    ХранилищеДопИнф.Объект = ОбъектТовар.Ссылка;
    ХранилищеДопИнф.Хранилище = Хранилище;

    // сохраняем новый элемент в базу
    Попытка
        ХранилищеДопИнф.Записать();
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        
    ОбъектТовар.ОсновноеИзображение = ХранилищеДопИнф.Ссылка;    
КонецПроцедуры


Спасибо сказали: roman457, Tseka,

pablo Подменю пользователя
сообщение 05.03.19, 12:11
Сообщение #3

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

ОбъектИзображения.ОсновноеИзображение.ИмяФайла = НовыйОбъект.Ссылка;

В этой строке генерируется исключительная ситуация


Сообщение отредактировал pablo - 05.03.19, 12:12


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: Tseka,

Tseka Подменю пользователя
сообщение 05.03.19, 16:21
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(pablo @ 05.03.19, 12:11) *
В этой строке генерируется исключительная ситуация



Исправил , но всё равно не устанавливается основным , просто записывается в изображение .

Процедура КнопкаЗагрузитьКартинкиНажатие(Элемент)
    ИндикаторОбработки = 0;
    ЭлементыФормы.ИндикаторОбработки.МаксимальноеЗначение = ТаблицаДанныхВрем.Количество();
    ВыбранноеИзображение = Новый Картинка(ИмяКаталогаИмяФайл, Ложь);

    Для Каждого Стр Из ТаблицаДанныхВрем Цикл
        
        Сообщить(Стр[3]);
        Товар = Справочники.Номенклатура.НайтиПоКоду(Стр[3]);
        
        НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        Сообщить("Загрузка в "+Товар+"...");
        ВыбранноеИзображение = Новый Картинка(ИмяКаталогаИмяФайл, Ложь);
        НовыйОбъект.Наименование = Товар.Код;
        НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
        
        
        НовыйОбъект.Объект = Товар;
        Попытка
                
            НовыйОбъект.Записать();
                
            
            ОбъектИзображения = Товар.ПолучитьОбъект();
        
            ОбъектИзображения.ОсновноеИзображение = НовыйОбъект;
            
            ОбъектИзображения.Записать();
        Исключение
                Сообщить(ОписаниеОшибки());
        КонецПопытки;
    
        ИндикаторОбработки = ИндикаторОбработки + 1;
        
    КонецЦикла;

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


Tseka @ Сегодня, 15:39 * ,
Как можно получить список картинок у Товара ?

Tseka Подменю пользователя
сообщение 06.03.19, 13:53
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Процедура КнопкаУдалитьИзображениеНажатие(Элемент)
    Для Каждого Стр Из ТаблицаДанныхВрем Цикл
        
        Сообщить(Стр[3]);
        Товар = Справочники.Номенклатура.НайтиПоКоду(Стр[3]);
        
        
        ИзображениеНом = Товар.ОсновноеИзображение;
        ИзображениеНом = ИзображениеНом.Ссылка.ПолучитьОбъект();
        ИзображениеНом.Удалить();

        Сообщить(" удалена картинка "+Товар);
        

    КонецЦикла;

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


{ВнешняяОбработка.ГрупповаяУстановкаОсновногоИзображения.Форма.Форма.Форма(1380)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
ИзображениеНом = ИзображениеНом.Ссылка.ПолучитьОбъект();
по причине:
Элемент не выбран!

47046430.gif Что я делаю не так ? Там шесть картинок ... Как их удалить ?

pablo Подменю пользователя
сообщение 06.03.19, 17:21
Сообщение #6

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

1. Вместо
ОбъектИзображения.ОсновноеИзображение = НовыйОбъект;
нужно
ОбъектИзображения.ОсновноеИзображение = НовыйОбъект.Ссылка;
2.
 ! 

Правила: п. 6
 


Сообщение отредактировал pablo - 06.03.19, 17:21


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: Tseka,

Tseka Подменю пользователя
сообщение 06.03.19, 18:46
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо. Картинку записывает , но не ставит основным изображением . 64000000.gif



В ручную удалил все картинки . А потом с помощью этого кода загрузил одну и она появилась как основная . 32000000.gif


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 3:04
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!