ТиС 7.7 ред.9.2 Помогите из 1С в Excel выгрузить гиперссылку
Здравствуйте!
Выгружаю с помощью внешней обработки прайс в Excel и получаю, в колонке Фото, текст вместо работающей гиперссылки:
№ Код Артикул Наименование ..................... Оптовая, Мин. .......... Остаток.......... Фото
п/п ................................................................. руб. за шт заказ,шт .. склада
20 Заводные игрушки
1 9135 9902 Заводн Бегемот водоплавающий 8см 17,00 1 шт 16 >>>>
2 57579 0089 Заводн Вертолет 12см в пак.(32886) 19,00 1 шт 22 =ГИПЕРССЫЛКА("L:\MIVEX27-07\57579.JPG";">>>>")
3 11401 20398А/F Заводн Звери 7см в пак.(32909) 19,00 1 шт 22 =ГИПЕРССЫЛКА("L:\MIVEX27-07\11401.JPG";">>>>")
4 9846 958 Заводн Звери 8см в пак.(32912) 15,00 1 шт 33 =ГИПЕРССЫЛКА("L:\MIVEX27-07\9846.JPG";">>>>")
Посоветуйте, где посмотреть пример, какой должен быть код, чтобы в колонке Фото Excel воспринял данные не как текст, а понял как гиперссылку. Если на этом тексте дважды кликнуть, то Excel признает ГИПЕРССЫЛКУ,см . п. 1 в прайсе.
Обработку вложил.
С уважением.
Выгружаю с помощью внешней обработки прайс в Excel и получаю, в колонке Фото, текст вместо работающей гиперссылки:
№ Код Артикул Наименование ..................... Оптовая, Мин. .......... Остаток.......... Фото
п/п ................................................................. руб. за шт заказ,шт .. склада
20 Заводные игрушки
1 9135 9902 Заводн Бегемот водоплавающий 8см 17,00 1 шт 16 >>>>
2 57579 0089 Заводн Вертолет 12см в пак.(32886) 19,00 1 шт 22 =ГИПЕРССЫЛКА("L:\MIVEX27-07\57579.JPG";">>>>")
3 11401 20398А/F Заводн Звери 7см в пак.(32909) 19,00 1 шт 22 =ГИПЕРССЫЛКА("L:\MIVEX27-07\11401.JPG";">>>>")
4 9846 958 Заводн Звери 8см в пак.(32912) 15,00 1 шт 33 =ГИПЕРССЫЛКА("L:\MIVEX27-07\9846.JPG";">>>>")
Посоветуйте, где посмотреть пример, какой должен быть код, чтобы в колонке Фото Excel воспринял данные не как текст, а понял как гиперссылку. Если на этом тексте дважды кликнуть, то Excel признает ГИПЕРССЫЛКУ,см . п. 1 в прайсе.
Обработку вложил.
С уважением.
Прикрепленные файлы:
ОбменПрайсСайт09-09-2011.ert
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Глянул ваш файл, а где собственно сама выгрузка?
В конце
Excel = СоздатьОбъект("Excel.Application");
Excel.Workbooks.Add(ПутьКФайлуОконч); //Открываем файл
Excel.Sheets(1).Select(); // Выбираем первый лист
и там уже
Excel.Hyperlinks.Add(Range("F6"),"https://forum.infostart.ru/",,,"https://forum.infostart.ru/");
В конце
Excel.Save();
Excel.Workbooks.Close();
Excel.DisplayAlerts = 0;
Excel.Quit();
(1) MIV14, Типа так
Таб.Записать(ИмяФайла,1);
Book=Excel.Workbooks.Open(ИмяФайла);
Range=Excel.Range(Excel.Cells(1,1),Excel.ActiveCell.SpecialCells(11));
Col=Range.Columns.Count;
row=Range.Rows.Count;
For r=1 to row Do
ActiveSheet.Hyperlinks.Add(Excel.Cells(r, 11), Excel.Cells(r, 11).Value);
Enddo;
Таб.Записать(ИмяФайла,1);
Book=Excel.Workbooks.Open(ИмяФайла);
Range=Excel.Range(Excel.Cells(1,1),Excel.ActiveCell.SpecialCells(11));
Col=Range.Columns.Count;
row=Range.Rows.Count;
For r=1 to row Do
ActiveSheet.Hyperlinks.Add(Excel.Cells(r, 11), Excel.Cells(r, 11).Value);
Enddo;
Есть классический способ изучения VBA
Сервис - Макрос - Начать запись
Потом делаем то что нам нужно.
Потом останавливаем запись, открываем: Сервис - Макросы - Изменить
И смотрим что туда записалось, и видим:
ActiveSheet.Hyperlinks.Add Anchor:=Range("F6"), Address:= _
"https://forum.infostart.ru/", TextToDisplay:="https://forum.infostart.ru/"
Здесь "F6" - адрес ячейки к которой привяжется гиперссылка.
Однако, 1С такую строку не схавает, поэтому ищем описание метода Add в Object Browser, там найдем:
Function Add(Anchor As Object, Address As String, [SubAddress], [ScreenTip], [TextToDisplay]) As Object
И поменяем команду на:
ActiveSheet.Hyperlinks.Add(Range("F6"),"https://forum.infostart.ru/",,,"https://forum.infostart.ru/")
Сервис - Макрос - Начать запись
Потом делаем то что нам нужно.
Потом останавливаем запись, открываем: Сервис - Макросы - Изменить
И смотрим что туда записалось, и видим:
ActiveSheet.Hyperlinks.Add Anchor:=Range("F6"), Address:= _
"https://forum.infostart.ru/", TextToDisplay:="https://forum.infostart.ru/"
Здесь "F6" - адрес ячейки к которой привяжется гиперссылка.
Однако, 1С такую строку не схавает, поэтому ищем описание метода Add в Object Browser, там найдем:
Function Add(Anchor As Object, Address As String, [SubAddress], [ScreenTip], [TextToDisplay]) As Object
И поменяем команду на:
ActiveSheet.Hyperlinks.Add(Range("F6"),"https://forum.infostart.ru/",,,"https://forum.infostart.ru/")
Спасибо за ответ!
Спасибо за предложенный метод.
Вы предлагаете в Excel е записать макрос и с помощью его выполнить преобразования текста в ссылку. Но я хочу вставить, однажды, нужный программный код внутрь внешней обработки 1С, чтобы она любой прайс выдавала уже с готовыми, понятными Excel, ссылками.
Или я не понял Вас? Ткните куда прикрутить Вашу команду.
С уважением.
Спасибо за предложенный метод.
Вы предлагаете в Excel е записать макрос и с помощью его выполнить преобразования текста в ссылку. Но я хочу вставить, однажды, нужный программный код внутрь внешней обработки 1С, чтобы она любой прайс выдавала уже с готовыми, понятными Excel, ссылками.
Или я не понял Вас? Ткните куда прикрутить Вашу команду.
С уважением.
Спасибо, попробую прикрутить.
А выгрузка вот
Позже попробую реализовать. Еще раз спасибо за помощь !
А выгрузка вот
Таб.ВывестиСекцию("Шапка0");
//*я
Пока Спр.ПолучитьЭлемент()=1 Цикл
ГруппаНоменклатуры = Спр.ТекущийЭлемент();
Уровень = ГруппаНоменклатуры.Уровень();
Остаток = ОстатокТовара(ТзОстГруппы,ГруппаНоменклатуры);
Код = ГруппаНоменклатуры.Код ;
Если Остаток <0 Тогда
Продолжить;
КонецЕсли;
Код = ГруппаНоменклатуры.Код ;
// Таб.ВывестиСекцию("ГруппаНоменклатуры");
//*я В качестве разделителя выводим название той-же группы более мелким уровнем
// Наименование = ТекущаяГруппа.Наименование;
Таб.ВывестиСекцию("Группа" + Уровень);
//*я
стр = 0 ;
номер=1;
Если ТЗ.НайтиЗначение(ГруппаНоменклатуры,стр,"ГруппаНоменклатуры")=1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(стр);
Номенклатура = ТЗ.Номенклатура ;
Артикул = Номенклатура.Артикул ;
Код = Номенклатура.Код ;
Остаток = ОстатокТовара(ТзОст,Номенклатура);
Цена = глПолучитьЦену(Номенклатура,ОптовыйТипЦен,НаДату);
МинПартияОтгрузки = Макс(Номенклатура.МинПартияОтгрузки,1) ;
Хит = ХитТовар(Номенклатура,тзПродажи);
Новый = НовыйТовар(Номенклатура,тзНовыйТовар);
Акция = АкцияТовар(Номенклатура);
ПризнакТовара="";
Если Новый = 1 Тогда ПризнакТовара="NEW"; КонецЕсли;
Если Хит = 1 Тогда ПризнакТовара="ХИТ"; КонецЕсли;
Если Акция = 1 Тогда ПризнакТовара="SALE"; КонецЕсли;
Пока ГруппаНоменклатуры = ТЗ.ГруппаНоменклатуры Цикл
Если Остаток >0 Тогда
// Таб.ВывестиСекцию("Номенклатура");
Фотография = "$.JPG";
Фотография = СтрЗаменить(Фотография,"$",Код);
ФайлФотография = СокрЛП(КаталогФото) + "\" + Фотография ;
Если ФС.СуществуетФайл(ФайлФотография) =0 Тогда
Фотография = "" ;
иначе Фотография = "=ГИПЕРССЫЛКА("""+ ФайлФотография+ """;"">>>>"")" ; // название файла с фотографией
КонецЕсли ;
Если ПризнакТовара="" Тогда Таб.ВывестиСекцию("Номенклатура0");
иначеЕсли Новый = 1 Тогда Таб.ВывестиСекцию("Номенклатура1"); // выделим цветом
иначе Таб.ВывестиСекцию("Номенклатура2") ;
КонецЕсли;
номер = номер + 1;
КонецЕсли;
Если Стр = кс Тогда
Прервать ;
КонецЕсли;
стр = стр + 1;
ТЗ.ПолучитьСтрокуПоНомеру(стр);
Номенклатура = ТЗ.Номенклатура ;
Артикул = Номенклатура.Артикул ;
Код = Номенклатура.Код ;
Остаток = ОстатокТовара(ТзОст,Номенклатура);
Цена = глПолучитьЦену(Номенклатура,ОптовыйТипЦен,НаДату);
МинПартияОтгрузки = Макс(Номенклатура.МинПартияОтгрузки,1) ;
ПризнакТовара="";
Хит = ХитТовар(Номенклатура,тзПродажи);
Новый = НовыйТовар(Номенклатура,тзНовыйТовар);
Акция = АкцияТовар(Номенклатура);
Если Новый = 1 Тогда ПризнакТовара="NEW"; КонецЕсли;
Если Хит = 1 Тогда ПризнакТовара="ХИТ"; КонецЕсли;
Если Акция = 1 Тогда ПризнакТовара="SALE"; КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Таб.Показать("");
КонецПроцедуры
ПоказатьПозже попробую реализовать. Еще раз спасибо за помощь !
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот