Последнее обновление: 23 мая 2015 в 14:58
Подпишись на RSS
rss Подпишитесь на RSS, чтобы всегда быть в курсе событий.

Часто бывает, что пользователь ловит такую вещь, как порно банер, котрый занимает половину окна браузера. На нем обычно отображаются картинки непристойного содержания, или другая информация. Я один раз даже встречал модификацию где говорится, что InterNet Explorer стал платным и просит отправить СМС. Как это исправить? На самом деле очень просто. Все эти «вирусы» являются надстройками […]


Сегодня столкнулся с очередной гадостью, которая гласила в отдельном окне: Спасибо за установку нашего информера. Данный программный продукт не являетсяы вирусом, не блокирует Диспетчер задач и другое ПО Вашего компьютера. Для того, чтобы закрыть рекламный информер Отапрвьте SMS с кодом 7520132 на номер 5121 Далее стандартный набор — Диспетчер задач открывается и тут же закрывается, […]


Метки

Метки записей
Экстремальные игры переустановка windows связь Вопросы перенос документов Отзывы СМС удаляем пароли Анализ ПДЗ Драйвера Экономика XPE Спорт Армия 1с реестр Ошибки 1С вирус Фото Интренет Скачать 1С мошенничество просроченная дебиторская задолженность новости Автомобили Удаление партий Файлы 1С Видео восстановить нумерацию Отчет Командная строка Вирусы Свертка базы 1С Свертка по партиям портативный аккумулятор Оптимизация Программы для 1С антивирус вирус SMS Структура 1С Интерент office 2007 Установка Windows Новая форма счет-Фактуры Альпинизм Добавить новую метку расчет ПЗД Обработки Обзоры Подключить 1С к MySQL Отношения ZverCD бесплатно Программы удаление документов Жизнь Загрузка с компакт - диска office 2003 Финансы свертка торговли пакетный запуск 1С скачать конвертер office 2003-2007 автозапуск Документы на почту СМС оплата партии Oracle Система Взлом Сайты гаджеты Бухгалтерия контент-провайдер Свертка 1С сбились номера документов Делаем LiveCD уменьшить размер базы Печатные формы LiveCD Dr.Web вирус эмулирует нажатие Win Лирика печать от поставщика антивирусы взломать пароль Zver DVD День жестянщика автоматизация сертфикаты дравер MySQL скачать jaws сверка базы 1С homachi локальная сеть через интернет Интересные места Проблемы программы для слепых Взлом 1 Юмор Интернет узнать пароль Работа заблокирован Игры HP Pavilion dv6000 открыть xlsx docx Драйвер ODBC скачать код защита Пошаговая свертка 1с и MySQL Кино Drivers Спутниковое ТВ свертка в картинках Asus Eee Оборудование Взлом 1С Методика свертки 1С Windows XP реестр Вся свертка сайт перенумарация редактирование DBF Мужчина и женщина Деньги
5 октября 2011

Работаем с API Goggle и Яндекса в 1С 8.х

Автор статьи: , 5 октября 2011 в рубрике , Вопросы и ответы. Метки: , , . Просмотров: 13 164

Для одного из проектов понадобилось отображать точки на карте прямо на форме 1С, и изучив вопрос, я пришел к выводу, что ничего сложного в этом нет.

Сильно облегчил мне жизнь мой коллега — тоже программист 1С, его статьи помогли быстро разобраться с Google maps.

yamap Работаем с API Goggle и Яндекса в 1С 8.х

Яндекс - карты в 1С Предприятие

Разбираясь, я написал обработку, которая выводит на Яндекс или гугл карту информацию о расположении контрагента. Неограниченное количество точек.

Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru

Обработка запоминает установленные контрагенту координаты и восстанавливает при следующем открытии. Информация хранится во внешнем XML файле, следовательно в конфигурацию не записывается никаких данных.

Почему и Яндекс и Гугл карты? У каждого из этих сервисов есть свои преимущества и недостатки и их сочетание может быть очень эффективным.

Как вставить Яндекс карты или Google maps в 1С 8.х

Все просто. Нам надо кинуть на форму поле HTML документа, сформировать код HTML страницы и вывести созданную страницу на форму.

Вставляем в 1С Яндекс-карты

Собственно, нам понадобится такой код:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" style="height: 100%">
<head>
<title>Точки посещенные агентом</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=7"/>
<script src="http://api-maps.yandex.ru/1.0/index.xml?key=КлючАПИ" type="text/javascript"></script>
<script type="text/javascript">
var map;
window.onload = function () {
map = new YMaps.Map(document.getElementById("YMapsID"));
map.setBounds(new YMaps.GeoBounds(new YMaps.GeoPoint(МинимумМаксимум

map.enableScrollZoom();
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ScaleLine());
map.addControl(new YMaps.Zoom());

var objManager = new YMaps.ObjectManager();
map.addOverlay(objManager);

PiterPenPoints
}
function onunloadpage(){
map.destructor();
}
</script>
</head>
<body style="height: 100%" onunload ="onunloadpage()">
<div id="YMapsID" style="width: 100%; height: 90%"></div>
</body>
</html>

Здесь есть несколько параметров-переменных ,которые мы будем подставлять из вне, например «PiterPenPoints"

В эту переменную мы запишем координаты всех необходимых точек.


Для Каждого Стр из ТКонтр Цикл
ТекстТочек = ТекстТочек + "
|            pm = new YMaps.Placemark(new YMaps.GeoPoint(" + Формат(СтрЗаменить(Долгота,",","."),"ЧРД=.; ЧН=; ЧГ=0")+","+Формат(СтрЗаменить(Широта,",","."),"ЧРД=.; ЧН=; ЧГ=0")+ "), {style:""default#" + ТипКонтрагента + "Point"", hideIcon: false});
|            pm.description = '" + СтрЗаменить(Представление,"'","""") + "';
|            objManager.add(pm);";
КонецЦикла;

и затем подменим их в шаблоне


ТекстСтраницы = СтрЗаменить(ТекстСтраницы,"PiterPenPoints", ТекстТочек);

И выведем полученную страницу на форму


Попытка
ЭлементыФормы.СтраницаХТМЛ.УстановитьТекст(ТекстХТМЛ);//Перейти(_КаталогВременныхФайлов + "temp.html");
Исключение
Сообщить("Произошла ошибка при работе с картой. Возможно отсутствует интренет-соединение. Попробуйте обносить страницу");
КонецПопытки;

Вставляем в 1С гугл-карты

Аналогично яндексу нам необходимо пробежаться по всем точкам и добавить их в код отображаемой страницы.

Тест страницы для Google


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251"/>
<title>Google Maps координаты точек</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=googleapikey"
type="text/javascript"  charset="utf-8"></script>
<style type="text/css">
v:* {
behavior:url(#default#VML);
}
</style>
</head>
<body>
<script type="text/javascript"  charset="utf-8">
var map;
var geocoder = null;
var micon = new GIcon();
var miconr = new GIcon();
var iasizet='32,32';
var iasize=new Array();
iasize=iasizet.split(',');
iasize[0]=iasize[0]/2;

micon.image = "http://extremallife.ru/googlemaps/marker_green.png";
micon.shadow = "http://extremallife.ru/googlemaps/markers.png";
micon.iconSize = new GSize(32,32);
micon.shadowSize = new GSize(59,32);
micon.iconAnchor = new GPoint(iasize[0], iasize[1]);
micon.infoWindowAnchor = new GPoint(iasize[0], 0);

miconr.image = "http://extremallife.ru/googlemaps/marker_red.png";
miconr.shadow = "http://extremallife.ru/googlemaps/markers.png";
miconr.iconSize = new GSize(32,32);
miconr.shadowSize = new GSize(59,32);
miconr.iconAnchor = new GPoint(iasize[0], iasize[1]);
miconr.infoWindowAnchor = new GPoint(iasize[0], 0);

function ffManager_initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("ffManager_map"));
map.setCenter(new GLatLng(latvalue,lonvalue), 15);
geocoder = new GClientGeocoder();
map.addControl(new GMapTypeControl());
map.setMapType(G_NORMAL_MAP);
map.addControl(new GLargeMapControl());
map.enableScrollWheelZoom();
map.disableDoubleClickZoom();
GEvent.addListener(map, "moveend", function() {
});
GEvent.addListener(map, "click", function(overly,point) {
if(!marker && point) {
ffManager_set_vals(point);
map.clearOverlays();
var marker = new GMarker(point,{draggable: true,icon:micon});
GEvent.addListener(marker, "dragend", function() { ffManager_set_vals(marker.getPoint());});
map.addOverlay(marker);
}
});
ffManager_set_map();
}
if(typeof window.onunload == 'function') {
var prevonu= onunload;
window.onunload = function() {
prevonu();
GUnload();
}} else{window.onunload = GUnload;}

if (ShowAddressAtStart) {
showAddress("adressvalue");
}
}

function ffManager_set_vals(point){
document.getElementById('lat').value= point.y;
document.getElementById('lon').value= point.x;
}

function ffManager_set_map(){
var point=new Array();
point.y=document.getElementById('lat').value;
point.x=document.getElementById('lon').value;
map.setCenter(new GLatLng(point.y,point.x));
map.clearOverlays();
var marker = new GMarker(point,{draggable: true,icon:micon});
GEvent.addListener(marker, "dragend", function() { ffManager_set_vals(marker.getPoint());});
map.addOverlay(marker);

PiterPenPoints

}
function showAddress(address) {
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
ffManager_set_vals(point)
ffManager_set_map();
}
}
);
}
}
</script>
<form action="#" onsubmit="showAddress(this.address.value); return false">
<input type="text" size="60" name="address" value="adressvalue" />
<input type="submit" value="Найти" />
<input type="text" id="lat" name="lat" value="latvalue"> <input type="text" id="lon" name="lon" value="lonvalue">
<div id="ffManager_map" style="width:850px; height:460px"></div>
</form>
</table>
<script type="text/javascript">
window.setTimeout(ffManager_initialize,'0');
</script>
</body>
</html>

В PiterPenPoints добавляем нужные точки


Для Каждого Стр Из Тконтр Цикл
ТекстТочек = ТекстТочек + "
|var point"+й+"=new Array();
|point"+й+".y="""+СтрЗаменить(СокрЛП(Стр.Широта),",",".")+""";
|point"+й+".x="""+СтрЗаменить(СокрЛП(Стр.Долгота),",",".")+""";
|var marker"+й+" = new GMarker(point"+й+",{draggable: true,icon:miconr});
|map.addOverlay(marker"+й+");
|";
й = й + 1;
КонецЦикла;

В итоге получаем вот такую красивую картинку с картой на форме 1С

gogmap Работаем с API Goggle и Яндекса в 1С 8.х

Гугл мапс на форме 1С

Практическое применение у данной обработки не большое, но в комплексе с другими проектами оно может быть весьма значительное. Например, она может быть использована логистом компании для расчета расстояний, оценки эффективности движения транспорта, осуществляющего доставку товаров.

Скачать обработку




К записи "Работаем с API Goggle и Яндекса в 1С 8.х" 3 комментария

для чего это надо

Ответить

Я еще не придумал… Жду предложений от клиентов )))

Ответить

Есть необходимость в следующей обработке:1. Подключить Google Map в 1с со следующими возможностями: — Поиск адреса по введенной строке — Возможность построения маршрута по списку заданных точек с расчетом дистанции и времени в пути- Получение координат при ручном выборе точки-Возможность построения маршрута между указанными вручную точками с расчетом дистанции и времени в пути Сможете ли создать такую обработку и ее стоимость?

Ответить


Оставить комментарий

*

Блог программиста 1С. Программирование 1С
Если Вас что-то заинтересовало или возникли вопросы, пишите.
petr@evseev.ru
Skype - evseev_petr
ICQ - 262808698

Сохраните меня в социальных сервисах

Комментарии

Присоединяйтесь к обсуждению
  • Леха: Мало того, что это говно-антивирус требует .Net Framework не ниже 4.0, так он еще пожирает ресурсы компьютера,...
  • tommy: AVG равно еще хуже Касперского . Иди в жопу с ним
  • просто_чайник: Не люблю этот антивирус. Заметил такую особенность. Если обновить базы в начале работы, довольно часто...
  • Елена: Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только...
  • Виктор: Поставили мне на работе эту замечательную программку. Работать невозможно, ужасные тормоза. Стали...

Избранное видео

Ссылки