|
1C + JScript | ☑ | ||
---|---|---|---|---|
0
GhostMaul
20.08.20
✎
13:27
|
Доброго всем дня!
Пытаюсь внедрить яваскрипт в 1С для расчета CRC8, но не выходит аленький цветочек ( {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(183)}: Ошибка при вызове метода контекста (AddCode) ScrptCtrl.AddCode("function CRC8(strN) по причине: Произошла исключительная ситуация (Ошибка компиляции Microsoft JScript): Синтаксическая ошибка ScrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language = "JScript"; ScrptCtrl.AddCode("function CRC8(strN) |{ |strHex = new String(""0123456789ABCDEF""); |result = 0; |fctr = 16; |for (i=0; i<strN.length; i++) | { | if (strN.charAt(i) == " ") continue; | v = strHex.indexOf(strN.charAt(i)); | if (v < 0) | { | result = -1; | break; | } | result += v * fctr; | if (fctr == 16) fctr = 1; else fctr = 16; | } | // Calculate 2's complement | result = (~(result & 0xff) + 1) & 0xFF; | // Convert result to string | //strResult = new String(result.toString()); | strResult = strHex.charAt(Math.floor(result/16)) + strHex.charAt(result%16); | var a = strResult; | return(a); |}"); Результат = ScrptCtrl.Run("CRC8("+КодКарты+");"); |
|||
1
vde69
20.08.20
✎
13:29
|
замени " на '
|
|||
2
acht
20.08.20
✎
13:33
|
> if (strN.charAt(i) == " ") continue;
Что за кавычки? |
|||
3
Garykom
гуру
20.08.20
✎
13:36
|
(0) если на клиенте то можно в ПолеHTML засунуть
|
|||
4
Garykom
гуру
20.08.20
✎
13:37
|
(0) хотя имхо CRC8 есть и на 1С код
|
|||
5
craxx
20.08.20
✎
13:38
|
(0) на на фейхуа? Все тоже самое на 1С сложно написать?
|
|||
6
GhostMaul
20.08.20
✎
14:13
|
Для 1С которые, не тот результат выдают, нашел онлайн калькулятор на яве, который дает нужный результат и вытащил код из него.
Мне сложно интерпретировать в коде 1С вот это: | result = (~(result & 0xff) + 1) & 0xFF; | strResult = strHex.charAt(Math.floor(result/16)) + strHex.charAt(result%16); Заменил кавычки // КодКарты = AABBCCDD Результат = ScrptCtrl.Run("CRC8("""+КодКарты+""");"); по причине: Произошла исключительная ситуация (0x80020006) |
|||
7
MyNick
20.08.20
✎
14:20
|
(6) тута смотрел? http://catalog.mista.ru/1c/articles/83313/
|
|||
8
GhostMaul
20.08.20
✎
14:30
|
(7) Смотрел, не тот результат
Брал функцию тут: https://www.planetimming.com/checksum8.html |
|||
9
GhostMaul
20.08.20
✎
14:58
|
Спасибо всем, надо использовать не Run, а Eval
Результат = ScrptCtrl.Eval("CRC8("""+КодКарты+""");"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |