Топологический объект, отображаемый на географической схеме точкой.
Полное описание, параметры и ограничения
ТочечныйОбъектГеографическойСхемы (GeographicalSchemaObjectPoint)
ТочечныйОбъектГеографическойСхемы (GeographicalSchemaObjectPoint)
Доступен, начиная с версии 8.1.
Свойства:
Видимость (Visible)
Значение (Value)
Картинка (Picture)
Координаты (Coordinates)
Маркер (Marker)
ОграничивающийПрямоугольник (BoundaryBox)
ОтображатьДанные (ShowData)
Подсказка (ToolTip)
ПоложениеОпорнойТочки (ReaperPointPosition)
Расшифровка (Details)
Символ (Char)
Слой (Layer)
ТипОтрисовки (ShowMode)
Цвет (Color)
ШрифтСимвола (CharacterFont)
Описание:
Топологический объект, отображаемый на географической схеме точкой.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Сохранить схему в память и прочитать независимый документ
Записываем только новую собственную геометрию в поток, возвращаем позицию к началу и читаем во второй документ; файлы не используются.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Собственная учебная база 8.5.1.1343, толстый клиент Windows. ГеографическаяСхема из этого урока недоступна в тонком/веб-клиенте: не вставляйте код в тонкий клиент.
Создайте отдельную внешнюю обработку с управляемой формой, командой Выполнить и кнопкой этой команды. Вставьте весь код одного урока в модуль формы; назначьте команде обработчик Выполнить.
Каждый запуск создаёт новую схему в локальной переменной. Реквизиты карты и макеты не нужны; готовые карты, SHP, GPS и сервисы карт не загружаются.
Точки и зоны вымышленные учебные объекты. Координаты заданы в градусах, высота в метрах; это не местоположение пользователей или реальных заказов.
На схеме нет подложки с границами стран/дорогами. Это собственная геометрия, а не полноценный навигатор. Показать открывает отдельное окно схемы.
Запускайте уроки по одному. Статические проверки сверяют API установленной справки, но отрисовка и геометрические операции в 1С пока не проверены запуском.
&НаКлиенте
Процедура Выполнить(Команда)
Схема = Новый ГеографическаяСхема;
Схема.Обновление = Ложь;
Схема.Проекция = ТипПроекцииГеографическойСхемы.ЦилиндрическаяРавноудаленнаяПроекция;
Схема.СмещениеШироты = 0;
Схема.СмещениеДолготы = 0;
Пункты = Схема.Слои.Добавить("УчебныеПункты", Тип("ТочечныйОбъектГеографическойСхемы"));
Пункты.Текст = "Учебные пункты";
Пункты.Видимость = Истина;
Пункты.РазрешитьВыбор = Истина;
ПунктА = Пункты.Объекты.Добавить();
ПунктА.Значение = "guide-point-A";
ПунктА.Координаты = Новый ГеографическиеКоординаты(55, 37, 100);
ПунктА.Видимость = Истина;
ПунктА.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
ПунктА.Маркер = ТипМаркераГеографическойСхемы.БольшойКруг;
ПунктА.Цвет = Новый Цвет(25, 95, 180);
ПунктА.ОтображатьДанные = Ложь;
ПунктА.Подсказка = "Вымышленный пункт А; только учебные данные";
ПунктА.Расшифровка = Новый Структура("УчебныйКод", "guide-point-A");
ПунктБ = Пункты.Объекты.Добавить();
ПунктБ.Значение = "guide-point-B";
ПунктБ.Координаты = Новый ГеографическиеКоординаты(55.1, 37.2, 110);
ПунктБ.Видимость = Истина;
ПунктБ.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
ПунктБ.Маркер = ТипМаркераГеографическойСхемы.БольшойТреугольник;
ПунктБ.Цвет = Новый Цвет(35, 145, 75);
Поток = Новый ПотокВПамяти;
ОшибкаОперации = "";
Попытка
Схема.Записать(Поток);
Сообщить(Поток.Размер() > 0);
Поток.Перейти(0, ПозицияВПотоке.Начало);
Копия = Новый ГеографическаяСхема;
Копия.Прочитать(Поток);
Сообщить(Копия.Слои.Количество() = 1);
КопияПунктов = Копия.Слои.Найти("Учебные пункты");
Если КопияПунктов = Неопределено Тогда
ВызватьИсключение "После чтения не найден собственный учебный слой";
КонецЕсли;
Сообщить(КопияПунктов.Объекты.Количество() = 2);
Сообщить(КопияПунктов.НайтиПоЗначению("guide-point-A").Координаты.Широта = 55);
Копия.Очистить();
Сообщить(Копия.Слои.Количество() = 0);
Сообщить(Схема.Слои.Количество() = 1);
Сообщить(Пункты.Объекты.Количество() = 2);
Копия.Вывести(Схема);
Сообщить(Копия.Слои.Количество());
Копия.Показать("Учебная копия после Вывести");
ВременнаяСхема = Новый ГеографическаяСхема;
ВременныйСлой = ВременнаяСхема.Слои.Добавить("УчебныйВременный", Тип("ТочечныйОбъектГеографическойСхемы"));
ВременныйСлой.Объекты.Добавить();
ВременныйСлой.Объекты.Очистить();
Сообщить(ВременныйСлой.Объекты.Количество() = 0);
ВременнаяСхема.Слои.Очистить();
Сообщить(ВременнаяСхема.Слои.Количество() = 0);
Исключение
ОшибкаОперации = ОписаниеОшибки();
КонецПопытки;
ОшибкаЗакрытия = "";
Попытка
Поток.Закрыть();
Исключение
ОшибкаЗакрытия = ОписаниеОшибки();
КонецПопытки;
Если Не ПустаяСтрока(ОшибкаОперации) Или Не ПустаяСтрока(ОшибкаЗакрытия) Тогда
ВызватьИсключение СтрШаблон("Операция: %1; закрытие собственного потока: %2", ОшибкаОперации, ОшибкаЗакрытия);
КонецЕсли;
Схема.Обновление = Истина;
Схема.Показать("Собственная учебная схема — guide-owned-geo");
КонецПроцедурыРазбор по шагам
ПотокВПамяти создан самим уроком. Записать выбирает перегрузку для потока, не трактует строку как путь к файлу.
После записи позиция находится после данных; Перейти(0, Начало) обязателен до Прочитать.
Второй документ получает сериализованное содержимое. Проверяем собственные ключи/координаты, затем очищаем только этот документ и убеждаемся, что исходный остался.
Вывести передаёт собственную исходную схему в новый пустой документ. Число слоёв после этой операции выводится диагностически; не подменяем эту операцию оператором присваивания.
Очистить объектов и слоёв отдельно демонстрируется на третьей временной схеме; рабочей карты среди аргументов нет.
Закрытие потока предпринимается и после ошибки операции. Ошибка закрытия не проглатывается; две причины сохраняются отдельно. Сеть и файловая система не используются.
Как проверить результат
Девять булевых проверок ожидаются Истина; дополнительное число — фактическое количество слоёв после Вывести.
Исходные два пункта не исчезли после Очистить копии. В конце собственный поток закрывается, в случае сбоя показано исключение.
Ожидаемый результат
Показан полноценный обмен географическим документом через память с независимым чтением и очисткой.
На что обратить внимание
Чтение с текущей конечной позиции потока не заменяет переход к нулю.
Не загружать произвольный недоверенный поток без ограничения размера: здесь источник только собственная маленькая схема.
Записать схемы в память не означает сохранение карты на диске.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Отобразить несколько учебных адресов одним многоточечным объектом
Один объект хранит две координаты и единый ключ; пример показывает разницу между количеством объектов и количеством точек.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Собственная учебная база 8.5.1.1343, толстый клиент Windows. ГеографическаяСхема из этого урока недоступна в тонком/веб-клиенте: не вставляйте код в тонкий клиент.
Создайте отдельную внешнюю обработку с управляемой формой, командой Выполнить и кнопкой этой команды. Вставьте весь код одного урока в модуль формы; назначьте команде обработчик Выполнить.
Каждый запуск создаёт новую схему в локальной переменной. Реквизиты карты и макеты не нужны; готовые карты, SHP, GPS и сервисы карт не загружаются.
Точки и зоны вымышленные учебные объекты. Координаты заданы в градусах, высота в метрах; это не местоположение пользователей или реальных заказов.
На схеме нет подложки с границами стран/дорогами. Это собственная геометрия, а не полноценный навигатор. Показать открывает отдельное окно схемы.
Запускайте уроки по одному. Статические проверки сверяют API установленной справки, но отрисовка и геометрические операции в 1С пока не проверены запуском.
&НаКлиенте
Процедура Выполнить(Команда)
Схема = Новый ГеографическаяСхема;
Схема.Обновление = Ложь;
Схема.Проекция = ТипПроекцииГеографическойСхемы.ЦилиндрическаяРавноудаленнаяПроекция;
Схема.СмещениеШироты = 0;
Схема.СмещениеДолготы = 0;
Пункты = Схема.Слои.Добавить("УчебныеПункты", Тип("ТочечныйОбъектГеографическойСхемы"));
Пункты.Текст = "Учебные пункты";
Пункты.Видимость = Истина;
Пункты.РазрешитьВыбор = Истина;
ПунктА = Пункты.Объекты.Добавить();
ПунктА.Значение = "guide-point-A";
ПунктА.Координаты = Новый ГеографическиеКоординаты(55, 37, 100);
ПунктА.Видимость = Истина;
ПунктА.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
ПунктА.Маркер = ТипМаркераГеографическойСхемы.БольшойКруг;
ПунктА.Цвет = Новый Цвет(25, 95, 180);
ПунктА.ОтображатьДанные = Ложь;
ПунктА.Подсказка = "Вымышленный пункт А; только учебные данные";
ПунктА.Расшифровка = Новый Структура("УчебныйКод", "guide-point-A");
ПунктБ = Пункты.Объекты.Добавить();
ПунктБ.Значение = "guide-point-B";
ПунктБ.Координаты = Новый ГеографическиеКоординаты(55.1, 37.2, 110);
ПунктБ.Видимость = Истина;
ПунктБ.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
ПунктБ.Маркер = ТипМаркераГеографическойСхемы.БольшойТреугольник;
ПунктБ.Цвет = Новый Цвет(35, 145, 75);
Группы = Схема.Слои.Добавить("УчебныеГруппы", Тип("МноготочечныйОбъектГеографическойСхемы"));
Группы.Текст = "Вымышленные точки одной группы";
Группа = Группы.Объекты.Добавить();
Группа.Значение = "guide-group-001";
Группа.Видимость = Истина;
Группа.ОтображатьДанные = Ложь;
Группа.Подсказка = "Один объект с двумя координатами";
Группа.Расшифровка = "guide-group-001";
Группа.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Символ;
Группа.Символ = "G";
Группа.ШрифтСимвола = Новый Шрифт("Arial", 12);
Группа.Цвет = Новый Цвет(165, 60, 145);
Группа.ПоложениеОпорнойТочки = ПоложениеОпорнойТочкиОтрисовки.Центр;
Группа.Маркер = ТипМаркераГеографическойСхемы.МаленькийКвадрат;
Группа.Точки.Добавить(Новый ГеографическиеКоординаты(55.03, 37.04));
Группа.Точки.Добавить(Новый ГеографическиеКоординаты(55.08, 37.15));
Сообщить(Группы.Объекты.Количество() = 1);
Сообщить(Группа.Точки.Количество() = 2);
Сообщить(Группа.Точки.Индекс(Группа.Точки.Получить(0)) = 0);
Группа.Точки.Сдвинуть(0, 1);
Сообщить(Группа.Точки.Получить(0).Широта = 55.08);
Группа.Точки.Сдвинуть(1, -1);
Группа.Точки.Добавить(Новый ГеографическиеКоординаты(55.09, 37.19));
Группа.Точки.Удалить(Группа.Точки.Получить(2));
Сообщить(Группа.Точки.Количество() = 2);
Сообщить(Группа.Слой = Группы);
Сообщить(ТипЗнч(Группа.ОграничивающийПрямоугольник) = Тип("ПрямоугольникГеографическойСхемы"));
ВременнаяГруппа = Группы.Объекты.Добавить();
ВременнаяГруппа.Точки.Добавить(Новый ГеографическиеКоординаты(55, 37));
ВременнаяГруппа.Точки.Очистить();
Группы.Объекты.Удалить(ВременнаяГруппа);
ПунктА.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Символ;
ПунктА.Символ = "A";
ПунктА.ШрифтСимвола = Новый Шрифт("Arial", 12);
ПунктА.ПоложениеОпорнойТочки = ПоложениеОпорнойТочкиОтрисовки.Центр;
Схема.Обновление = Истина;
Схема.Показать("Собственная учебная схема — guide-owned-geo");
КонецПроцедурыРазбор по шагам
Новый слой имеет тип МноготочечныйОбъектГеографическойСхемы. Один объект может содержать несколько координат; у него общий идентификатор и оформление.
Коллекция Точки добавляет ГеографическиеКоординаты, а не строковые адреса. Геокодирования нет.
ТипОтрисовки Символ использует Символ и ШрифтСимвола. Маркер заранее настроен для возможного переключения, но в режиме Символ не выдаётся за активный стиль.
Сдвиг и удаление выполняются на собственных координатах. Для Очистить создана отдельная временная группа, удалённая до показа.
ПоложениеОпорнойТочки задаёт опору отрисовки картинки; пример сохраняет настройку, но не обещает видимый эффект в режиме Символ.
Пункт А также показан буквой A, чтобы визуально отличить его от общего символа G группы.
Как проверить результат
Семь проверок ожидаются Истина; группа содержит две координаты, но слой содержит один объект.
На собственном толстом клиенте должны быть две буквы G и пункт A. Позиция/шрифт требуют фактической визуальной проверки.
Ожидаемый результат
Различаются топологический объект и его отдельные координаты; показаны коллекции и символы без внешних данных.
На что обратить внимание
Если каждому адресу нужны разные данные/стиль, создавайте отдельные точечные объекты, не одну многоточечную группу.
Удалить принимает объект координаты. Номер 2 в Получить — индекс, а не сама координата.
Настройка Маркер не меняет режим Символ автоматически.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.