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

07.08.11

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

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

Скачать файлы

Наименование Файл Версия Размер
YandexMaps.epf
.epf 11,78Kb
2963
.epf 11,78Kb 2963 Скачать бесплатно

Внешняя обработка отображает в 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

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

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

36000 руб.

03.08.2020    15745    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17548    6    15    

13

Интеграция с сервисом vetmanager

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

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16358    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25737    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

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

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88578    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Chez87 08.08.11 23:25 Сейчас в теме
Обработка работает только по Москве или по Питеру тоже?
2. Пип Пибип 232 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. Пип Пибип 232 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 794 11.08.11 11:04 Сейчас в теме
Лучший вариант - построить маршрут и использовать функцию API для оцентровки и масштабирования. Увы не помню как она называется. На следующей неделе выложу обработку там эта функция будет + еще много вкусных плюшек. Но об этом на следующей неделе
6. Пип Пибип 232 11.08.11 13:57 Сейчас в теме
opx - вы про это:
{ viewAutoApply: true } // Эта опция позволяет автоматически выставлять центр и коэффициент масштабирования карты
?
7. d.alexandr 406 11.08.11 15:34 Сейчас в теме
Скажите, пожалуйста, где Вы брали литературу и вообще чем пользовались что бы написать такую обработку???
8. cool.vlad4 2 11.08.11 15:35 Сейчас в теме
(7) я думаю ответом будет - изучение документации яндекс апи и наверное немножко javascript
iiivvvaaannn; Пип Пибип; +2 Ответить
9. Пип Пибип 232 11.08.11 15:48 Сейчас в теме
Sanechichek, предлагаю на "ты"
cool.vlad4 все правильно написал. Яндекс API открыт, хорошо документирован. Есть так же сообщество, где на вопросы отвечают (в описании к обработке как раз есть ссылка на мою тему на форуме Яндекс API)
Ну и когда-то, когда доучивался в универе, работал веб-програмистом/веб-мастером/непоймикем. jQuery еще только появился.
10. pumbaE 20.09.11 16:50 Сейчас в теме
Только, нарушаете вы лицензионное соглашение яндекса... И даже с ключом разработчика яндекс вас через некоторое время забанит. У меня получилось при 500 запросах в день (расчет маршрута торговых агентов) уже получить предупреждение от яндекса.
11. Пип Пибип 232 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 9 21.11.11 16:00 Сейчас в теме
Интересная разработка. Попытаюсь к своей конфе прикрутить...
16. Nastyok_Kur 28.11.11 14:32 Сейчас в теме
Никак не получается добавит Router! Упорно пишет "Команда не поддерживается объектом". Помогите, пожалуйста! Подскажите, с чем это может быть связано?

Код:
map.addOverlay(new YMaps.Router(['Москва, м. Курская', 'Москва, м. Парк культуры']));
17. Пип Пибип 232 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. Пип Пибип 232 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 285 06.05.12 15:38 Сейчас в теме
27. pumbaE 01.12.11 16:35 Сейчас в теме
учтите, для ie6 (в XP) и для ie7 разные заголовки html.
31. Гость 16.02.12 13:14
Возможно ли "высосать" координаты домов, нас.пунктов с карты?
36. Пип Пибип 232 05.04.12 12:23 Сейчас в теме
(31) Гость, нет. Да и цели такой не стояло

(32) только начал изучать возможности, попробуйте поиграться с настройками router'а
32. Гость 15.03.12 22:34
Скажите возможно ли каким-то образом не отображать метки начала и конца маршрута?
33. leonidt84 475 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. Пип Пибип 232 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. Пип Пибип 232 07.09.12 16:22 Сейчас в теме
(39) pvvking, попробуйте вот эту обработку посмотреть:
http://infostart.ru/public/126237/
там как раз передача данных в 1С должна быть
41. 26178_mail.ru 58 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. Пип Пибип 232 01.11.15 18:45 Сейчас в теме
(45) olo_lo4, попробуйте ссылку из поста №40, в данной же теме: http://forum.infostart.ru/forum24/topic41112/message750246/#message750246

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