Устанавливает значение параметра.
Синтаксис
УстановитьПараметр(<Имя>, <Значение>)Полное описание, параметры и ограничения
КонфигурацияДокументаDOM.УстановитьПараметр (DOMDocumentConfiguration.SetParameter)
КонфигурацияДокументаDOM (DOMDocumentConfiguration)
УстановитьПараметр (SetParameter)
Доступен, начиная с версии 8.1.
Синтаксис:
УстановитьПараметр(<Имя>, <Значение>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя параметра.
<Значение> (обязательный)
Тип: Произвольный.
Значение параметра.
Описание:
Устанавливает значение параметра.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Причины вызова исключений:
указанный квалифицированный параметр не определен в данной конфигурации;
параметр с указанным именем определен в данной конфигурации, но не может быть изменен;
тип устанавливаемого значения параметра отличается от ожидаемого.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Склеить соседний XML-текст и отдельно управлять комментариями
Нормализация объединяет соседние текстовые узлы. Дополнительное удаление комментариев зависит от поддержки параметра comments; обе ветки результата объяснены.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Документы и все узлы создаются в памяти на сервере. Внешние XML, DTD, сетевые схемы и файлы не загружаются.
Сначала оставьте учебные имена и значения неизменёнными. После контрольного запуска меняйте по одному условию.
Преобразования выполняются только над собственным XML в памяти. Примеры не читают файлы, внешние DTD, URL или данные информационной базы.
У методов DOM возвращаемый узел сохраняйте в переменную: исходная ссылка и результат операции не всегда обозначают один объект.
Документ = Новый ДокументDOM("", "product");
Корень = Документ.ЭлементДокумента;
Корень.ДобавитьДочерний(Документ.СоздатьТекстовыйУзел("Кни"));
Корень.ДобавитьДочерний(Документ.СоздатьТекстовыйУзел(""));
Корень.ДобавитьДочерний(Документ.СоздатьТекстовыйУзел("га"));
Корень.ДобавитьДочерний(Документ.СоздатьКомментарий("Учебная заметка"));
Сообщить(Корень.ДочерниеУзлы.Количество() = 4);
Настройки = Документ.КонфигурацияDOM;
Имена = Настройки.ИменаПараметров;
Для Индекс = 0 По Имена.Количество() - 1 Цикл
Сообщить("Параметр документа: " + Имена.Элемент(Индекс));
КонецЦикла;
УдалятьКомментарии = Имена.Содержит("comments") И Настройки.ВозможноУстановитьПараметр("comments", Ложь);
Если УдалятьКомментарии Тогда
Прежнее = Настройки.ПолучитьПараметр("comments");
Настройки.УстановитьПараметр("comments", Ложь);
Попытка
Документ.НормализоватьДокумент();
Исключение
Настройки.УстановитьПараметр("comments", Прежнее);
ВызватьИсключение;
КонецПопытки;
Настройки.УстановитьПараметр("comments", Прежнее);
Сообщить(Настройки.ПолучитьПараметр("comments") = Прежнее);
Иначе
Сообщить("Удаление комментариев настройкой не поддерживается; нормализуем только текст обычным методом");
Документ.Нормализовать();
КонецЕсли;
Сообщить(Корень.ПервыйДочерний.ТекстовоеСодержимое = "Книга");
Сообщить(Корень.ТекстовоеСодержимое = "Книга");
Если УдалятьКомментарии Тогда
Сообщить(Корень.ДочерниеУзлы.Количество() = 1);
Иначе
Сообщить(Корень.ДочерниеУзлы.Количество() = 2);
КонецЕсли;Разбор по шагам
Вручную создаём три соседних текста, включая пустой, и комментарий. До нормализации это четыре ребёнка, хотя текстовое содержимое уже равно Книга.
Запрашиваем ИменаПараметров у документа. Значение comments из стандарта DOM проверяем на поддержку в этой платформе перед чтением и присваиванием.
Если поддерживается comments=Ложь, НормализоватьДокумент объединяет текст и удаляет комментарий. Иначе обычный Нормализовать объединяет текст, сохраняя комментарий.
Настройку восстанавливаем, но восстановление параметра не возвращает удалённый комментарий. Сам документ был изменён.
Как проверить результат
Начальная проверка четырёх детей и обе проверки текста дают Истина.
При поддержке comments после нормализации один текстовый ребёнок. Без поддержки — текст и комментарий, всего два; соответствующая проверка Истина.
В ветке comments также проверяется восстановление прежнего значения настройки.
Ожидаемый результат
Показано различие нормальной формы текста и дополнительной политики обработки комментариев.
На что обратить внимание
Смысл comments=Ложь определён DOM Level 3 Core, а поддержку и допустимость значения проверяет текущая платформа: https://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration .
НормализоватьДокумент не является проверкой бизнес-схемы товара и не делает недоверенный текст безопасным HTML.
Если нужно сохранить исходное дерево, нормализуйте его полную копию, а не рабочий оригинал.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.