Каталог решений - Интеграция 1С и 2ГИС

Интеграция 1С и 2ГИС

Интеграция 1С и 2ГИС

В наличии

Создана обработка, позволяющая интегрировать карту 2ГИС и вывести маркеры на карте (по широте и долготе). Можно внедрить данную обработку в любую конфигурацию. Будет полезна для транспортных, логистических компаний.

Категория:

Описание

Создаем пустую конфигурацию. Добавляем справочник "Позиции". В данном справочнике создаем реквизиты "Широта", "Долгота" с типом строка.

В текущей конфигурации создаем обработку "Карта2ГИС" и добавляем реквизит с типом строка неограниченной длины "Карта". 

Создаем форму обработки и размещаем реквизит "Карта" и указываем вид "Поле HTML документа".

Далее добавляем команду "Показать" и пишем код:

&НаКлиенте
Процедура Показать(Команда)
    ПоказатьНаСервере();
КонецПроцедуры

 

&НаСервере
Процедура ПоказатьНаСервере()
    Объект.Карта = 
    "<!DOCTYPE html>
    |<html>
    |    <head>
    |        <title>Map creation</title>
    |        <script src=""https://maps.api.2gis.ru/2.0/loader.js""></script>
    |    </head>
    |    <body>
    |        <div id=""map"" style=""width: 100%; height: 700px;""></div>
    |        <script>
    |        DG.then(function() {
    |           var map = DG.map('map', {
    |           center: [54.98, 82.89],
    |           zoom: 14
    |        });    
    //|       DG.marker([54.98, 82.89]).addTo(map);    
    |        "+Маркеры()+"
    |        });
    |        </script>
    |    </body>
    |</html>";
КонецПроцедуры

Затем добавляем функцию "Маркеры()" . Эта функция получает данные из справочника "Позиции" и  возвращает текст с широтой и долготой элемента справочника. Дополнительно в текст записывается наименование элемента справочника.

&НаСервере
Функция Маркеры()
	ПозицииТекст = ""; 	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Позиции.Наименование КАК Наименование,
		|	Позиции.Широта КАК Широта,
		|	Позиции.Долгота КАК Долгота
		|ИЗ
		|	Справочник.Позиции КАК Позиции
		|ГДЕ
		|	Позиции.ПометкаУдаления = ЛОЖЬ";
	
	РезультатЗапроса = Запрос.Выполнить();	
	Выборка = РезультатЗапроса.Выбрать(); 	
	Пока Выборка.Следующий() Цикл
		//Без наименования
		//ПозицииТекст = ПозицииТекст + "DG.marker(["+Выборка.Широта+","+Выборка.Долгота+"]).addTo(map);";
		
		//С наименованием
		//ПозицииТекст = ПозицииТекст + "DG.marker(["+Выборка.Широта+","+Выборка.Долгота+"]).addTo(map).bindPopup('"+Выборка.Наименование+"');";		
		
		//С подсказкой
		ПозицииТекст = ПозицииТекст + "DG.marker(["+Выборка.Широта+","+Выборка.Долгота+"]).addTo(map).bindLabel('"+Выборка.Наименование+"');";
	КонецЦикла;                       	                                  
	Возврат ПозицииТекст;
КонецФункции

 

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

Для того, чтобы внедрить данную обработку в любую конфигурацию, необходимо загрузить файл dt в новую информационную базу. Далее сохранить файл конфигурации cf и сравнением и объединением добавить в вашу конфигурацию Справочник и Обработку.

Программный код тестировался на платформе 1С версии 1С:Предприятие 8.3 (8.3.24.1368).

has been added to your cart:
Оформление заказа