Яндекс.Карты в 1С 8. На базе API Яндекс.Карт и элемента управления ПолеHTMLДокумента

07.08.11

Интеграция - WEB-интеграция

Пример работы с сервисом Яндекс.Карты в 1С 8. На базе API Яндекс.Карт и элемента управления ПолеHTMLДокумента. Обработка строит маршрут из точки АдресОтгрузки в точку АдресДоставки с учетом пробок.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
YandexMaps.epf
.epf 11,78Kb
3039
3039 Скачать бесплатно

Внешняя обработка отображает в 1С маршрут из точки АдресОтгрузки в точку АдресДоставки, построенный API Яндекс.Карты. Маршрут строится с учетом и отображением пробок.

 

Для работы с обработкой Вам необходимо будет инициализировать первые три реквизита обработки и открыть форму обработки:

  1. API-ключ. Получить его можно здесь: https://tech.yandex.ru/maps/commercial/
  2. АдресОтгрузки, строка
  3. АдресДоставки, строка
  4. Объект, строка - необязательный параметр

АдресОтгрузки и АдресДоставки должны быть как минимум с двумя разделителями-запятыми, например: Москва, ул.Петровка, д.22. В противном случае, обработка будет работать только с конфигурциями УПП, УТ. Для других не уточнял.

Если заполнить реквизит Объект - то АдресДоставки можно будет выбирать из регистра сведений КонтактнаяИнформация. Форма списка регистра будет открыта с установленным отбором по Объекту.

 

Подробности того, как функционирует API Яндекс.Карт здесь (на примере данной обработки):

http://clubs.ya.ru/mapsapi/replies.xml?parent_id=18909&item_no=18907

Отдельно хотелсь бы отметить, что обработка выложена здесь для ознакомления - лицензионное соглашение Яндекс.Карт не предусматривает применение API Яндекс.Карт на десктоп приложении. Если есть необходимость использовать данную обработку в коммерческих целях, Вам необходимо будет перевести ее в Управляемые формы, разместить на вебсервере 1C 8.2 и сделать доступной из сети Интернет. Тогда условия лицензионного соглашения будут соблюдены.

 

При реализации были взяты идеи (модуль обработки) из обработки 1СКарта.epf неизвестного автора. Автор, если ты читаешь эти строки - спасибо тебе :)

Если что-либо не нравится в публикации/обработке - не торопитесь ставить минусы, лучше не стеснятесь писать об этом в комментариях. Буду стараться все оперативно исправлять.

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

 

UPD Оказывается, в поиске есть ряд подобных примеров. Просто искать нужно по ключевому слову Yandex

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    3207    5    0    

11

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35338    70    45    

30

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    2914    2    3    

5

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    19366    24    22    

20

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    4945    4    2    

5

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1164    7    2    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Chez87 08.08.11 23:25 Сейчас в теме
Обработка работает только по Москве или по Питеру тоже?
2. Пип Пибип 233 09.08.11 18:04 Сейчас в теме
Сергей, в таком виде, в каком обработка сейчас - к сожалению, нет.

Теоретически обработку можно привести к работе с любым городом, который поддерживается классом YMaps.Router:
YMaps.Router

Например, для карты Киева, в модуле формы обработки нужно будет изменить строку:
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
на
map.setCenter(new YMaps.GeoPoint(30.51, 50.44), 10);
Сейчас у себя попробовал - маршруты по Киеву прокладывает.

Для Питера же, строка нужна другая:
map.setCenter(new YMaps.GeoPoint(30.36, 59.95), 10);
Попробовал - маршруты по Питеру не прокладывает.

На сайте Яндекс, нашел такой абзац:
"В режиме бета-тестирования сервис доступен для маршрутов по Москве, Московской области и Украине."
3. disnos 10.08.11 13:00 Сейчас в теме
А можно просто вычислить координаты середины маршрута и центровать карту по этим координатам :)
Будет работать для любого города по которому есть возможность построить маршрут у яндекса.
4. Пип Пибип 233 10.08.11 13:27 Сейчас в теме
disnos - да, тоже думал на эту тему. тогда пример будет еще и универсальным.
23. pumbaE 29.11.11 14:56 Сейчас в теме
МаршрутHTML = "
	|
	|	// Прокладывание маршрута
	|	var router = new YMaps.Router(["+МаршрутHTML+"], [1], {viewAutoApply: 1});
	|   map.addOverlay(router);
	|	// После заверешение построения маршрута изменяем содержмое значков начальной и конечной точек
	|        // И добавляем маршрут на карту
	|        YMaps.Events.observe(router, router.Events.Success, function() {
	|          
	|           //map.addOverlay(router);
	|			var summaryPanel = document.getElementById(""directions_panel"");
	|var route = """";
	|var dest=0;
	|for (var i=0; i<router.getNumRoutes(); i++) {
	|route = router.getRoute(i);
	|dest+=route.getDistance();
	|summaryPanel.innerHTML+=i +"":""+route.getDistance()+"";"";
	|}
	|summaryPanel.innerHTML = dest;
	|var summaryPanel = document.getElementById(""points_panel"");
	|summaryPanel.innerHTML = """";
	|var waypoint = """";
	|for (var i=0; i<router.getNumWayPoints(); i++) {
	|waipoint = router.getWayPoint(i);
	|summaryPanel.innerHTML+=i+"":""+waipoint.text+"";"";
	|
	|}
	|        });
	|	
	| ";
	
Показать

Как то так:
Процедура ЗаписатьМаршрутВТЧ()  Экспорт
	Перем мРазделительРасстояний, СоответствиеРасстояний, СоответствиеТочек, Текст;
	ТаблицаРасстояний = Новый ТаблицаЗначений;
	ТаблицаРасстояний.Колонки.Добавить("Индекс", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(4));
	ТаблицаРасстояний.Колонки.Добавить("Расстояние", ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(30));
	СоответствиеТочек = Новый Соответствие;
	мРазделительРасстояний = ";";
	Попытка
		опМаршрут = ПолеHTML.Документ.getElementByID("directions_panel");
		 
		Если опМаршрут.innerHTML <> "" Тогда
		
			Текст = опМаршрут.innerHTML;
			Если ПустаяСтрока(Текст) Тогда
				Возврат;
			КонецЕсли; 
			
			//Определим маршруты и расстояния.
			
			а = СтрДлина(Текст);
			Пока а > 0 Цикл
				Если Сред(Текст, а, 1) <> мРазделительРасстояний И НЕ ПустаяСтрока(Сред(Текст, а, 1)) Тогда
					Прервать;
				КонецЕсли; 
				а = а - 1;
			КонецЦикла;
			
			Текст = Лев(Текст, а+1);
			ПозицияПервогоСимвола = 1;
			НомерЭлемента = 0;
			Для а = 1 По СтрДлина(Текст) Цикл
				Если Сред(Текст, а, 1) <> мРазделительРасстояний Тогда
					Продолжить;
				КонецЕсли;
				
				ПодстрокаЭлемента = СокрЛП(Сред(Текст, ПозицияПервогоСимвола, (а - ПозицияПервогоСимвола)));
				Если НЕ ПустаяСтрока(ПодстрокаЭлемента) Тогда
					//Получим индекс и расстояние.
					НачалоИндекс = Найти(ПодстрокаЭлемента, ":");
					НоваяСтрока = ТаблицаРасстояний.Добавить();
					НоваяСтрока.Индекс = СокрЛП(Сред(ПодстрокаЭлемента, 1, НачалоИндекс-1));
					НоваяСтрока.Расстояние = СокрЛП(Сред(ПодстрокаЭлемента, НачалоИндекс+1));
					
					//ИндексМаршрута = СокрЛП(Сред(ПодстрокаЭлемента, 1, НачалоИндекс-1));
					//РасстояниеМаршрута = СокрЛП(Сред(ПодстрокаЭлемента, НачалоИндекс+1));
					//СоответствиеРасстояний.Вставить(ИндексМаршрута, РасстояниеМаршрута);
				КонецЕсли;
				
				Если НЕ (а + 1 > СтрДлина(Текст)) Тогда
					ПозицияПервогоСимвола = а + 1;
				Иначе
					ПозицияПервогоСимвола = СтрДлина(Текст);
				КонецЕсли; 
			КонецЦикла;
		КонецЕсли;
	Исключение
		
	КонецПопытки;
	
	Попытка
		опМаршрут = ПолеHTML.Документ.getElementByID("points_panel");
		 
		Если опМаршрут.innerHTML <> "" Тогда
		
			Текст = опМаршрут.innerHTML;
			Если ПустаяСтрока(Текст) Тогда
				Возврат;
			КонецЕсли; 
			
			//Определим маршруты и расстояния.
			
			а = СтрДлина(Текст);
			Пока а > 0 Цикл
				Если Сред(Текст, а, 1) <> мРазделительРасстояний И НЕ ПустаяСтрока(Сред(Текст, а, 1)) Тогда
					Прервать;
				КонецЕсли; 
				а = а - 1;
			КонецЦикла;
			
			Текст = Лев(Текст, а+1);
			ПозицияПервогоСимвола = 1;
			НомерЭлемента = 0;
			Для а = 1 По СтрДлина(Текст) Цикл
				Если Сред(Текст, а, 1) <> мРазделительРасстояний Тогда
					Продолжить;
				КонецЕсли;
				
				ПодстрокаЭлемента = СокрЛП(Сред(Текст, ПозицияПервогоСимвола, (а - ПозицияПервогоСимвола)));
				Если НЕ ПустаяСтрока(ПодстрокаЭлемента) Тогда
					//Получим индекс и расстояние.
					НачалоИндекс = Найти(ПодстрокаЭлемента, ":");
					ИндексМаршрута = СокрЛП(Сред(ПодстрокаЭлемента, 1, НачалоИндекс-1));
					РасстояниеМаршрута = СокрЛП(Сред(ПодстрокаЭлемента, НачалоИндекс+1));
					СоответствиеТочек.Вставить(ИндексМаршрута, РасстояниеМаршрута);
				КонецЕсли;
				
				Если НЕ (а + 1 > СтрДлина(Текст)) Тогда
					ПозицияПервогоСимвола = а + 1;
				Иначе
					ПозицияПервогоСимвола = СтрДлина(Текст);
				КонецЕсли; 
			КонецЦикла;
		КонецЕсли;
	Исключение
		
	КонецПопытки;
	
	Маршруты.Очистить();
	ТаблицаРасстояний.Сортировать("Индекс");
	Для каждого ЭлементСтроки Из ТаблицаРасстояний Цикл
		Попытка
			НомерСтроки = Число(ЭлементСтроки.Индекс);
			РасстояниеМаршрута = Число(СокрЛп(ЭлементСтроки.Расстояние));
			
			НоваяСтрока = Маршруты.Добавить();
			НоваяСтрока.НачальнаяТочка = СоответствиеТочек.Получить(ЭлементСтроки.Индекс);
			НоваяСтрока.КонечнаяТочка = СоответствиеТочек.Получить(Строка(НомерСтроки+1));
			НоваяСтрока.Расстояние = РасстояниеМаршрута;
			
			//Если (НомерСтроки+1) < Контрагенты.Количество() Тогда
			//	Контрагенты[НомерСтроки+1].Расстояние = РасстояниеМаршрута;
			//КонецЕсли; 
			
		Исключение
			Сообщить("Не удалось преобразовать расстояние "+ЭлементСтроки.Индекс+" значение "+ЭлементСтроки.Расстояние);
		КонецПопытки;
	КонецЦикла;
КонецПроцедуры
Показать
Nastyok_Kur; Пип Пибип; +2 Ответить
24. Nastyok_Kur 30.11.11 08:36 Сейчас в теме
(23) pumbaE, спасибо огромное! Но все равно не получается:(
Если говорю:
		|   	var summaryPanel = document.getElementById(""directions_panel"");
		  
		|		summaryPanel.innerHTML = router.getDistance();


Ругается: Не удалось задать значение свойства "innerHTML": значением объекта является NULL или он не определен.
Если говрю:
|	var summaryPanel = document.createElement(""directions_panel"");
		|	summaryPanel.innerHTML = router.getDistance();

Потом ПолеHTML.Документ.getElementByID("directions_panel") = Неопределено в Процедура ПолеHTMLДокументСформирован(Элемент)
5. opx 697 11.08.11 11:04 Сейчас в теме
Лучший вариант - построить маршрут и использовать функцию API для оцентровки и масштабирования. Увы не помню как она называется. На следующей неделе выложу обработку там эта функция будет + еще много вкусных плюшек. Но об этом на следующей неделе
6. Пип Пибип 233 11.08.11 13:57 Сейчас в теме
opx - вы про это:
{ viewAutoApply: true } // Эта опция позволяет автоматически выставлять центр и коэффициент масштабирования карты
?
7. d.alexandr 408 11.08.11 15:34 Сейчас в теме
Скажите, пожалуйста, где Вы брали литературу и вообще чем пользовались что бы написать такую обработку???
8. cool.vlad4 2 11.08.11 15:35 Сейчас в теме
(7) я думаю ответом будет - изучение документации яндекс апи и наверное немножко javascript
iiivvvaaannn; Пип Пибип; +2 Ответить
9. Пип Пибип 233 11.08.11 15:48 Сейчас в теме
Sanechichek, предлагаю на "ты"
cool.vlad4 все правильно написал. Яндекс API открыт, хорошо документирован. Есть так же сообщество, где на вопросы отвечают (в описании к обработке как раз есть ссылка на мою тему на форуме Яндекс API)
Ну и когда-то, когда доучивался в универе, работал веб-програмистом/веб-мастером/непоймикем. jQuery еще только появился.
10. pumbaE 20.09.11 16:50 Сейчас в теме
Только, нарушаете вы лицензионное соглашение яндекса... И даже с ключом разработчика яндекс вас через некоторое время забанит. У меня получилось при 500 запросах в день (расчет маршрута торговых агентов) уже получить предупреждение от яндекса.
11. Пип Пибип 233 20.09.11 17:56 Сейчас в теме
pumbaE, совершенно верно.

В описании к обработке об этом так и написано, цитирую: "Отдельно хотелсь бы отметить, что обработка выложена здесь для ознакомления - лицензионное соглашение Яндекс.Карт не предусматривает применение API Яндекс.Карт на десктоп приложении."

Единственное что, на счет этого я немогу дать гарантии: "Если есть необходимость использовать данную обработку в коммерческих целях, Вам необходимо будет перевести ее в Управляемые формы, разместить на вебсервере 1C 8.2 и сделать доступной из сети Интернет. Тогда условия лицензионного соглашения будут соблюдены.". Здесь лучше учтонить либо самостоятельно, либо написать в Техподдежку Яндекс - будет ли это легально, при таком использовании.
12. pumbaE 20.09.11 18:46 Сейчас в теме
Легально, будет только тогда, когда любой сможет зайти на ваш сайт и воспользоваться сервисом яндекс карт. Мы вышли из данной ситуации, так soap сервис к сайту, а на сайте все примеры от яндекса (с его документации), получается как бы дублирование функционала с яндексом, при этом с 1С посылаем POST запрос на формирование, php создает javascript скрипт, в 1С уже загружаем страничку нашего сайта...
okumsky; CatZero; Пип Пибип; +3 Ответить
13. ramir 25.09.11 16:32 Сейчас в теме
14. Pashikuss 26.09.11 12:37 Сейчас в теме
Спасибо пригодилось!
Пип Пибип; +1 Ответить
15. necropunk 11 21.11.11 16:00 Сейчас в теме
Интересная разработка. Попытаюсь к своей конфе прикрутить...
16. Nastyok_Kur 28.11.11 14:32 Сейчас в теме
Никак не получается добавит Router! Упорно пишет "Команда не поддерживается объектом". Помогите, пожалуйста! Подскажите, с чем это может быть связано?

Код:
map.addOverlay(new YMaps.Router(['Москва, м. Курская', 'Москва, м. Парк культуры']));
17. Пип Пибип 233 28.11.11 15:10 Сейчас в теме
(16) Nastyok_Kur, попробуйте как у меня, дословно:

var router = new YMaps.Router(
['Ракитки', 'Москва г, 1 САМОТЕЧНЫЙ ПЕРЕУЛОК, дом № 1'],
[],
{ viewAutoApply: true },
{ avoidTrafficJams: traffic.isShown() }
);

map.addOverlay(router);
18. Nastyok_Kur 29.11.11 11:37 Сейчас в теме
Спасибо! Получилось! В чем была проблема парвда так и не поняла...
19. Nastyok_Kur 29.11.11 11:38 Сейчас в теме
А не подскажете, как мне в 1С можно получить средствами YMaps расстояние маршрута? Понимаю, что есть метод getDistance() класса Router, но как то, что он возвращает мне в 1С увидеть...
20. Пип Пибип 233 29.11.11 12:25 Сейчас в теме
(19) Nastyok_Kur, в варианте моей обработке - увидеть в 1С это можно будет только визуально, в элементе управления ПолеHTMLДокумента. В 1С подготавливаете код JavaScript, скармливаете получившуюся строку элементу управления ПолеHTMLДокумента (предварительно размещенному на форме) и наблюдаете результат на форме
21. Nastyok_Kur 29.11.11 12:30 Сейчас в теме
Да, это я вижу. Я имею ввиду вернуть резултьтат в 1С, а далее мне средствами 1С с ним хочется работать... Т.е. увидеть - не дословно, а именно в коде работать с этим значением.
22. Nastyok_Kur 29.11.11 13:48 Сейчас в теме
Пип Пибип, в общем я хотела средствами YMaps просчитать реальные расстояния между пунктами (не по прямой, а именно по дорогам) и заполнить их, скажем, в неком регистре для дальнейшего использования. Может ли мне в этом помочь класс Router?
Если подскажете - буду более чем благодарна!
25. pumbaE 30.11.11 12:51 Сейчас в теме
ТекстHTML + ?(ТипМаршрута>0,МаршрутHTML,"") + "
	|	}	
	|	function onunloadpage(){
	|		map.destructor();
	|}
	|    </script>
	|
	|<STYLE type=text/css>
    |    .CustomPointDot {
    |        font-family:Arial,Geneva CY,Sans-Serif;
    |        font-size:12px;
    |        font-weight:bold;
    |
    |        position:absolute;
    |        left:1px;
    |        top:3px;
    |
    |        text-align:center;
    |        line-height:21px;
    |        
    |        width:25px;
    |        height:18px;
    |
    |        color:#444444;
    |    }
    |    
    |    .CustomPointName{
    |        font-size:12px;
    |        font-weight:bold;
    |
    |        position:relative; 
    |        top: -41px; 
    |        left: 10px;
    |    }
	|
    |</STYLE>
    |
	|<META name=GENERATOR content=""MSHTML 8.00.7600.16535"">
	|
	|</head>
	|<body style=""height: 100%"" onunload =""onunloadpage()"">
	|	 <div id=""YMapsID"" style=""width: 100%; height: 90%""></div>
	|	<DIV style=""BACKGROUND-COLOR: #ffee77; MARGIN: 20px; DISPLAY: none"" id=""directions_panel""></DIV>
	|	<DIV style=""BACKGROUND-COLOR: #ffee77; MARGIN: 20px; DISPLAY: none"" id=""points_panel""></DIV>
	|	 </body>
	|</html>
	|";
Показать

Это как пример. При формировании HTML проверьте есть ли у вас такие конструкции
|	<DIV style=""BACKGROUND-COLOR: #ffee77; MARGIN: 20px; DISPLAY: none"" id=""directions_panel""></DIV>
|	<DIV style=""BACKGROUND-COLOR: #ffee77; MARGIN: 20px; DISPLAY: none"" id=""points_panel""></DIV>
malutinss; molot; +2 Ответить
26. Nastyok_Kur 01.12.11 12:38 Сейчас в теме
(25) pumbaE, спасибо огромное! Тперь все получилось:)
З.Ы. Ну не сильна я в написании скриптов)
28. Nastyok_Kur 05.12.11 09:18 Сейчас в теме
(25) pumbaE,Не подскажете еще, почему ПолеHTMLДокументСформирован(Элемент) срабатывает раньше, чем на самом деле отработал скрипт? И как прогрпммно отловить момент, когда скрипт отработал и уже можно работать с ПолеHTML.Документ.getElementByID("directions_panel")?

Пока сделала обработку по нажатию на кнопку...
29. pumbaE 12.12.11 14:35 Сейчас в теме
(28) Nastyok_Kur, потому что он уже сформирован, то что Яндекс долго отвечает и script работает не виляет на признак сформирован. Я пока повесил обработчик ожидания на форму и проверяю уже результат работы скрипта, ну и поставил ограничение по времени конечно.

Есть как вариант попробовать так сделать:
Сообщить(ЭлементыФормы.ПолеHTMLДокумента.Документ.parentWindow.eval("someJSfunction()"));
вызовет необходимую тебе функцию и вернет ее результат, даже не надо заморачиватся с парсингом html, в someJSfunction() делаешь возврат допустим массива с простыми данными (строка, число)
30. Nastyok_Kur 19.12.11 08:26 Сейчас в теме
(29) pumbaE, спасибо за помощь!
Пока тоже сделала с обработчиком ожидания, вроде отлично отрабатывает!
37. molot 286 06.05.12 15:38 Сейчас в теме
27. pumbaE 01.12.11 16:35 Сейчас в теме
учтите, для ie6 (в XP) и для ie7 разные заголовки html.
31. Гость 16.02.12 13:14
Возможно ли "высосать" координаты домов, нас.пунктов с карты?
36. Пип Пибип 233 05.04.12 12:23 Сейчас в теме
(31) Гость, нет. Да и цели такой не стояло

(32) только начал изучать возможности, попробуйте поиграться с настройками router'а
32. Гость 15.03.12 22:34
Скажите возможно ли каким-то образом не отображать метки начала и конца маршрута?
33. leonidt84 477 22.03.12 02:04 Сейчас в теме
Работаю из 1С-а с Yandex maps API.
В HTML код в цикле вставляю точки на карте

// метка с нумератором

ТекстHTML = ТекстHTML + "
|
| var point = new YMaps.GeoPoint(" + Формат(СтрокаКонтрагенты.Долгота,"ЧРД=.; ЧН=; ЧГ=0") + "," +
Формат(СтрокаКонтрагенты.Широта,"ЧРД=.; ЧН=; ЧГ=0")+ ");
| var placemark = new YMaps.Placemark(point, {hasBalloon: false, style: ""example#customPoint"", hideIcon: false});
| map.addOverlay(placemark);
| YMaps.Events.observe(placemark, placemark.Events.Click, function(){Create1CProcess(placemark)});";

Последней строчкой добавляю обработчик события клика по точке на карте.
чуть выше по коду определяю функцию-listener

| function Create1CProcess(){
| alert(typeof this);
| }


и вот в это вот this никак не хочет возвращаться placemark. Т.е. я хочу обратиться к точке, по которой кликнули, а как - не пойму. В Яве я не силен - подскажите кто разбирается.
34. zipik 25.03.12 17:33 Сейчас в теме
Под управляемые формы есть?
35. Пип Пибип 233 05.04.12 12:21 Сейчас в теме
(34) zipik, к сожалению, нет - необходимости не было
но должно быть не сложно (думаю, кроме случаев запуска клиентской части под linux - т.к. используется элемент формы ПолеHTMLДокумента)
38. Гость 15.05.12 10:35
Возможно ли получать данные по маршруту не выводя его в поле html документа?
А также можно ли получить данные по нескольким маршрутам за один раз?
39. pvvking 07.09.12 14:52 Сейчас в теме
Вопрос как получить координаты объекта в 1с.
Например есть справочник с адресами в формате Россия,Город,Улица,дом,X,Y
все известно кроме X ну и Y как можно получить что-то подобное X=60.2546 Y=56.2546 .
Заранее спасибо.
40. Пип Пибип 233 07.09.12 16:22 Сейчас в теме
(39) pvvking, попробуйте вот эту обработку посмотреть:
http://infostart.ru/public/126237/
там как раз передача данных в 1С должна быть
41. 26178_mail.ru 59 14.11.12 02:32 Сейчас в теме
как проверить входит ли точка в многоугольник созданный функцией
var polygon = new YMaps.Polygon([ new YMaps.GeoPoint(37.7,55.7),
new YMaps.GeoPoint(37.7,55.8),
new YMaps.GeoPoint(37.8,55.8),
new YMaps.GeoPoint(37.8,55.7),
new YMaps.GeoPoint(37.7,55.7)
]);

map.addOverlay(polygon);
42. gosizo 38 14.09.13 09:11 Сейчас в теме
допустим я поставил несколько меток, можно ли как-то смасштабировать карту, что бы всемасштаб ыл максимально увеличен и в тоже время все метки были видны (в границах карты)?
43. drat9 22.09.13 02:19 Сейчас в теме
map.setBounds(new YMaps.GeoBounds(new YMaps.GeoPoint(" +
Формат(СтруктураВозврата.МинДолгота,"ЧРД=.; ЧН=; ЧГ=0") + ", " +
Формат(СтруктураВозврата.МинШирота,"ЧРД=.; ЧН=; ЧГ=0") + "), new YMaps.GeoPoint(" +
Формат(СтруктураВозврата.МаксДолгота,"ЧРД=.; ЧН=; ЧГ=0") + ", " +
Формат(СтруктураВозврата.МаксШирота,"ЧРД=.; ЧН=; ЧГ=0")+ ")));
|
| map.enableScrollZoom();
можно, вот у меня кусок кода
Светлый ум; +1 Ответить
44. Nebiros777 5 17.02.14 17:39 Сейчас в теме
Классная штука, надо кинуть в закладки. Спасибо.
45. olo_lo4 01.11.15 14:26 Сейчас в теме
Подскажите, а как вывести в таблицу 1С подробное описание маршрута, имеется в виду прямо вывод движения по улицам и их расстояние. Мне нужно мерить длину движения от МКАД до цели в Московской области, никак не пойму и нигде найти подобное не могу. У вас единственно где нашел и то выводит в виде HTML ответа что никак нельзя обработать средствами 1С
46. Пип Пибип 233 01.11.15 18:45 Сейчас в теме
(45) olo_lo4, попробуйте ссылку из поста №40, в данной же теме: http://forum.infostart.ru/forum24/topic41112/message750246/#message750246

Там должно быть получение результатов построения маршрута в саму 1С, с возможностью программной обработки
Оставьте свое сообщение