Гулеватый Тарас

110
Рейтинг

Foxx
Тарас Гулеватый



  •   Регистрация: 14.01.2009 (15 лет назад)

  •   Был(а) на сайте: 22.04.2024

Подписчики 1

Группы

Профессиональный разработчик

Рейтинг 110

Декодирование URL

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m) Внешняя обработка (ert,epf) Универсальные функции

Иногда бывает нужно декодировать строку вида "c:\documents%20and%20settings\" в удобочитаемый текст. Можно, конечно, заменить все "%20" на пробелы, и считать что задача решена. А если в строке закодированы подобным образом не только пробелы? Если на входе попался URL с кучей подобных "процентов"? Данная функция сделает правильное декодирование подобной строки.

1 стартмани

08.12.2011    17947    29    Foxx    17       

29

Простая и быстрая хэш функция (hash) средствами 1С (оптимизированный вариант)

Инструменты и обработки Системный администратор Программист Россия Абонемент ($m) Внешняя обработка (ert,epf) Универсальные функции

Данная функция основана на разработке "Простая и быстрая хэш функция (hash) средствами 1С" http://infostart.ru/public/70030/ Главное отличие от оригинальной функции - оптимизация по быстродействию для больших объемов исходных данных. По результатам замеров количества генерируемых хэшей в минуту на строке длиной 1222 символа: Оригинальная функция: 14880 Оптимизированная функция: 21528 (т.е. +45%)

1 стартмани

06.12.2011    27554    58    Foxx    18       

46

База знаний (демо-конфигурация браузера по объектам информационной базы)

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m) Конфигурация (md, cf) Управление знаниями (Knowledge Base)

Если вы пробовали реализовать у себя в программе отображать объекты, содержащиеся в самой базе данных, например встроенную справку (наполняемую пользователями без доступа в конфигуратор), то наверняка сталкивались с тем, что отобразить эту справку для конечных пользователей без генерации предварительно локального html-файла не получается. А если получается, то навигация потом по такой справке - еще тот квест :). Есть решение!

1 стартмани

05.12.2011    15644    85    Foxx    19       

35

Комментарии

DevДекодирование URL#17 28.09.21 9:36
(16) это писалось в те времена, когда в платформе не было никаких КодироватьСтроку() и РаскодироватьСтроку()
DevБаза знаний (демо-конфигурация браузера по объектам информационной базы)#20 27.08.20 14:14
(19)
v8config://v8cfgHelp/mdobject/id6d8184f5-7d2b-4ccb-b9d0-fa872f5775e6/8eb4fad1-1fa6-403e-970f-2c12dbb43e23
- это ссылка на существующий в конфигурации объект метаданных
а дальше - параметр ?id=c675fa98-0525-11e1-8cff-00195b3e3f45
где "id" - имя параметра, "c675fa98-0525-11e1-8cff-00195b3e3f45" - значение параметра, по сути, это UUID страницы базы знаний (уникальный идентификатор элемента справочника)
ОбменПодсистема Вики - интеграция 1С и сайта под управлением MediaWiki#17 19.01.18 0:51
(3)
Цитата
А есть ли решения
Когда-то делал вики-подобную систему справки, или базы знаний, встроенную в конфигурацию, не требующую наличия веб сервера в интранете.
Т.е. не заточенную именно на описание структуры метаданных конфигурации, а вообще с произвольным содержанием.
На обычных формах.
https://infostart.ru/public/100636/
Но в широкий доступ тогда публиковал не полностью готовое решение, а рабочую демонстрацию самого принципа работы.
Толковый программист сделает из этого что угодно).
DevДекодирование URL#13 31.01.17 16:56
(12) там они изобрели свой собственный способ кодирования).

У них там строка закодирована в кодировке Windows-1251 (судя по внешнему виду, не проверял)
А моя функция декодирует UTF-8

"веселые картинки" по-правильному URL-кодированию будет
%D0%B2%D0%B5%D1%81%D0%B5%D0%BB%D1%8B%D0%B5%20%D0%BA%D0%B0%D1­%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8

DevДекодирование URL#11 31.01.17 10:17
(10) а что не так с запросами яндекса? Можно пример?
DevПростая и быстрая хэш функция (hash) средствами 1С (оптимизированный вариант)#19 14.12.12 3:51
(18) serg_gres, гарантий полного отсутствия коллизий вам конечно никто не даст)
Для вашей задачи, я думаю, алгоритм вполне подойдет.

Чтобы не быть совсем уж голословным:

К-во коллизий для разных хэш функций в зависимости от разрядности таблицы:

У меня используется функция Бернштайна (см. серую кривую) и 64-разрядный ключ (в графике ограничились 28-ю разрядами :))

Оценка качества разных функций по формуле Red Dragon Book

У нас кодируется UTF-8 текст (отмечено светло-голубым цветом). Как наглядно видно, функция Бернштайна вполне вписывается в "идеал" (диапазон 0.95-1.05) для всех исходников, кроме числовых.
DevДекодирование URL#7 19.06.12 11:47
(6) Murom, рад, что помогло))
Про кодирование строки в обе стороны - такая задача в данной статье не ставилась, т.к. на инфостарте уже существуют публикации для обратного преобразования. См. например, ссылку в (3)
ПубликацииЕсть 2 подхода к внедрению информационных систем. На примере 1С УПП 8#14 02.02.12 3:51
Цитата
Если когда-то эти функции легко выполняли 30 бухгалтеров, на бумаге, то неужто ПО уровня 1С УПП 8 — не сможет выполнить эти функции в типовой версии?
Работу ранее выполняли люди на бумаге (старом ПО, не суть важно), с появлением нового ПО (допустим, УПП) - работу выполняют все те же люди. ПО - лишь инструмент. Лучше или хуже приспособленный (правильно/неправильно используемый) для решения задачи. И еще, в типовом варианте - конфигурация далеко не всегда "сможет выполнять те же функции".
DevБаза знаний (демо-конфигурация браузера по объектам информационной базы)#18 23.01.12 1:59
(17) Dimasik2007, не скрою, очень рад, что эта разработка оказалась полезной!
DevПростая и быстрая хэш функция (hash) средствами 1С (оптимизированный вариант)#13 14.12.11 17:00
Цитата
Да, ваш вариант быстрее на 1,5-2 процента в "боевом режиме" (как 8.1, так и 8.2)
Мда, негусто. Ради такого результата не стоило и отдельную статью публиковать, достаточно было в предыдущей публикации в комментариях отписаться. (ух, как я прошляпил на первоначальных замерах у себя...) Ну да ладно, удалять уже не буду, хоть несколько процентов, а все равно прирост).