8.х Загрузка Картинки из xls

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alp, 14 фев 2011.

  1. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Доброе Время Суток, как обратиться к объкту типа "Картинка" в экселе и интегрировать его в 1с ?
    Код:
    Эксель = ПолучитьCOMОбъект(ИмяФайла);
    Пока НЕ ПустаяСтрока(Эксель.sheets(1).Cells(Стр,1).Value) Цикл
    ....
    КонецЦикла
    
    
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Это же не ячейка.... См объект Shapes + надо знать имя картинки
  3. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Это прайс лист с картинками... там много картинок...
  4. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Причем каждая картинка соответствует строчке в экселе прайса
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Это отдельный объект. Он не связан (не должен) с ячейкой.
    Выложите кусок для примера
  6. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
  7. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Как Интегрировать картинку из экселя в 1С?
    Есть объект в экселе:

    Код:
     ОбъектКартинка = Данные.sheets(1).shapes(1);
    
    
    
    Далее я создатю номенклатура с каринкой

    Код:
     НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); 
    НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; 
    НовыйОбъект.Хранилище = Новый ХранилищеЗначения(Картинка, Новый СжатиеДанных);          
    
    НовыйОбъект.Объект = Товар.Ссылка;   
    НовыйОбъект.Записать();           
    Товар.ОсновноеИзображение = НовыйОбъект.Ссылка;   
    Товар.Записать();  
    
    
    
    Как сделать так что бы ТИП картинки в экселе соответствовал типу в 1С ??????
    или может я не то делаю ...
    :angry:
  8. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Попробуйте так
    Код:
       НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); 
    НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; 
    БиКартинка = Новый ДвоичныеДанные(Картинка);
    НовыйОбъект.Хранилище = Новый ХранилищеЗначения(БиКартинка);          
    
    НовыйОбъект.Объект = Товар.Ссылка;   
    НовыйОбъект.Записать();           
    Товар.ОсновноеИзображение = НовыйОбъект.Ссылка;   
    Товар.Записать();
    
  9. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26

    Пишет ошибку :

    {Форма.Форма(186)}: Ошибка при вызове конструктора (ДвоичныеДанные): Файл не обнаружен 'COMОбъект'
    БиКартинка = Новый ДвоичныеДанные(Картинка);
    по причине:
    Файл не обнаружен 'COMОбъект'
  10. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    А картинку Вы в файл не сохраняли? Это прямо объект из екселя?
  11. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Да!
    Это прайс лист с каринками...
  12. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Интересно, а тип какой, попробуйте записать этот объект в файл, что вообще получим
  13. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    А как это сделать ?
  14. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Киньте обработку и какой-нибудь прайс я посмотрю что происходит
  15. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26

    Прайс с обработкой
  16. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Мда! Интересная задачка.
    У екселя тупо нету возможности сохранить напрямую файл, у 1С нету возможности его распознать :angry:
    Обдумываю варианты.
    Пока остановился на следующем
    1. Из екселя копируем в буфер
    Код:
    Данные.ActiveSheet.Pictures(1).Copy()
    
    2. Из буфера в файл
    3. Из файла в 1С
    остановился пока на втором пункте :D
  17. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Тока как это зделать что бы из буфера в файл ???
  18. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Еще вариант:
    сохранить файл в формате xlsx, который является zip-архивом. В нем будет папка worksheets c xml-файлами, обозначающими листы. Рисунок обозначается текстом <drawing r:id="rIdxxx" />, где xxx — идентификатор рисунка. В папке drawings находится xml с описанием рисунка, из которого можно вытащить ячейку, к которой он отностится. В папке drawings\rels находится xml с названием файла, содержащим картинку. Картинки хранятся в папке media.
  19. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Погуглил. Похоже пути напрямую сохранить файл из объекта shape нет.
    Предлагают решение с созданием временного объекта Chart, из которого можно уже экспортировать в файл. (На всякий случай например вот: http://www.vbforums.com/showthread.php?t=538517)

    Но вариант Itsys мне как-то больше нравится.
  20. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Itsys
    Тогда сохранять нужно в html, там все аккуратно сохраняется, а потом как Вы хотите определить чья это картинка. А ни как.
    Решене есть.
    Внешняя библиотека это решение, дописать пока некогда.

Поделиться этой страницей