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

Публикация № 88304 Дата создания: 07.08.11 23:54

Разработка - Обработки - Универсальные обработки

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

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

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

Наименование Файл Версия Размер
YandexMaps.epf

.epf 11,78Kb
2552
.epf 11,78Kb 2552 Скачать бесплатно

Специальные предложения

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

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

Единственное что, на счет этого я немогу дать гарантии: "Если есть необходимость использовать данную обработку в коммерческих целях, Вам необходимо будет перевести ее в Управляемые формы, разместить на вебсервере 1C 8.2 и сделать доступной из сети Интернет. Тогда условия лицензионного соглашения будут соблюдены.". Здесь лучше учтонить либо самостоятельно, либо написать в Техподдежку Яндекс - будет ли это легально, при таком использовании.
12. pumbaE 643 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 8 21.11.11 16:00 Сейчас в теме
Интересная разработка. Попытаюсь к своей конфе прикрутить...
16. Nastyok_Kur 28.11.11 14:32 Сейчас в теме
Никак не получается добавит Router! Упорно пишет "Команда не поддерживается объектом". Помогите, пожалуйста! Подскажите, с чем это может быть связано?

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

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

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

См. также

Обработка, делающая все хорошо Промо

Универсальные обработки v8 1cv8.cf Бесплатно (free)

Обработка, делающая все хорошо. Кроме шуток.

25.12.2015    30961    988    GROOVY    63    

Генерация QR кодов на чистом 1С

Универсальные обработки v8 Бесплатно (free)

Генерация QR кодов на чистом 1С, работает из коробки с мобильным приложением.

26.04.2021    3896    172    fotov    10    

Создание элементов справочников и экземпляров документов

Универсальные обработки v8 1cv8.cf Бесплатно (free)

Обработка, позволяющая генерировать шаблон программного кода для создания элементов справочников и экземпляров документов.

18.02.2021    1969    79    Степной    3    

Просмотр идентификаторов объектов

Универсальные обработки v8 1cv8.cf Бесплатно (free)

Обработка позволяет посмотреть уникальный идентификатор как одного объекта, так и списка выбранного типа. Обратите внимание, что таблица значений формируется без ограничения количества. Если нужно сделайте доработку по отбору и ограничению списка. Можно использовать при поиске идентификатора для определения наличия объекта в базе. Распространяется бесплатно. Код открыт.

27.09.2020    2787    96    mrsmrv    11    

Линия жизни Промо

Универсальные обработки О жизни v8 1cv8.cf Бесплатно (free)

Отображает линию жизни за период во времени по декадам. Линия указывает на подъемы и падения общего характера (дом, работа, учеба, социальное, финансовое положение) не касаясь здоровья.

17.05.2009    20781    342    Svetozor    20    

Универсальная обработка информационной базы

Универсальные обработки v8 1cv8.cf Бесплатно (free)

Обработка предназначена для подсчета числа объектов информационной базы за выбранный период, а так же обработки объектов произвольным кодом или на основе предопределённых действий.

29.06.2020    3853    173    kozusenok    9    

Групповая обработка контейнеров сертификатов ЭЦП

Универсальные обработки Файловые протоколы обмена, FTP v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Внешняя обработка для просмотра списка установленных на локальном компьютере контейнеров сертификатов ЭЦП, с возможностью групповой обработки: копирования, установки сертификатов, отправки на EMAIL или FTP.

25.05.2020    4923    163    independ    4    

Универсальные инструменты 1С

Универсальные обработки Прочие инструменты разработчика Консоль запросов v8 v8::УФ 1cv8.cf Бесплатно (free)

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    47543    3859    cprit    156    

Калькулятор для управляемых форм. 1С 8.3

Универсальные обработки v8 v8::УФ 1cv8.cf Бесплатно (free)

Калькулятор для 1С 8.3 управляемой формы.

13.05.2019    6534    87    Nefilimus    4    

Задача - как подобрать из бухт кабеля двух длин на складе (бухты не режутся) количество с минимальным отклонением от заказа клиента

Универсальные обработки Учет ТМЦ Учет ТМЦ v8 1cv8.cf УУ Бесплатно (free)

Условие задачи: Мы продаем витую пару, в бухтах по 30 метров и по 70 метров, бухты не разрезаются, продаются целиком. Имеем на складе какое-то произвольное количество тех и других бухт. Что требуется: Приходит клиент и просит какую-либо длину, произвольную, допустим 150 метров, необходимо написать процедуру, которая одним запросом подберет необходимое количество тех и других бухт как можно ближе к этой длине с учетом товаров на складе. Не нашел готового решения. Не претендую на оптимальность. Рабочая версия для УПП

22.08.2015    11490    12    ser6702    23    

Форма выбора координат Yandex карт (управляемая форма)

Универсальные обработки WEB Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Обработка позволяет найти нужный адрес на карте Yandex. Отправить сообщение форме-владельцу или всем формам, со строкой координат.

06.09.2011    18525    374    motkot    27    

Обработка "Расчеты с датами" (8.1, 8.2)

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

Маленькая обработка предназначена для расчета количества дней между датами и получения даты от начальной через определенное количество дней.

29.12.2010    6015    135    N1Kav    5    

АЦРК: Редактор объекта

Универсальные обработки Сервисные утилиты v8 1cv8.cf Бесплатно (free)

Обработка «АЦРК: Редактор объекта» предназначена для просмотра и редактирования реквизитов любого объекта базы данных. Показывает все реквизиты в универсальной форме. Может применяться для «точечного ремонта» базы данных.

12.09.2010    14879    147    acrk    6    

Счетчик слов в тексте

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

Обработка подсчитывает частоту и долю каждого слова в тексте. Будет полезна при изучении иностранных языков.

19.05.2010    14997    52    YVolohov    8    

Пересчет регистров накопления вида "Обороты"

Универсальные обработки Сервисные утилиты v8 1cv8.cf Бесплатно (free)

Что-то с налету не нашел типовой пересчет ОБОРОТОВ, а вдруг понадобилось....

30.03.2010    22000    285    anig99    9    

Танцы с Гуглом

Универсальные обработки WEB Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Работа с картами гугл из локального кэша формата google titles. Всего две функции: показать по координатам и получить координаты под курсором. Применяется для отображения на карте объектов, имеющих координатную привязку.

27.03.2010    8306    200    Путин    7    

[8.2] Универсальная обработка "Универсальные подбор и обработка объектов" (управляемые формы)

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

Обработка "Универсальные подбор и обработка объектов" предназначена для поиска объектов в справочниках и документах по произвольному условию и дальнейшей обработки найденных объектов.

11.02.2010    59715    3676    Душелов    77    

Групповая обработка справочников и документов + планов видов расчета и планов видов характеристик

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

Небольшое дополнение типовой обработки для работы с планами видов характеристик и расчета.

20.01.2010    14646    341    Rusmus    3    

Универсальные подбор и обработка Задач

Сервисные утилиты Универсальные обработки v8 1cv8.cf Бесплатно (free)

Начал работать с объектом Задачи и столкнулся с необходимостью групповой обработки задач. "Универсальные подбор и обработка объектов" от 1С почему-то этого не умеет делать. Немного работы напильником и обработка стала ещё универсальнее.

04.12.2009    10412    299    hansel    13    

Создаем шифрованные ярлыки.

Универсальные обработки Сервисные утилиты Защита и шифрование v8 1cv8.cf Бесплатно (free)

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

30.09.2009    14485    92    dj_tol    1    

Аналоговые часы для 1С

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

И спросили меня "Слышь, пацанчик, сколько время?" и ответил я им... гордо взглянув в 1С!!!

22.09.2009    18860    654    MadRabbit    24    

Панель избранного 3.03 (beta)

Практика программирования Универсальные обработки Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

13.09.2009    34768    1003    Totoro    113    

Групповая обработка документов и справочников

Универсальные обработки Сервисные утилиты v8 1cv8.cf Бесплатно (free)

Типовая обработка + 1. Отключение контроля записи (ОбменДанными.Загрузка) 2. Обработка ПВХ

04.08.2009    16957    307    acsent    8    

Очистка настроек текущего пользователя

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

Эта простейшая обработка производит очистку настроек текущего пользователя.

27.06.2009    7018    105    VladZetRu    1    

Кредитный калькулятор

Универсальные обработки v8 1cv8.cf Бесплатно (free)

Данная обработка предназначена для расчета кредита аутентичным способом с возможностью досрочного погашения. Брал большой кредит, кредитные калькуляторы которые были в Internet не подходили, т.к. в них достаточно сложно определить какую сумму на процентах ты экономишь при досрочном погашении. Поэтому пришлось сделать свой. Есть возможность подобрать суммы к досрочному погашению в зависимости от дохода.

26.06.2009    6463    280    macana    32    

Досрочный выход на пенсию? Легко!

Универсальные обработки v8 Домашние учет и финансы Россия Бесплатно (free)

Вы все еще верите в то, что государство Вам обеспечит хорошую старость? Возможно… Но я хочу помочь Вам самим обеспечить свою старость и достойную пенсию, и возможно, даже досрочно выйти на пенсию! Что для этого нужно? Для начала эта обработка и несколько минут свободного времени.

12.05.2009    19480    800    z-alexey    135    

Количество месяцев и дней между датами (ЗУП)

Зарплата Универсальные обработки Зарплата v8 ЗУП2.5 Россия БУ Бесплатно (free)

Обработка подсчитывает количество месяцев и дней между 2-мя датами с учетом високосных

13.04.2009    18116    810    relax2105    21    

Редактор записей регистров сведений и накоплений

Универсальные обработки Сервисные утилиты Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

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

05.04.2009    26139    1191    json    7    

Панель избранного 1.05

Универсальные обработки Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Это попытка сделать независимую от конфигурации обработку, которая позволяла бы пользователям и программисту создавать удобный для работы интерфейс (или хотя бы его подобие). Это обработка похожа на http://www.infostart.ru/projects/1472, но я делал упор на удобство и универсальность.

19.03.2009    20892    774    Totoro    35    

Универсальный отчет Печать справочников

Универсальные обработки Обработка справочников v8 1cv8.cf Россия Бесплатно (free)

Печатает любой справочник из конфигурации с выбором нужных нам реквизитов.

17.03.2009    19203    2227    deathExpectation    33    

Константы v8

Сервисные утилиты Универсальные обработки Обработка справочников v8 1cv8.cf Россия Бесплатно (free)

Просмотр и редактирование констант

11.03.2009    13793    227    Zapal    24    

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

Обработка документов Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

1) Выбираем документ источник с необходимой табличной частью 2) Выбираем тип нового документа приемника 3) Указываем какие табличные части переносить в какие и всё.

24.02.2009    20150    2141    Legavaz    30    

Кредитный калькулятор

Универсальные обработки Займы, кредит, лизинг Займы, кредит, лизинг v8 Домашние учет и финансы Россия Бесплатно (free)

Кредитный калькулятор внесет ясность в Ваши взаимоотношения с банком.

05.01.2009    10817    146    briz    16    

MP3 проигрыватель для 1С 8.1

Универсальные обработки v8 Россия Бесплатно (free)

Обработка для прослушивания музыки из 1С.

22.12.2008    13695    300    Alexsisit    31    

Навеяно кризисом

Универсальные обработки WEB Работа с интерфейсом Банковские операции Банковские операции v8 1cv8.cf Бесплатно (free)

Используя эту обработку Вы всегда будете знать состояние кризиса на данный момент :)

11.11.2008    20629    1180    ValeriVP    27    

Управление итогами

Универсальные обработки Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

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

22.09.2008    33873    1259    coder1cv8    16    

Список изменений

Универсальные обработки v8 1cv8.cf Россия Бесплатно (free)

Внешняя обработка для ведения списка изменений. Может использоваться разработчиками для автоматического формирования так называемых файлов ChangeLog.txt

04.09.2008    10841    308    serezhenko    5