Формат картинки SVG.
Полное описание, параметры и ограничения
ФорматКартинки.SVG (PictureFormat.SVG)
ФорматКартинки (PictureFormat)
SVG (SVG)
Доступен, начиная с версии 8.3.9.
Описание:
Формат картинки SVG.
Использование в версии:
Доступен, начиная с версии 8.3.9.
Методическая информация
Практические примеры
Добавить собственный знак готовности и передать его как вложение HTML
Маленький SVG-знак создаётся из явно приведённого текста, без скачивания. Документ получает абсолютную картинку, а HTML-компоненты — её вложение.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Отдельная учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт.
Документ создаётся заново в памяти при каждом запуске. Существующие реквизиты, файлы и документы конфигурации не меняются.
Сообщения показывают контрольные проверки. Для визуального просмотра оформления используйте отдельную задачу с полным модулем учебной формы.
Добавление картинки и УстановитьHTML выполняются на сервере. Не переносите этот фрагмент в клиентский обработчик.
Для визуального просмотра поместите фрагмент перед Возврат Документ в серверной функции СоздатьУчебнуюПамятку полного модуля задачи с формой. Он создаст отдельный документ вместо прежней памятки.
SVG = "<svg xmlns=""http://www.w3.org/2000/svg"" width=""32"" height=""32"" viewBox=""0 0 32 32""><rect width=""32"" height=""32"" rx=""6"" fill=""#146e32""/><path d=""M8 16l5 5 11-12"" fill=""none"" stroke=""white"" stroke-width=""3""/></svg>";
ДанныеЗнака = ПолучитьДвоичныеДанныеИзСтроки(SVG, КодировкаТекста.UTF8, Ложь);
КартинкаЗнака = Новый Картинка(ДанныеЗнака);
Сообщить(КартинкаЗнака.Формат() = ФорматКартинки.SVG);
Документ = Новый ФорматированныйДокумент;
Текст = Документ.Добавить("Готово: ");
Знак = Документ.Добавить(КартинкаЗнака, Тип("КартинкаФорматированногоДокумента"));
Знак.Ширина = 32;
Знак.Высота = 32;
Знак.НавигационнаяСсылка = "";
Сообщить(Знак.Ширина = 32 И Знак.Высота = 32);
Сообщить(ТипЗнч(Знак.Картинка) = Тип("Картинка"));
Сообщить(Знак.Родитель = Текст.Родитель);
Сообщить(Знак.НавигационнаяСсылка = "");
Сообщить(Документ.ПолучитьПозициюПоЗакладке(Знак.ЗакладкаКонца) > Документ.ПолучитьПозициюПоЗакладке(Знак.ЗакладкаНачала));
HTML = "";
Вложения = Новый Структура;
Документ.ПолучитьHTML(HTML, Вложения);
Сообщить(Вложения.Количество() = 1);
Копия = Новый ФорматированныйДокумент;
Копия.УстановитьHTML(HTML, Вложения);
Сообщить(СтрНайти(Копия.ПолучитьТекст(), "Готово:") > 0);Разбор по шагам
SVG содержит только собственные фигуры rect/path и встроенные цвета, без скриптов и внешних ссылок.
Конструктор Картинка из ДвоичныеДанные создаёт абсолютную картинку. Вставка картинок в форматированный документ доступна на сервере.
Добавить возвращает КартинкаФорматированногоДокумента. Это отдельный элемент, не сам исходный объект Картинка.
Устанавливаем размер и пустую навигационную ссылку; через Родитель и закладки изучаем положение элемента рядом с текстом.
ПолучитьHTML формирует HTML и структуру вложений. Абсолютная встроенная картинка требует передачи вложения вместе с HTML.
УстановитьHTML восстанавливает копию из обоих компонентов, а не только из строки с потерянными картинками.
Как проверить результат
Все восемь сообщений Истина; вложений ровно одно, текст Готово: сохранён.
При просмотре в подготовленной форме виден собственный зелёный знак готовности; проверьте его отображение отдельно в вашем клиенте.
Ожидаемый результат
Картинка встроена в собственный документ, показана её связь с параграфом и HTML-вложением.
На что обратить внимание
Числа 32 задают размеры элемента. В этом уроке не смешиваем их с поинтами отступа параграфа.
Наличие текста в копии не является пиксельной проверкой картинки — для неё есть визуальный контроль в учебной форме.
Нельзя подставлять неизвестный SVG/HTML извне, считая этот пример проверкой безопасности содержимого.
Картинка задана данными, не внешним URL; сеть для её получения не нужна.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.