Закодировать кириллический путь в своём готовом URL, сохранив разделители

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

URLВКодировкеURL предназначен для строки URL целиком: сохраняются специальные символы структуры адреса. Это другой режим, чем кодирование значения q.

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

Полный серверный общий модуль своей учебной конфигурации. Только собственные числа и строки в памяти.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеФормулы с флагом Сервер. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из серверной команды учебной обработки.

  2. Все числа, строки и URI создаются внутри примера. Нет запросов к базе, файлов, сетевых соединений или вычисления произвольного кода.

  3. Для первых запусков не меняйте данные. Затем меняйте один параметр за раз и сравнивайте объяснение с результатами проверок.

  4. Булево и тригонометрические функции в этих уроках не предназначены для вызова через COM-соединение. Кодирование строк выполняется на сервере.

  5. URI example.invalid только печатается и проверяется как строка; адрес не открывается. Эти BSL-примеры не запускались автоматически в 1С.

Процедура ВыполнитьПример() Экспорт
    Префикс = "https://example.invalid/";
    ИсходныйURL = Префикс + "каталог/книга";
    КодированныйURL = КодироватьСтроку(ИсходныйURL, СпособКодированияСтроки.URLВКодировкеURL, "UTF8");
    ВосстановленныйURL = РаскодироватьСтроку(КодированныйURL, СпособКодированияСтроки.URLВКодировкеURL, "UTF8");
    Сообщить(ВосстановленныйURL = ИсходныйURL);
    Сообщить(Лев(КодированныйURL, СтрДлина(Префикс)) = Префикс);
    Сообщить(КодированныйURL <> ИсходныйURL);
    Сообщить(СтрНайти(КодированныйURL, "каталог") = 0);
    Сообщить("Свой URL с закодированным путём, без перехода: " + КодированныйURL);
КонецПроцедуры

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

  1. Составить свой HTTPS URL с кириллическим путём без query, секретов и внешних вложений.

  2. Кодировать готовую строку режимом URLВКодировкеURL, оставляющим : и / как разделители.

  3. Проверить сохранение префикса https://example.invalid/ и кодирование кириллических букв.

  4. Раскодировать той же кодировкой и способом и проверить исходный полный адрес.

  5. Сравнить с предыдущим уроком: отдельные пользовательские параметры сначала кодируются отдельно, а не склеиваются сырыми с URL.

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

  1. Четыре сообщения Истина: roundtrip, сохранённый префикс, изменённая строка и отсутствие исходного кириллического слова.

  2. Ни браузер, ни сеть не используются.

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

Есть практическое различие между percent-кодированием URL целиком и кодированием его отдельного компонента.

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

  1. Режим не исправляет неправильную структуру URL и не подтверждает доступность адреса.

  2. Сохранение специальных символов опасно при склейке сырого пользовательского query-значения — для него нужен отдельный первый урок.

  3. example.invalid используется только как учебный адрес, не как работающий ресурс.

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

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

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

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

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