Восстановить свой документ из HTML и получить HTML с вложениями

Учебные задачи

Серверный пример использует только собственную маленькую HTML-памятку без скриптов, внешних URL и изображений.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Отдельная учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт.

  2. Документ создаётся заново в памяти при каждом запуске. Существующие реквизиты, файлы и документы конфигурации не меняются.

  3. Сообщения показывают контрольные проверки. Для визуального просмотра оформления используйте отдельную задачу с полным модулем учебной формы.

  4. УстановитьHTML доступен на сервере/во внешнем соединении, не в клиентском обработчике формы.

ИсходныйHTML = "<p><b>Книга</b>: 3 шт.</p><p>Сумма: 750 руб.</p>";
Вложения = Новый Структура;
Документ = Новый ФорматированныйДокумент;
Документ.УстановитьHTML(ИсходныйHTML, Вложения);
Сообщить(СтрНайти(Документ.ПолучитьТекст(), "Книга") > 0);
Сообщить(СтрНайти(Документ.ПолучитьТекст(), "750 руб.") > 0);
ПолученныйHTML = "";
ПолученныеВложения = Новый Структура;
Документ.ПолучитьHTML(ПолученныйHTML, ПолученныеВложения);
Сообщить(СтрДлина(ПолученныйHTML) > 0);
Сообщить(ПолученныеВложения.Количество() = 0);
Копия = Новый ФорматированныйДокумент;
Копия.УстановитьHTML(ПолученныйHTML, ПолученныеВложения);
Сообщить(СтрНайти(Копия.ПолучитьТекст(), "Книга") > 0);
Сообщить(СтрНайти(Копия.ПолучитьТекст(), "750 руб.") > 0);

Разбор по шагам

  1. Передаём своё известное HTML и пустую структуру вложений в серверный УстановитьHTML.

  2. ПолучитьТекст используется для смысловой проверки наличия названия/суммы.

  3. ПолучитьHTML — процедура с ДВУМЯ выходными параметрами. Не присваивайте её вызов как будто это функция, возвращающая строку.

  4. Вложения содержат встроенные картинки. Здесь их нет, поэтому структура пуста.

  5. Восстанавливаем копию из полученных HTML-компонентов и снова проверяем смысловое содержимое.

Как проверить результат

  1. Все шесть сравнений Истина; текст исходного документа и копии содержит Книга и 750 руб.

  2. Вложений ноль; нет обращения к чужим изображениям и сети.

Ожидаемый результат

Показан серверный путь HTML → документ → HTML-компоненты → новый документ.

На что обратить внимание

  1. Платформа может нормализовать HTML. Не требуйте побайтового совпадения полученной строки с исходной.

  2. УстановитьHTML не заявлен как универсальная очистка опасного HTML. Недоверенный HTML здесь не принимается.

  3. Не переносите серверный УстановитьHTML на клиент из-за того, что некоторые другие методы документа доступны в обоих контекстах.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.