IDN и Punycode в 1С

01.05.22

Разработка - Универсальные функции

Обработка "Punycode конвертер".

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
IDN и Punycode:
.epf 8,30Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.

При реализации работы с Cookie в HTTP-Клиенте столкнулся с необходимостью интернационализованные доменные имена (далее IDN) кодировать в Punycode.

Алгоритм кодирования и декодирования Punycode описан в RFC 3492.

Я транслировал java-реализацию на русский язык 1С.

 

Вспомогательные константы и функции

 

Для реализации алгоритма требуется определить следующие

 
 константы:

 

и несколько служебных функций:

 
 проверка вхождения кода символа в таблицу ASCII

 

 
 получение символа по порядковому номеру в алфавите Punycode

 

 
 получение порядкового номера по коду символа из алфавита Punycode

 

 
 функция адаптации смещения

 

Кодирование в Punycode

 

 
 код функции кодирования

 

Декодирование из Punycode

 

 
 код функции декодирования

 

Итого

 

Прикрепляю обработку-конвертер Punycode. Обработку тестировал на платформе 8.3.10.2667

 

 

Теперь это есть и для 1С (лично мне в своё время не встретилось, может плохо искал).

punycode idn кодировка http обработка

См. также

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    20114    dimanich70    81    

144

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14728    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3578    56    progmaster    8    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    18476    171    sapervodichka    112    

135

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    8371    quazare    8    

111

СКД Универсальные функции Программист Стажер Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Объединение ячеек в отчете только на определенном уровне иерархии, Постобработка итогов в табличном документе, Скрытие колонок в зависимости от количества месяцев в периоде.

28.05.2022    10435    milkers    11    

98

Универсальные функции БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье я рассматриваю несколько полезных "классических" функций и процедур для работы с данными, которые уже встроены в БСП и готовы к использованию.

25.04.2022    19164    quazare    11    

139
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RealJustin 19.01.23 11:00 Сейчас в теме
Добрый день.
Скопировал код себе, кодирует декодирует свое-же. Но результат его отличны от тех, что встречаются по запросу в интернете "Punycode-конвертер олайн". И этот раскодировщик не понимает результаты кодирования в онлайн конвертерах.
Это какой-то другой алгоритм?
2. SpaceOfMyHead 196 21.01.23 15:49 Сейчас в теме
(1) Привет! Пример, на котором результат не соответствует, в студию!
3. SmithSE 98 05.12.23 14:07 Сейчас в теме
Привет! Например, тут https://www.reg.ru/web-tools/punycode
"Привет" кодируется в "b1agh1afp"
В обработке кодируется в "r0a2bjk3bp"
4. SmithSE 98 05.12.23 14:12 Сейчас в теме
5. SpaceOfMyHead 196 05.12.23 19:43 Сейчас в теме
(4) Да, обработка не изменяет исходный текст, кодирует как есть. И не добавляет к результату префикс
xn--

Логика кодирования IDN целиком представлена в подсистеме HTTP-клиент.
6. sertak 324 13.03.24 08:56 Сейчас в теме
Добрый день.
Некорректно обрабатывается точка. Например, "при.вет" должно преобразовываться в "h1and.xn--b1ag3b", обработка выводит ".-dtbjj8ags".
7. SpaceOfMyHead 196 13.03.24 14:11 Сейчас в теме
(6) В обработке приведён просто алгоритм кодирования Unicode в ASCII представление - Punycode. Если в обработке отдельно конвертировать "при" и "вет", то получим те самые "h1and" и "b1ag3b".

Ok. А где же "xn--"? Это как раз про преобразование IDN в кодировку Punycode. IDN разделяется на части по символу '.', каждая часть кодируется (как раз алгоритмом в обработке), для каждой части добавляется префикс "xn--", части соединяются обратно через символ '.'

В обработке представлен только алгоритм кодирования. Работа с IDN полностью представлена в HTTP-Клиенте.
8. sertak 324 13.03.24 14:18 Сейчас в теме
(7) Да, действительно. Тогда стоит доделать корректную обработку этих символов по аналогии с конверторами типа https://www.punycoder.com/. А я у себя учту этот момент. спасибо.
9. SpaceOfMyHead 196 13.03.24 14:22 Сейчас в теме
(8) В рамках этой статьи доделывать не буду - это пример алгоритма, а не конвертер. Конвертер представлен в HTTP-Клиенте. Код открыт, можно взять оттуда реализацию конвертации.
Оставьте свое сообщение