Имя: Пароль:
1C
1С v8
Как добавить картинку в НоменклатураПрисоединенныеФайлы?
0 al_zzz
 
15.08.13
08:37
Хочу добавить номенклатуре картинку программно. Написал такой код:
<1c>&НаКлиенте
Процедура ФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл с фотографией";
    Диалог.ПолноеИмяФайла = "";
    Диалог.ПредварительныйПросмотр = Истина;
    Диалог.МножественныйВыбор      = Ложь;
    Диалог.Фильтр =
    "Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
    + "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
    + "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
    + "Формат TIFF (*.tif)|*.tif|"
    + "Формат GIF (*.gif)|*.gif|"
    + "Формат PNG (*.png)|*.png|"
    + "Формат icon (*.ico)|*.ico|"
    + "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки
    
    
    СтандартнаяОбработка = Ложь;
    Если Диалог.Выбрать() Тогда
        Объект.Файл = Диалог.ПолноеИмяФайла;
        ФайлНачалоВыбораНаСервере(Диалог.ПолноеИмяФайла);
    КонецЕсли;
КонецПроцедуры    

&НаСервере
Процедура ФайлНачалоВыбораНаСервере(ПолноеИмяФайла)
    ВыбранноеФото = Новый Картинка(ПолноеИмяФайла,Ложь);
    Ном = Справочники.Номенклатура.НайтиПоНаименованию("Тестовая номенклатура №1");
    НомПрисоед                  = Справочники.НоменклатураПрисоединенныеФайлы.НайтиПоНаименованию(ПолноеИмяФайла);
    Если НомПрисоед = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка() Тогда
    НомПрисоед                  = Справочники.НоменклатураПрисоединенныеФайлы.СоздатьЭлемент();
    НомПрисоед.Автор            = ПараметрыСеанса.ТекущийПользователь;
    НомПрисоед.ВладелецФайла    = Ном;
    НомПрисоед.ДатаСоздания     = ТекущаяДата();
    НомПрисоед.Наименование     = ПолноеИмяФайла;
    НомПрисоед.ПутьКФайлу       = ПолноеИмяФайла;
    НомПрисоед.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
    Иначе
      НомПрисоед = НомПрисоед.ПолучитьОбъект();
  КонецЕсли;
    //НомПрисоед.ФайлХранилище    = Новый ХранилищеЗначения(ВыбранноеФото, Новый СжатиеДанных());
    //НомПрисоед.ФайлХранилище    = Новый ХранилищеЗначения(ВыбранноеФото);
    //НомПрисоед.ФайлХранилище    = Новый ХранилищеЗначения(ВыбранноеФото.ПолучитьДвоичныеДанные());
    НомПрисоед.ФайлХранилище    = Новый ХранилищеЗначения(ВыбранноеФото.ПолучитьДвоичныеДанные(), Новый СжатиеДанных());
    НомПрисоед.Записать();
КонецПроцедуры
</1c>
Получаю во всех случаях: http://vfl.ru/fotos/53e9f03d2894991.html
Подскажите, ЧЯДНТ
С БСП не в ладах, поэтому если будете к ней отсылать, объясните на пальцах.
Заранее спасибо!
1 al_zzz
 
15.08.13
08:41
Конфигурация: Управление торговлей для Украины, редакция 3.0
2 al_zzz
 
15.08.13
09:24
Попробовал сделать как здесь:v8: Загрузка картинки в спр номенклатура

НомПрисоед.ФайлХранилище    = Новый ХранилищеЗначения(Новый Картинка(ПолноеИмяФайла,Истина), Новый СжатиеДанных);
    НомПрисоед.Записать();

Результат тот же.
3 al_zzz
 
15.08.13
09:42
Что? Никто не поможет?
4 al_zzz
 
15.08.13
10:10
Ап!
5 banco
 
15.08.13
10:29
ПрисоединенныеФайлыКлиент.ДобавитьФайлы(ВладелецФайла, УникальныйИдентификатор);