function(x,y) {return x.toString(y?y:16)}
Подскажите, кто в теме, что означает эта функция? На вход подается число, на выходе строка. Нужно на 1С такую написать.
Число, это я так понимаю - байты
Например на входе 50, на выходе "82"
Другими словами такой код не работает, если выполняется в фоновом режиме
HTML = Новый COMОбъект("htmlfile"); HTML.Open("text/html"); HTML.Write("<script>ConverString = function(x,y){return x.toString(y?y:16)}</script>");
Оператор вопросительный знак „?“
Он состоит из трех частей:
условие ? значение1 : значение2
Проверяется условие, затем если оно верно – возвращается значение1, если неверно – значение2, например:
access = (age > 14) ? true : false;
Оператор '?' выполняется позже большинства других, в частности – позже сравнений, поэтому скобки можно не ставить:
access = age > 14 ? true : false;
Оператор if (...)/? вычисляет и преобразует выражение в скобках к логическому типу.
В логическом контексте:
- Число 0, пустая строка "", null и undefined, а также NaN являются false,
- Остальные значения – true.
Например, такое условие никогда не выполнится:
if (0) { // 0 преобразуется к false
...
}
(8) по умолчанию 16. y можно задать 2, например, будет двоичное
(8) ага, если второй параметр не указан
На входе, 31 на выходе "1f"
На входе 7,2 на выходе "0111"
(4) Стоит добавить, что toString можно переопределить и нужно тщательно посмотреть что там за объект "х".
Это шифрование по SHA512
(12) Продолжение
ЯваСкрипт = HTML.documentElement.document.Script;
Хеш = "";
Для Каждого Байт Из ХешБайт Цикл
Символ = ЯваСкрипт.ConverString (Байт);
Хеш = Хеш + ?(СтрДлина(Символ) = 2, Символ, "0"+Символ);
КонецЦикла;
Всем спасибо. Переделал на 1С