0. Smaylukk 783 28.12.12 00:14 Сейчас в теме

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers)

С каждым годом становится все очевидно, что использование онлайн-сервисов намного упрощает жизнь. К сожалению по картографическим сервисам условия пока жестковаты. Но, ориентируясь на будущее, я решил показать возможности API выше указанных сервисов:
Инициализация карты
Поиск адреса на карте с текстовым представлением
Геокодинг
Обратная поиск адреса по ее координатами
Взаимодействие с картами - прием координат установленного на карте метки
Построение маршрутов по указанным точками
Кластеризация меток на карте при увеличении масштаба
Теперь также поддержка тонкого и веб-клиента

Перейти к публикации

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо
201. Smaylukk 783 22.09.16 17:00 Сейчас в теме
(199) Дмитрий_кдс, А какая именно проблема?
Если использовать в макете совместимость с IE=8 - этот метод доступен.
Если выше - он отключен по соображению безопасности, но отключен именно у ПоляHTMLДокумента. От платформы не зависит.
Это исправлено в новой версии обработки.
Если коротко - используется метод click() элемента HTML.
202. madonov 154 28.09.16 08:50 Сейчас в теме
(199) Дмитрий_кдс,
МакетЯндекс

<met a http-equiv="X-UA-Compatible" content="IE=8">
заменить на
<met a http-equiv="X-UA-Compatible" content="IE=9">

<sc ript src="https://api-maps.yandex.ru/2.1.42/?lang=ru-RU" type="text/javascript"></sc ript>


Модуль Формы "Форма"

По сути дела все конструкции "ЭлементыФормы.Эксплорер.Документ.parentWindow.eval(%Какой-то код%);" нужно заменить на
ЭлементыФормы.Эксплорер.document.getElementById("WebClientOperation";).value = "%Какой-то код%";
ЭлементыФормы.Эксплорер.document.getElementById("WebClient";).click();

Процедура ОчиститьКарту()
ДополнительнаяИнформация = "";
//ЭлементыФормы.Эксплорер.Документ.parentWindow.eval("Reset()";);
ЭлементыФормы.Эксплорер.document.getElementById("WebClientOperation";).value = "Reset()";
ЭлементыФормы.Эксплорер.document.getElementById("WebClient";).click();	
КонецПроцедуры

Процедура ПоискАдреса(Адрес)
//ЭлементыФормы.Эксплорер.Документ.parentWindow.eval("FindAdres(""" + Адрес + """;);";);
ЭлементыФормы.Эксплорер.document.getElementById("WebClientOperation";).value = "FindAdres(""" + Адрес + """;);";
ЭлементыФормы.Эксплорер.document.getElementById("WebClient";).click();
КонецПроцедуры

Процедура ОбратнПоискАдреса(Широта, Долгота, Адрес)
//ЭлементыФормы.Эксплорер.Документ.parentWindow.eval("ReverseSearchAdres(" + Широта + "," + Долгота + ", """ + Адрес + """;);";);
ЭлементыФормы.Эксплорер.document.getElementById("WebClientOperation";).value = "ReverseSearchAdres(" + Широта + "," + Долгота + ", """ + Адрес + """;);";
ЭлементыФормы.Эксплорер.document.getElementById("WebClient";).click();
КонецПроцедуры

Процедура ПостроитьМаршрут_Яндекс()
ПараметрыМаршрута = ПолучитьПараметрыМаршрутаЯндекс();

ОчиститьКарту();
//ЭлементыФормы.Эксплорер.Документ.parentWindow.eval("calcRoute(" + ПараметрыМаршрута + ";)";);
ЭлементыФормы.Эксплорер.document.getElementById("WebClientOperation";).value = "calcRoute(" + ПараметрыМаршрута + ";)";
ЭлементыФормы.Эксплорер.document.getElementById("WebClient";).click();
КонецПроцедуры


ПостроитьКластера()
//Данная процедура у меня сильно переписана
//Приведу свой пример - нужно сделать по аналогии

//ЭлементыФормы.Эксплорер.Документ.parentWindow.eval("addToPointArray("
//+ Широта + ","
//+ Долгота + ", """
//+ Кластер + """, """
//+ СодержимоеТочки + """, """
//+ ЗаголовокТочки + """, """ 
//+ ЗаголовокСодержимогоТочки	+ """, """ 
//+ ПодвалТочки + """, """
//+ Иконка+""";);";);

ЭлементыФормы.Эксплорер.document.getElementById("WebClientOperation";).value = "addToPointArray("
+ Широта + ","
+ Долгота + ", """
+ Кластер + """, """
+ СодержимоеТочки + """, """
+ ЗаголовокТочки + """, """ 
+ ЗаголовокСодержимогоТочки	+ """, """ 
+ ПодвалТочки + """, """
+ Иконка+""";);";
ЭлементыФормы.Эксплорер.document.getElementById("WebClient";).click();


КонецПроцедуры
Показать
203. a3a 10 29.09.16 06:07 Сейчас в теме
(202) madonov, проверил
на 8.2 отрабатывает только 1 раз, при повторном вызову процедур вываливаеттся ошибка на строку

ЭлементыФормы.Эксплорер.document.getElementById("WebClient").click();

(и почему у тебя после слова ""WebClient" стоит знак ";")?

говорят что это ошибка окна експлорера, исправили в версии 8.3. так что увы, только обновляться.
204. madonov 154 04.10.16 07:36 Сейчас в теме
(203) a3a,
Да, это ошибка самой платформы. Я поднимал этот вопрос в (177), ответ был в (178).
Я своим пользователям объяснил эту особенность, поэтому они просто не закрывают обработку, если она может понадобиться в рамках текущего сеанса.
Если пользователи закрывают её по привычке - можно спрятать кнопку закрытия, оставить только сворачивание (колхоз конечно).

А поп поводу ";" - да чёрт его знает, вроде делал по образцу управляемой формы этой же обработки, мне они в любом случае не мешают - все работает)).
200. Дмитрий_кдс 22.09.16 11:00 Сейчас в теме
обычные формы 8.3 платформа
205. VanoZZZ 01.11.16 15:31 Сейчас в теме
Подскажите пожалуйста, как в процедуру построения маршрута можно передать массив с комментариями к точкам маршрута?
Идея в том, чтобы при щелчке на промежуточную точку маршрута выводились не ее координаты, а нужный комментарий (у каждой точки свой, к примеру, адрес или название точки).
Спасибо
206. Smaylukk 783 02.11.16 10:39 Сейчас в теме
(205) VanoZZZ, эта обработка так не умеет. И нет простого способа это сделать.
Надо менять js-функцию построения маршрута.
Смотрите пример и пробуйте - https://tech.yandex.ru/maps/jsbox/2.1/multiroute_view_options
207. alex_4x 81 09.11.16 14:04 Сейчас в теме
Добрый день! Колоссально сделано всё. Но у меня по непонятной мне причине при геокодинге с карты яндекса выскакивает ошибка.
Ошибка при вызове метода контекста (Получить): Ошибка работы с Интернет: SSL connect error
Подскажите, как проверить и с чем это может быть связано. На файрволе вроде бы как всё открыто.

Я так понял сертификаты проверяются 1С по файлу cacert.pem, который лежит в каталоге bin (и для версии 8.2 и для 8.3)
Может у меня с этим файлом всё плохо? Я туда попробовал добавить сертификат яндекса (текстом, как написано на форумах) но ничего не помогло. Больше ни у кого такой проблемы не возникало? Версия 1С 8.2.19
208. Smaylukk 783 10.11.16 12:45 Сейчас в теме
(207) alex_4x, наверное платформа старенькая.
Если есть возможность - попробуйте на более новой (8.3).
209. wmonref1 17.11.16 12:36 Сейчас в теме
На днях появилась ошибка метода "getContext" в картах Google....

Платформа 8.3.9.1818, УФ
Не подскажете как вылечить?
211. Smaylukk 783 23.11.16 12:48 Сейчас в теме
(209), (210) такой ошибки не встречал, так что помочь или подсказать не могу.
210. wmonref1 18.11.16 09:27 Сейчас в теме
212. Vary 18.05.17 13:56 Сейчас в теме
Подскажите, как получить расстояние между каждой парой точек в маршруте? Т.е. например А - В = 10км, В-С = 175 км,С-Д 15км и т.д....
213. Vary 18.05.17 13:57 Сейчас в теме
214. a3a 10 19.05.17 05:29 Сейчас в теме
(212) Мария у вас Яндекс карты работают? )) у меня он перестал работать в конце прошлого года (вываливаются ошибка из за обновления API) и я забросил. А так можно для примера зайти в "Песочницу" Яндекс карт. Прям так и называется ресурс. там есть разнообразные примеры.
215. madonov 154 19.05.17 05:47 Сейчас в теме
(214) в (202) Я подробно описал как исправить - ничего сложного.
218. Smaylukk 783 19.05.17 10:20 Сейчас в теме
(212) при построении маршрута - имеется ввиду js-код в макете обработки - у объекта router (https://tech.yandex.ru/maps/doc/jsapi/2.0/ref/reference/router.Route-docpage) можно получить массив путей или сегментов методом getPaths().
По идее он возвращает массив с объектами router.Path (https://tech.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference/router.Path-docpage/).
Ну а у этого объекта уже можно получить getHumanLength() и другие значение, смотрите в справке.
Но готового кода нет, к сожалению.
222. Vary 20.05.17 06:00 Сейчас в теме
(218)спасибо, буду пробовать
216. FreeArcher 87 19.05.17 07:08 Сейчас в теме
Приветствую.
Буду реализовывать обработку по расчету и визуализации доставки.
Подскажите какую карту лучше использовать изначально? (Наличие ограничений, сложности API, документация.)
Чтобы поменьше граблей встретить на пути.
217. madonov 154 19.05.17 07:36 Сейчас в теме
(216)
Рамблер - мертв.

2ГИС - требует ключ API, но даже с ним не умеет прокладывать маршруты и кластеризировать метки.

Яндекс - формально использование внутри 1С является нарушением лицензионного соглашения Яндекс-карт (фактически работает без ограничений). Периодически меняется API и обработку требуется дорабатывать. Описание API полностью на русском языке, есть большое количество примеров работы.

Гугл - не могу сказать ничего плохого, тк не пользовался. Судя по описанию не уступает Яндексу по функционалу. Хотя если сравнивать по опыту использования на мобильных устройствах - Геокодинг и построение маршрутов у Яндекса более точное.
FreeArcher; +1 Ответить
219. Smaylukk 783 19.05.17 10:27 Сейчас в теме
(216)(217)
Яндекс - более детально прорисован и актуализирован для СНГ. Это касается того, что дальше больших городов.
Чтобы официально и без проблем использовать Яндекс или Гугл - надо брать лицензии. Точных цифр нет, но дороговато.
Есть еще openstreenmap, но api там меня не очень впечатлило и я ее не встраивал в свою обработку.
220. jonson_r 2 19.05.17 17:24 Сейчас в теме
Доброго времени суток, я так понял для google карт используется его JS API?

А каким образом решен вопрос с API_KEY?
221. Smaylukk 783 19.05.17 21:13 Сейчас в теме
(220) багато или фича, но работает пока и без него. Не знаю почему и не спрашивал, но могут потребовать обязательно со временем.
223. jonson_r 2 21.05.17 16:31 Сейчас в теме
(221) Спасибо, я поэтому и спросил что бы понимать на перспективу. А если все же затребуют, в существующий код html-страници его можно будет вставить, например как параметр какой-то, или все же нужно существенно переписывать?
224. Smaylukk 783 21.05.17 20:37 Сейчас в теме
(223)
Он там нужен только при инициализации карты, поэтому доделать не долго.
226. jonson_r 2 22.05.17 15:29 Сейчас в теме
(224) Понял, благодарю за ответ.
225. FreeArcher 87 22.05.17 12:58 Сейчас в теме
А подскажите можно ли как-то получить расстояния между точкам?
Получить расстояние всего маршрута я научился, но если в маршруте 10 точек, мне бы обойти их в цикле и получить расстояние каждой точки.
Или с учетом того, что все завязано на кликах так невозможно сделать?
227. Smaylukk 783 22.05.17 16:13 Сейчас в теме
(225)
Похожий ответ есть в (218)
230. ArchLord42 68 09.08.17 16:44 Сейчас в теме
С недавнего времени гугл карта начала писать, что ишак 9 не входит в список поддерживаемых браузеров, у кого такое случилось тоже, можно юзать последнюю версию, в которой эта поддержка была

Достаточно изменить версию гугл карт в макете.

<script type="text/javascript" src="https://maps.google.com/maps/api/js?v=3.26"></script>
231. Sergey___ 61 04.09.17 15:36 Сейчас в теме
Может кто знает что опять случилось с картой гугла? Ошибки никакой не выдает, но не рисует метки из моего файла.
232. Sergey___ 61 05.09.17 10:43 Сейчас в теме
Получили новый ключ API все заработало.
233. CyberCerber 316 15.09.17 10:46 Сейчас в теме
Добрый день
На платформе 8.3.10.2299 в Яндекс-картах, если построить маршрут, нажать на балун, и после появления подписи с координатами нажать там крестик, 1С:Предприятие закрывается с ошибкой:

Имя события проблемы: BEX
Имя приложения: 1CV8C.exe
Версия приложения: 8.3.10.2299
Отметка времени приложения: 591a2d1f
Имя модуля с ошибкой: mshtml.dll
Версия модуля с ошибкой: 11.0.9600.17280

Такая же ошибка бывает просто при закрытии формы с картой.
Кто-нибудь сталкивался с таким?
234. FreeArcher 87 16.09.17 05:04 Сейчас в теме
(233) Да есть ошибка при нажатии на крестик. Решение: не нажимать на крестик.
235. CeHbKA 254 21.10.17 15:06 Сейчас в теме
Спасибо большое за обработку! Труд титанический
236. bolush 13.12.17 20:26 Сейчас в теме
Я сделала так, вроде ошибки нет, но что я поменяла не знаю :))

Если кто-то знает что дайте ответ..

	Элементы.Эксплорер.document.getElementById("MobiCCoordsConnect").value = "FindAdres(""" + Адрес + """);";
	
	Элементы.Эксплорер.document.getElementById("RefreshButton").fireEvent("onclick");

237. lkey 20.07.18 14:44 Сейчас в теме
Во-первых, спасибо автору за его труд, очень много сил и времени сэкономил.
Во вторых, столкнулся с интересной проблемой: при построении маршрута линия маршрута отрисовывается в меньшем масштабе и со смещением. Не знаете, в чем может быть дело?
Прикрепленные файлы:
238. Smaylukk 783 22.08.18 11:08 Сейчас в теме
(237) хоть и с опозданием, но отвечу. За расчет и отрисовку маршрута в классическом варианте отвечает API Яндекса, если у вас там конечно нет какого-то своего пост-обработчика. Поэтом и подсказать особо нечего.
239. al_zzz 126 26.10.18 11:52 Сейчас в теме
Подскажите пожалуйста, как мне в данной обработке сделать, чтоб по клику на метке возвращались координаты метки, либо её наименование(инициировался вызов внешнего события onclick)?
- сейчас событие onclick возвращает только координаты при клике на новой точке, а при клике на метке ничего не происходит. В отладку тоже не могу попасть. Делаю на платформе 8.2.19.130.
241. FreeArcher 87 28.10.18 07:04 Сейчас в теме
(239) Самое просто в название метки сразу прописывать координаты. Т.к. событие клик не происходит при нажатии на метку.
242. al_zzz 126 28.10.18 07:47 Сейчас в теме
(241) Посмотрел внимательнее - событие вызывается, но координаты при клике по метке возвращаются нулевые. К сожалению, не могу просмотреть - возвращается ли что-то ещё помимо координат - в отладку не попадаю.
243. FreeArcher 87 28.10.18 08:12 Сейчас в теме
(242)
        myMap.events.add('click', function (e) {
            var mCords = e.get('coords');


Вот так получаются координаты если срабатывает событие клика.

Я их сразу пишу в поля input и потом если надо забираю из 1С.
244. Smaylukk 783 28.10.18 18:54 Сейчас в теме
(239) Либо как описано в (242), либо при создании метки в коде макета, перед добавлением на карту, прописывать событие, которое должно произойти при клике на нее - вытянуть координаты в инпуты.
Что-то такое
myPlacemark.events.add('click', function (e) {
	document.getElementById('CoordX').value = coordPosition[0].toPrecision(15);
	document.getElementById('CoordY').value = coordPosition[1].toPrecision(15);
 });
247. al_zzz 126 29.10.18 06:00 Сейчас в теме
(244)
myPlacemark.events.add('click', function (e) {
document.getElementById('CoordX').value = coordPosition[0].toPrecision(15);
document.getElementById('CoordY').value = coordPosition[1].toPrecision(15);
});

Подкорректировал код следующим образом:
function init(){  
		myMap = new ymaps.Map ("map", {
			center: [55.75, 37.62],
			zoom: 12
		}, {
        balloonMaxWidth: 200
    });
		myMap.behaviors.enable('scrollZoom');
		myMap.behaviors.disable('dblClickZoom');
			
		myMap.events.add('click', function (e) {
			if (!noclick) {
				addMarker(e.get('coords')); 
				
			}else{
				//noclick = false;
				getmyPlacemarkPosition(e.get('coords'));
			}
		});
		
			
		myMap.events.add('drag end', function (e) {
			noclick = true;			
			document.getElementById('CoordX').value = "0";
			document.getElementById('CoordY').value = "0";
		});
		
		// создадим кластеризатор и запретим приближать карту при клике на кластеры
		clusterer = new ymaps.Clusterer({clusterDisableClickZoom: true, synchAdd: true});
		myMap.geoObjects.add(clusterer);
	}
Показать

и
function getmyPlacemarkPosition(coordPosition){

	myPlacemark.events.add('click', function (e) {
    document.getElementById('CoordX').value = coordPosition[0].toPrecision(15);
    document.getElementById('CoordY').value = coordPosition[1].toPrecision(15);
 });
}
- так изменил код скрипта. Возвращаются по-прежнему нулевые координаты при клике по метке.
ЧЯДНТ?
248. al_zzz 126 29.10.18 08:31 Сейчас в теме
(247) Изменил процедуру:
function getmyPlacemarkPosition(coordPosition){

    myPlacemark.events.add('click', function (e) {
    document.getElementById('CoordX').value = coordPosition[0].toPrecision(15);
    document.getElementById('CoordY').value = coordPosition[1].toPrecision(15);
 });
}

на
function getmyPlacemarkPosition(coordPosition){

    document.getElementById('CoordX').value = coordPosition[0].toPrecision(15);
    document.getElementById('CoordY').value = coordPosition[1].toPrecision(15);
  
}

и у меня стали возвращаться координаты. Но возвращаются координаты клика, а не установленной метки. Мою проблему решило бы возвращение наименования метки при клике по ней, которое я ей присваиваю при создании. Можно ли как-то это сделать?
249. Smaylukk 783 29.10.18 09:57 Сейчас в теме
(248) Добавлять код надо в то место, где создаются метки на карте. Ни в одном, ни в другом случае я этого не вижу. Процедуру инициализации карты вообще трогать не надо.
250. al_zzz 126 29.10.18 10:33 Сейчас в теме
(249) А, ну да, я добавил в то место, где создается метка. Событие по клику на метке у меня отрабатывает. Вот процедура создания метки:
function FindAdresWithoutName(Adres,Number){
	    Reset()  
		var myGeocoder = ymaps.geocode(Adres);
		myGeocoder.then(
			function (res){
			var firstGeoObject = res.geoObjects.get(0);
			if(firstGeoObject != null){
				myMap.panTo(
					// Координаты нового центра карты
					firstGeoObject.geometry.getCoordinates(), {
						/* Опции перемещения:
						   разрешить уменьшать и затем увеличивать зум
						   карты при перемещении между точками 
						*/
						flying: true
					}
				);
				
				myPlacemark = new ymaps.Placemark(firstGeoObject.geometry.getCoordinates(), {
					// Свойства
					// Текст метки
					iconContent: Number
				}, {
					// Опции
					// Иконка метки будет растягиваться под ее контент
					preset: 'islands#blueStretchyIcon'
				});
				
				myPlacemark.events.add('click', function (e) {
			//if (!noclick) {
			//	addMarker(e.get('coords')); 
		//		
		//	}else{
		//		//noclick = false;
				getmyPlacemarkPosition(e.get('coords'));
		//	}
		});

				
				myMap.geoObjects.add(myPlacemark);
			}else{
				alert("Ничего не найдено");}
			}
		);
	}
Показать

Теперь остается проблема - как мне обратиться в событии клика по метке в объекту метки, чтоб получить его имя? Пробовал так:
function getmyPlacemarkPosition(coordPosition){

    document.getElementById('CoordX').value = myPlacemark.properties.Name; 

}
хотел, чтоб мне в CoordX вернулось наименование точки, но возвращается "undefined".
252. Smaylukk 783 29.10.18 12:40 Сейчас в теме
(250) у вас в функции getmyPlacemarkPosition() не определена переменная myPlacemark. Вы туда передаете только координаты. Либо передавайте объект, либо определяйте функционал тогда, когда добавляете событие "click", т.е. не вызываете процедуру, а сразу прописываете, что в такой-то элемент поместить такое-то значение.
257. al_zzz 126 29.10.18 13:38 Сейчас в теме
(252) Я уже дошел до этого.
myPlacemark.events.add('click', function (e) {
				    document.getElementById('CoordX').value = e.get('iconContent');
				  }); 

"e.get('iconContent');" - не знаю, как тут правильно задать выражение.
240. echo77 1094 27.10.18 20:26 Сейчас в теме
(0) Настало время подправить публикацию - для Google-карты теперь требуется API-ключ
245. Smaylukk 783 28.10.18 18:56 Сейчас в теме
(240) Но перед этим его надо еще как-то получить ))
Заметил прикол - на обычных формах карта с ошибками, но отображается, а вот на УФ - пусто.
246. echo77 1094 28.10.18 18:59 Сейчас в теме
(245) Все просто. Идете сюда https://console.cloud.google.com и получаете. Пробный период год, после с привязанной карты будут списывать бабло без вашего участия
251. Malfarion 193 29.10.18 12:26 Сейчас в теме
Привет, 2GIS карта не открывается почему-то в управляемой форме, при этот а обычной открывается.
Платформа 8.3.13.1513
Хотелось узнать развивается ли проект ?
253. Smaylukk 783 29.10.18 12:44 Сейчас в теме
(251) На момент публикации в УФ с 2ГИС была проблема - сначала срабатывал клик в HTML-поле в 1С, а потом уже на самой карте. Потому я и исключил 2ГИС из набора сервисов для УФ. Проект можно сказать не развивается, т.к.:
1. Раблер-карты - закрылись
2. 2ГИС - хз что там с ними
3. Гугл - требуют Апи-ключ
4. Яндекс - молодцы

Из этого всего получается, что это не набор 2 в 1, а работа с Яндекс-картами.
254. Malfarion 193 29.10.18 13:27 Сейчас в теме
Тогда можно сказать что 0 из 3. Т.к я общался с Яндексом и они четко сказали что они запрещают использовать бесплатную версию их карты и закрытых корпоративных системах, к которым они относят 1С, и сказали что "отстеливают это и банят". Получается если нет лишних 120 т.р. в год яндекс карты использовать в 1С нельзя. Даже просто чтобы точечку нарисовать на карте.
255. Smaylukk 783 29.10.18 13:33 Сейчас в теме +2 $m
(254) Но если денюжка найдется, то в обработке есть примеры как прикрутить. Насчет легальности - я описал в начале публикации. В обработке показана возможность работы. Через некоторое время и Яндекс введет АПИ-ключ. Хотите бесплатно - OpenStreetMap.
256. Malfarion 193 29.10.18 13:36 Сейчас в теме
(255) Нет, к вам вопросов нет, спасибо за публикацию, единственная более менее актуальная по работе с картами. Просто передаю свою боль на счет того что с картами в 1С дела обстоят плохо. И реальных кейсов использования в проектах нет.
А гугл не знаете сколько за токен берет после года?
258. Smaylukk 783 29.10.18 13:41 Сейчас в теме
(256) цены тут - https://developers.google.com/maps/billing/understanding-cost-of-use?hl=ru#dynamic-maps
Также видел, что можно вроде за 200$/месяц купить абонемент на все, но там общий лимит стоит.
259. FreeArcher 87 29.10.18 15:52 Сейчас в теме
(254) Работаем с яндекс картами уже почти год, никто не забанил. А по правилам жить, так шагу не ступишь.
260. Malfarion 193 29.10.18 16:34 Сейчас в теме
(259) Дома у многих ОС пиратская стоит и софт на телефон качают в обход магазина, и игры с кряками, но есть правила, их нужно соблюдать. Если использование нарушает лицензионное соглашение то могут привлечь, другой вопрос что сейчас этим не занимаются.
261. FreeArcher 87 16.01.19 05:24 Сейчас в теме
Подскажите, а есть какая то возможность отладить скрипт в 1С? Не работает и не могу поймать ошибки.
В браузере все работает, в 1С нет.
Я подозреваю, что встроенный в 1С браузер не все функции яндекса воспринимает, но хотелось бы убедится и увидеть ошибку.
262. Smaylukk 783 16.01.19 10:29 Сейчас в теме
(261) У меня получалось только алертами - alert('message'); - отлаживать. В основном этим способом можно узнать 2 вещи:
1. Доходит ли выполнение до нужной точки (скрипт, условие);
2. Посмотреть значение переменной. Примитивные типы, конечно.
263. Smaylukk 783 14.02.19 13:35 Сейчас в теме
Обновление 13.02.2019.
[+] Добавлена возможность работы с OpenStreetMap через api OpenLayers v5. Геокдирование реализовано через сервис Nominatim. Маршрутизация реализована через сервис OSRM.
[+] Реализован алгоритм поиска и построения выпуклого многоугольника среди массива точек.
[*] Яндекс и Google требуют для корректной работы использование api-ключа. Обработка позволяет работать с этими сервисами как с ключем, так и без (но будет ограниченный функционал).
[*] Переделана обработка - теперь для каждого сервиса сделана отдельная форма для обычных и управляемых форм.
[*] Перевод работы макетов в режим совместимости IE=10.
[*] На текущий момент проверена работа всех представленных сервисов во всех режимах 1С - Толстый клиент, Тонкий клиент, Веб-клиент. Тестировалось на версии 1С 8.2.12.
[*] Работу http-геокодирования переведено на json-формат (кроме Яндекса). Оптимизирован сам процесс геокодирования - ответ читается сразу, а не сохраняется во временный. На старых версиях платформы может выдавать ошибку.

Также в обработку добавлен механизм автообновления.
264. Pawlick 9 26.02.19 09:21 Сейчас в теме
Несколько вопросов:

1) Не очень понял как точки на карте ставить (Яндекс например). Мышью не получилось... Может из за отсутствия ключа?

2) Яндекс: поле ввода адреса на самой карте не работает:
при чем событие аналогичное "АвтоПодбоТекста в 1С" работает: в процессе написания адреса под полем появляется список выбора похожих адресов. Но "ПриИзменении" ошибка - "Сервер не смог обработать запрос";

3) Гугл совсем не открылись, требуют ключ: При открытии формы гугловская ошибка "При загрузке Google Карт на этой странице возникла проблема."
Ссылка при переходе:
https://developers.google.com/maps/documentation/javascript/error-messages?utm_source=maps_js&utm_medium=degraded&utm_campaign=billing#api-key-and-billing-errors


Но больше всего интересует вопрос №1
266. Smaylukk 783 27.02.19 15:31 Сейчас в теме
(264)1 - Во всех картах метка ставится двойным щелчком мышки. Даблклик.
2 - Внутренний геокодер без апи-ключа в яндексе не работает. http-геокодер - еще работает.
3 - Гугл жестко порезал функциональность без апи-ключа. То сообщение как раз свидетельствует о том, что карта загружена без ключа. Но вы можете его себе сгенерировать. Последовательность действий уже не подскажу. Но на сгенерированный ключ надо будет открыть себе еще сервисы. Для комфортной работы необходимо: Maps Javascript API, Geocoding API, Directions API. У Гугла была акция - при оформлении тестовой подписки дарил 300$ на год. Как сейчас - не знаю.
Прикрепленные файлы:
265. nano1c 136 27.02.19 15:05 Сейчас в теме
Кстати, да: скачал но гугл не работает - ошибка на странице, что делать?
267. Smaylukk 783 27.02.19 15:32 Сейчас в теме
(265) Если вы про ошибку при открытии карты Гугл без ключа - то смотрите в (266). Если что-то другое - пришлите скриншот, наверное
268. nano1c 136 27.02.19 20:43 Сейчас в теме
(267) в общем решил отказаться от гугла - ключ получал, и использовал чужой - все равно ошибка, при этом, ни один из скачанных примеров не заработал - какойто набор глюков этот гугл. перехожу назад на яндекс, в связи с чем вопрос: зачем у вас текст сохраняется в файл и потом команда .перейти(файл)? У меня когдато использовалось .установитьтекст() - попробовал - возникает ошибка, в чем тут дело?
269. Smaylukk 783 27.02.19 20:52 Сейчас в теме
(268) Кроме получения ключа надо еще сервисы (в библиотеке) включить. Да, геморно, но если настроить - все работает.
Про Перейти() - если про обычные формы, то я всегда так делал и не заморачивался.
270. nano1c 136 28.02.19 17:50 Сейчас в теме
а как сделать чтобы яндекс карты были с доступным масштабированием и перемещением мышью? очень нужно смотреть не только москву но и всю россию
271. Smaylukk 783 28.02.19 17:57 Сейчас в теме
(270) По-умолчанию это доступно. Только что проверил. Не зная, что у вас, подсказать не могу.
272. nano1c 136 28.02.19 18:32 Сейчас в теме
(271) в вашем же примере оно не доступно, причем в коде жс особо то и нет регуляторов. Еще проблемка: я перенес в свою обработку логистики ваш код, и загрузку текста делаю при открытии формы, но жс то работает асинхронно и нельзя вызвать метод не дождавшись окончания отрисовки инициализации и происходит вот что: человек кликает на вкладку "Адреса" и видит как рисуется пустая карта, адреса прорисовать сразу не получается ибо пишет ошибку жс, по счатью это можно обойти запуская методы отрисовки точек через некую паузу после переключения на вкладку карты, но все же хотелось бы как-то покрасивей решение найти - может жс модифицировать чтобы отрисовка запускалась после инициализации?
274. Smaylukk 783 28.02.19 18:44 Сейчас в теме
(272) Поищите в песочнице пример, возможно есть возможность указание callback-функции после инициализации карты, чтобы запустить рисование адреса. Я запускал свой пример - все работает.
273. nano1c 136 28.02.19 18:39 Сейчас в теме
(271) оказалось что доступно в режиме IE8 а в IE10 - нет
275. Smaylukk 783 28.02.19 18:45 Сейчас в теме
(273) Зависит от версии установленного IE, от настроек самого IE.
276. FreeArcher 87 28.02.19 19:05 Сейчас в теме
Для борьбы с осинхронностью я пришел к следующему:
1. Весь код перенес в JS в макет. Так же разместил какие нужно кнопки с действиями там же, а не из 1С.
2. Чтобы забрать данные с карты из полей, я сделал обработку ожидания, которая переодически раз в секунду читает данные с карты. В итоге для пользователя все комфортно получилось.
277. frkbvfnjh 558 07.03.19 13:24 Сейчас в теме
В обычных формах карта Яндекс не двигается мышью и вообще все элементы ни как не реагируют на курсор мыши. Увеличение/уменьшение масштаба карты только скролем. Платформа 8.3.10.2650. Проверено на разных компах на Windows 10 и Windows 7.
279. Smaylukk 783 07.03.19 13:48 Сейчас в теме
(277) У меня работает. Возможно что-то с IE. Только что проверил на 8.3.10.2580. Поиграйтесь либо настроками IE, либо версией IE в макете МакетЯндекс.
Прикрепленные файлы:
281. frkbvfnjh 558 07.03.19 13:59 Сейчас в теме
292. FreeArcher 87 07.05.19 11:59 Сейчас в теме
(279) Проблема только на платформе 8.3.14
278. frkbvfnjh 558 07.03.19 13:31 Сейчас в теме
В обычных формах карта 2GIS не открывается, Выходит ошибка:

{ВнешняяОбработка.РаботаСКартами.Форма.Форма2ГИС.Форма(369,13)}: Переменная не определена (СтруктураПоставщиковКарт)
Поставщик = <<?>>СтруктураПоставщиковКарт.Получить(ЭтотОбъект.ТипКарты);

Платформа 8.3.10.2650. Проверено на разных компах на Windows 10 и Windows 7.
280. Smaylukk 783 07.03.19 13:50 Сейчас в теме
(278) Да, есть такое. Не дотестировал. Если вам критично - могу обновить файл.
282. frkbvfnjh 558 07.03.19 14:00 Сейчас в теме
(280) Можете в личку или на почту, что бы заново не качать?
283. Al-77 65 18.03.19 22:32 Сейчас в теме
Добрый вечер, кто победил на новой платформе 8.3.14 Яндекс карты не двигаются перетаскиванием мыши?
284. FreeArcher 87 21.03.19 05:16 Сейчас в теме
(283) Да появилась такая беда.
285. Smaylukk 783 21.03.19 11:49 Сейчас в теме
(283) (284) Скорее всего какая-то проблема с движком Webkit. Потому как даже карта загружается на разных версиях платформы по-разному.
287. Al-77 65 07.05.19 10:01 Сейчас в теме
(283) Еще раз спрошу, у кого получилось решить проблему?
288. FreeArcher 87 07.05.19 10:30 Сейчас в теме
(287) Писал в 1C дали ответ
Это ошибка 20172990, на исправлении
291. Al-77 65 07.05.19 11:24 Сейчас в теме
290. Smaylukk 783 07.05.19 10:58 Сейчас в теме
(287) Можно откатиться на раннюю версию платформы или ждать исправления.
286. AnPet 19.04.19 14:23 Сейчас в теме
Помогите, пожалуйста, разобраться.
Примитивный пример, взятый с сайта 2gis: http://api.2gis.ru/doc/maps/ru/examples/base

1С:Предприятие 8.3 (8.3.10.2299)
Бухгалтерия предприятия, редакция 2.0 (2.0.66.12)

Использую в обработке - Поле HTML документа
Если вывожу пример google, он отображается.
Пытаюсь выводит пример 2gis, окно HTML остается пустым.
Вот пример выводимого html:

КодХТМЛ_2GIS = "<!DO CTYPE html>
|<ht ml>
|
|
|    <head>
|	  <met a http-equiv='X-UA-Compatible' content='IE=11'/>
|     <title>API карт 2ГИС</title>
|     <sc ript src=""https://maps.api.2gis.ru/2.0/loader.js""></sc ript>
|    </head>
|
|    <body>
|        <div id=""map"" style=""width:200px; height:200px""></div>
|
|        <sc ript>
|            DG.then(function() {
|                DG.map('map', {
|                    center: [54.98, 82.89],
|                    zoom: 8
|                });
|            });
|        </sc ript>
|
|    </body>
|</html>";

ЭлементыФормы.Карта.УстановитьТекст(КодХТМЛ_2GIS);
Показать
289. Smaylukk 783 07.05.19 10:57 Сейчас в теме
(286) Попробуйте текст макета сохранить в файл и использовать метод Перейти(ПутьКФайлу) у ПоляХТМЛДокумента.
322. Merkalov 2 04.09.19 04:25 Сейчас в теме
(289)
Это не помогает. Возможно это связано с тем, что браузера у 1С нет и в поле HTML документ на самом деле используется Internet explorer, в котором, при открытии выше указанного файла с расширением html, не сразу открывается карта, а сначала пользователя спрашивают о том запустить ли Ative X компоненту и после нажатия на кнопку "Принять" открывается карта, в поле HTML документа такого сообщения просто не видно и сразу выскакивает "ошибка сценария".
323. Merkalov 2 04.09.19 08:23 Сейчас в теме
(322)
Хотя нет, по умолчанию 1С использует IE 7, добавив ключ в реестр можно переключить на любой другой IE, в общем запустилось всё.
293. COMPER 322 22.05.19 08:59 Сейчас в теме
Не работает на УТ10.
Уже говорили об этой ошибке:
"Значение не является значением объектного типа (value)
Элементы.Эксплорер.document.getElementById("WebClientOperation").value"
294. Smaylukk 783 22.05.19 09:17 Сейчас в теме
(293) Сама конфигурация ничего не дает. Нужна версия платформы, в какой форме и на какой строке ошибка.
295. COMPER 322 22.05.19 09:33 Сейчас в теме
(294) платформа 8.3.10.2299
при открытии, после "ИнициализироватьКарту" делаю "ПоискАдреса(Адрес);".
может чтото еще нужно?
296. Smaylukk 783 22.05.19 09:42 Сейчас в теме
(295) Возможно карта не успела загрузиться и этих элементов в тот момент HTML-объекте нет. Отключите поиск адреса при открытии и проверьте.
297. COMPER 322 22.05.19 10:07 Сейчас в теме
(296) нужно именно при открытии. Ставил паузу 20 сек, но ошибка та же.
298. Smaylukk 783 22.05.19 10:37 Сейчас в теме
(297) Есть еще событие у поля "ДокументСформирован" или как-то похоже.
299. COMPER 322 22.05.19 10:55 Сейчас в теме
(298) ошибка та же. "Значение не является значением объектного типа (value)"
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Программист 1С
Краснодар
зарплата от 80 000 руб. до 160 000 руб.
Полный день

Консультант 1 С
Краснодар
зарплата от 50 000 руб. до 150 000 руб.
Полный день

Консультант-методолог 1С
Краснодар
зарплата от 110 000 руб.
Полный день