Имя: Пароль:
1C
 
Excel добавить изображение со ссылкой
0 myr4ik07
 
17.08.18
11:53
Ex = Новый COMObject("Excel.Application");

как через 1с программно на лист екселя добавить изображение со при нажатии на которую переход осуществляеться на следующий лист?

простую текстовую ссылку добавил, а вот ссылку из изображение не выходит
1 shadow_sw
 
17.08.18
11:55
словарь  - дорого!
2 Deon
 
17.08.18
12:21
(0) Добавь сначала изображение, потом добавь ссылку
3 myr4ik07
 
17.08.18
15:21
(2) на словах звучит на раз два, пример есть?
4 myr4ik07
 
17.08.18
15:23
(1) ты че тупишь?
5 myr4ik07
 
17.08.18
16:21
вроде и нашел https://stackoverflow.com/questions/43466649/vba-add-hyperlink-to-a-picture но не могу понять как описать с 1с, кто подскажет?
6 sitex
 
naïve
17.08.18
16:27
(0) ПРочитал не понял что нужно итого .
7 myr4ik07
 
17.08.18
16:32
(6) ексел из множества листов, стрелкой выделено изображение на листе, при нажатии на него должно переход быть на первый лист
http://prntscr.com/kjsevw
8 myr4ik07
 
17.08.18
16:33
ексел формируеться полностью программно из 1с
9 myr4ik07
 
17.08.18
16:33
для текстовой ссылки сделал http://prntscr.com/kjsfh0
10 sitex
 
naïve
17.08.18
17:04
ну код то скинь , телепаты ушли в отпуск.
11 sitex
 
naïve
17.08.18
17:04
(0) Либо через VBA (макрос ), либо вроде  ActiveSheet.Pictures.Insert.
2-ой вариант предпочтительней
12 myr4ik07
 
17.08.18
17:37
(10) какой код? я как раз кодом и прошу чот бы поделились
13 myr4ik07
 
17.08.18
17:38
(11) Pictures нет такого свойства или метода Листе, пробовал
14 Deon
 
17.08.18
17:46
(13) А вот тут ты лукавишь. Есть у листа Pictures
Код-то уже покажи
15 Deon
 
17.08.18
17:49
Excel = Новый COMОбъект("Excel.Application");
Book = Excel.Workbooks.Open(ИмяФайлаXLSX);
Лист = Excel.ActiveSheet;

Лист.Pictures.Insert("C:\Картинка.png");
16 Tatitutu
 
17.08.18
17:55
17 trdm
 
18.08.18
00:16
ИначеЕсли Лев(Зн1С,2) = "##" Тогда
                // Картинка
                ЯЧейка1 = вЛистХЛС.Cells(СчРядов,СчКолонок);
                ЯЧейка1.Value = "";
                вИмяФайла = Сред(Зн1С,3);
                вИмяФайла = СокрЛП(вИмяФайла);
                вСтрокаСообщ = "";
                Если ПустоеЗначение(вИмяФайла) = 0 Тогда
                    вСтрокаСообщ = "Строка: " +СчРядов+"/"+счКолонок +" => "+ вИмяФайла;
                    Если ФС.СуществуетФайл(вИмяФайла) = 1 Тогда
                        //вЛистХЛС.Shapes.AddPicture(вИмяФайла,"","",вЛистХЛС.Cells(СчРядов,СчКолонок).Left);
                        ЯЧейка1 = вЛистХЛС.Cells(СчРядов,СчКолонок);
                        ЯЧейка1.Value = "";
                        ЯЧейка1.Select();
                        гНомерКолонкиСКартинками = СчКолонок;
                        
                        //вСелект = вЛистХЛС.Range("A6").Select
                        //вКартинка = вЛистХЛС.Pictures.Insert(вИмяФайла); /// Работает.
                        Попытка
                            вКартинка = ЯЧейка1.Parent.Pictures.Insert(вИмяФайла);
                            вОффСет = гОффсетКартинки;
                            вКартинка.Top = ЯЧейка1.Top + вОффСет; вКартинка.Left = ЯЧейка1.Left + вОффСет;
                            вВыделение = вКартинка.Select();
                            вRowHeight  = вКартинка.Height;
                            вWidth = Цел(вКартинка.Width);
                            вМасштаб = гМасштабКартинки;
                            вСтрокаСообщ = Шаблон("Выс: [вRowHeight] шир: [вWidth]");
                            Если гМаксРеброКартинки>0 Тогда
                                вМаксРебро = Макс(вКартинка.Height, вКартинка.Width);
                                вМасштаб = гМаксРеброКартинки *100 / вМаксРебро;
                                //вМасштаб = Цел(вМасштаб); // есть картинка у которой мастаб получился 0.3012, т.е. цел(масштаб) = 0 - плохо, картинка не смасштабируется
                                вМасштаб = Окр(вМасштаб,2,1);
                                вСтрокаСообщ = вСтрокаСообщ + Шаблон(" м.ребро: [вМаксРебро] => масштаб: [вМасштаб]");
                            КонецЕсли;
                            
                            Если вМасштаб > 0 Тогда
                                вRowHeight  = Цел(вКартинка.Height * вМасштаб / 100);
                                вКартинка.Height = вRowHeight;
                                вWidth = Цел(вКартинка.Width * вМасштаб / 100);
                                вWidth = Цел(вWidth);
                                вКартинка.Width = вWidth;
                                вСтрокаСообщ = вСтрокаСообщ + Шаблон(" стало: '[вRowHeight]'[вWidth]'");
                            КонецЕсли;
                            //Если гМасштабКартинки<>100 Тогда
                            гМаксШиринаКолСКартинками = Макс(вWidth,гМаксШиринаКолСКартинками);
                            вТаблаУстРазмСтрок.НоваяСтрока();
                            вТаблаУстРазмСтрок.Колонка = счКолонок;
                            вТаблаУстРазмСтрок.Строка = счРядов;
                            вТаблаУстРазмСтрок.Высота = вRowHeight;
                            вТаблаУстРазмСтрок.ИмяФайла = вИмяФайла;
                            //Сообщить(вСтрокаСообщ);
                        Исключение
                            вСтрокаОшибки = ОписаниеОшибки() + " [20140617-1106]";
                            глСообщитьОбОшибке(вСтрокаОшибки,"!");
                            глЗаписатьВЛогФайлУпрощенно(глИмяЛогаОшибокОбщего, вСтрокаОшибки);
                            глЗаписатьВЛогОшибокВерсиюExcel(вЕксил);
                        КонецПопытки;
                    КонецЕсли;
                КонецЕсли;
                
                //} © ТрДм 27.05.2013 21:33:58
            КонецЕсли;
18 Cyberhawk
 
18.08.18
11:40
Если xlsx, то однозначно нативно
19 myr4ik07
 
19.08.18
00:04
20 Cyberhawk
 
19.08.18
00:41
(19) Правильный ответ там в посте номер 5