Формула из js на 1С

  1. 7 г. назад

    function(x,y) {return x.toString(y?y:16)}
    Подскажите, кто в теме, что означает эта функция? На вход подается число, на выходе строка. Нужно на 1С такую написать.

    Ответы: (3) (4) (5)
  2. Число, это я так понимаю - байты
    Например на входе 50, на выходе "82"

  3. Другими словами такой код не работает, если выполняется в фоновом режиме

    	HTML = Новый COMОбъект("htmlfile");
    	HTML.Open("text/html");
    	HTML.Write("<script>ConverString = function(x,y){return x.toString(y?y:16)}</script>");
    
    Ответы: (6)
  4. Оператор вопросительный знак „?“

    Он состоит из трех частей:
    условие ? значение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
    ...
    }

  5. 06.09.2016 11:56:17 отредактировано sda553

    (0)Эта функция возвращает строку из числа x переведя его в этой строке в систему исчисления y. Если y не указан, то в шестнадцатеричную.

    Ответы: (8) (11)
  6. (2) так ты код не вызываешь.

    Ответы: (7) (12)
  7. Спасибо
    (6) Дальше вызывается. Ошибка именно на строке
    HTML.Write("<script>ConverString = function(x,y){return x.toString(y?y:16)}</script>");

    Ответы: (12)
  8. (4) Т.е. по сути нужно получить 16-ти ричное представление числа?

    Ответы: (9) (10)
  9. (8) по умолчанию 16. y можно задать 2, например, будет двоичное

  10. 06.09.2016 12:01:09 отредактировано sda553

    (8) ага, если второй параметр не указан
    На входе, 31 на выходе "1f"
    На входе 7,2 на выходе "0111"

  11. (4) Стоит добавить, что toString можно переопределить и нужно тщательно посмотреть что там за объект "х".

  12. tsr Спасибо
    (6) Дальше вызывается. Ошибка именно на строке
    HTML.Write("<script>ConverString = function(x,y){return x.toString(y?y:16)}</script>");

    что ты ждешь от этого кода? ты присваиваешь в ConverString - ссылку на функцию (см пример )
    где сам вызов?

    Ответы: (13)
  13. 06.09.2016 12:05:01 отредактировано tsr

    Это шифрование по SHA512
    (12) Продолжение
    ЯваСкрипт = HTML.documentElement.document.Script;
    Хеш = "";
    Для Каждого Байт Из ХешБайт Цикл
    Символ = ЯваСкрипт.ConverString (Байт);
    Хеш = Хеш + ?(СтрДлина(Символ) = 2, Символ, "0"+Символ);
    КонецЦикла;

  14. Всем спасибо. Переделал на 1С

или зарегистрируйтесь чтобы ответить!