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

Компания AOL, та самая , которая придумала и внедрила в массы такой сервис как ICQ в очередной раз, как они сами говорят — с целью борьбы с альтернативными клиентами изменила протокол для своей программы ICQ.


Давно мечтал о беспроводном роутере, ибо дома 2 компа и два ноутбука, оснащенных Wi-Fi. До приобретения роутера сеть поддерживал старенький D-Link-овский свитч, к которому цеплялись компьютеры и ноутбуки по витой паре, что делало невозможным доступ в интернет по Вай — Фаю, а ведь так хочется иногда лежа в теплой постели перед сном ответить на пару […]


Метки

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

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

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

Для одного из проектов понадобилось отображать точки на карте прямо на форме 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 равно еще хуже Касперского . Иди в жопу с ним
  • просто_чайник: Не люблю этот антивирус. Заметил такую особенность. Если обновить базы в начале работы, довольно часто...
  • Елена: Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только...
  • Виктор: Поставили мне на работе эту замечательную программку. Работать невозможно, ужасные тормоза. Стали...

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

Ссылки