Имя: Пароль:
1C
1С v8
Вставить Яндекс карту как картинку в макет документа
0 Elvina88
 
30.10.18
14:48
Здравствуйте, нашла подобную тему здесь, но не до конца поняла что делать...
Печать карты Google 1С 8.2

Получаю статическую картинку с Яндекса, вывожу её в поле html документа, а вот как потом вывести полученную картинку в макет (табличный документ) никак не пойму(((
Документ свой, управляемые формы, задача - вставить кусок карты в печатную форму договора с контрагентом.
1 Lexey_
 
30.10.18
14:52
(0) а просто картинку вставлять в табдок умеешь?
2 Elvina88
 
30.10.18
14:53
(1) умею
3 Elvina88
 
30.10.18
14:57
(1) Просто картинку вставляла вот так:
Область = Макет.ПолучитьОбласть("фото");
    Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
    Рисунок.Верх = 5;
    Рисунок.Высота = 100;
    Рисунок.Ширина = 100;
    Рисунок.Лево = 5;
    Рисунок.Картинка = Новый Картинка(Объект.ПутьКФайлу2);
    Рисунок.РазмерКартинки = РазмерКартинки.АвтоРазмер;

Но здесь картинка лежит на диске, а у меня она в Поле HTML документа
4 Lexey_
 
30.10.18
14:58
(2) "Получаю статическую картинку с Яндекса", ну и вставляй, в чем проблема?статическая картинка с Яндекса ничем не отличается от обычной картинки
5 Lexey_
 
30.10.18
14:58
(3) получай картинку в файл
6 Elvina88
 
31.10.18
06:39
(5) как это сделать?))  не получается(((

Эта функция формирует текст ссылки
(пользователь вводит долготу, широту, масштаб карты)

&НаСервере
Функция ПолучитьСсылку()
    Долгота = СтрЗаменить(Строка(Долгота), ",", ".");
    Широта = СтрЗаменить(Строка(Широта), ",", ".");
    МасштабКарты = Масштабирование;
    Текст = "
    |https://static-maps.yandex.ru/1.x/?ll="; + долгота + "," + Широта + "&size=600,450&z=" + МасштабКарты +"&l=map&pt=" + долгота + "," + Широта + ",pmwtm1~" + долгота + "," + Широта + ",pmwtm1";
    Возврат Текст;    
КонецФункции


Так карта отображается в Поле HTML документа:

&НаКлиенте
Процедура ПоказатьКарту(Команда)
    
    ЭтаФорма.ТекстHTML = ПолучитьСсылку();
    ОбновитьОтображениеДанных();
    
КонецПроцедуры


Сохранить её как картинку не получается...
Пробовала так:
Картинка = Новый Картинка(ПолучитьСсылку());

не работает...
Как её сохранить (получить)?
7 Elvina88
 
31.10.18
08:23
Нашла ещё такую конструкцию:
Соединение = Новый HTTPСоединение("img.yandex.net");
Соединение.Получить("/i/logo95x37.png","c:\logo.jpg");


первая строка без ошибок, на вторую ругается...
Соединение = Новый HTTPСоединение(ПолучитьСсылку());
Соединение.Получить(ПолучитьСсылку(),"C:\logo.jpg");

Я понимаю, что тут не ссылку, а название картинки нужно вставить, но как она называется?
Открываю ссылку в браузере, смотрю код:

<img style="-webkit-user-select: none;" src="https://static-maps.yandex.ru/1.x/?ll=37.620070,55.753630&size=450,450&z=13&l=map&pt=37.620070,55.753630,pmwtm1~37.64,55.76363,pmwtm99">;
8 FIXXXL
 
31.10.18
09:12
что-то мне подсказывает, что надо использовать Печать карты, там картинка получается
а по ссылке немного не картинка...
9 Elvina88
 
31.10.18
09:41
(8) можно поподробнее?
10 FIXXXL
 
31.10.18
09:58
(9) в браузере по ссылке боюсь не совсем "картинка", хотя и похожа :) надо рыть АПИ яндекса в сторону выдачи данных на печать, там хотя бы что-то похожее на картинку
сам не делал, просто размышления
11 Elvina88
 
31.10.18
10:05
(10) Если в браузере выполнить Страница - Сохранить как, сохраняется именно как картинка с расширением png
12 Elvina88
 
31.10.18
10:09
а если с другой стороны опять подойти,
можно ли как-то содержимое поля html документа на обычный макет вытащить?
13 Lexey_
 
31.10.18
10:13
(12) это не нужно, нужно использовать HTTPСоединение и HTTPЗапрос для получения файла
14 Elvina88
 
31.10.18
12:09
(13) Спасибо! Получилось!!!
В соединении без https путь нужно писать, тогда работает...

Соединение = Новый HTTPСоединение("static-maps.yandex.ru/1.x/?ll=37.620070,55.753630&size=450,450&z=13&l=map&pt=37.620070,55.753630,pmwtm1~37.64,55.76363,pmwtm99");
Запрос = Новый HTTPЗапрос("");
Результат = Соединение.Получить(Запрос);
КаталогДляЭкспериментов = "C:\Users\Эльвина\Pictures";
ФайлКартинки = КаталогДляЭкспериментов + "\test.png";     Результат.ПолучитьТелоКакДвоичныеДанные().Записать(ФайлКартинки);
2 + 2 = 3.9999999999999999999999999999999...