IDN и Punycode в 1С

01.05.22

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

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

Скачать файлы

Наименование Файл Версия Размер
IDN и Punycode:
.epf 8,30Kb
4
.epf 8,30Kb 4 Скачать

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

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

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

 

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

 

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

 
 константы:

 

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Итого

 

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

 

 

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

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

См. также

Валидация JSON через XDTO (включая массивы)

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

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

28.08.2023    8816    YA_418728146    6    

141

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

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

2 стартмани

22.08.2023    2071    21    progmaster    7    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 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    16143    133    sapervodichka    112    

129

Система контроля ведения учета [БСП]

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

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

18.07.2022    7243    quazare    8    

109

Хитрости СКД. Часть 3

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

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

28.05.2022    9294    milkers    11    

94

Модули общего назначения - готовые полезные функции и процедуры конфигураций на БСП

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

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

25.04.2022    14977    quazare    11    

138

Несколько простых приемов для удобной работы в конфигураторе

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

Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.

12.11.2021    17465    acces969    95    

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

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

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

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