Создаем пустую конфигурацию. Добавляем справочник "Позиции". В данном справочнике создаем реквизиты "Широта", "Долгота" с типом строка.
В текущей конфигурации создаем обработку "Карта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).
Вступайте в нашу телеграмм-группу Инфостарт