|
Как вычислить дробное число ? | ☑ | ||
---|---|---|---|---|
0
vv2304
25.01.19
✎
10:52
|
Производитель после продажи забил, приходится теперь самому расхлебывать.
В общем, из в штрихкоде (EAN128) содержится в определенных разрядах 310y и сразу после этого идут 6 знаков. "y" - это колич. знаков после запятой. Например 3102000230 Это значит, что вес = 2.3 кг. Сижу и никак не придумаю алгоритм. Дописывать не в 1С, т.е. простая математика. |
|||
1
mistеr
25.01.19
✎
10:55
|
Не понял юмора. Нужен алгоритм как поделить 230 на 10 в степени 2 или что?
|
|||
2
Натуральный Йог
25.01.19
✎
10:56
|
(0) а 3104030250 это 3,025 кг?
|
|||
3
Timon1405
25.01.19
✎
10:56
|
интуиция подсказывает, что нужно использовать операции
%(он же остаток от деления) и Цел() или его аналог не в 1С |
|||
4
Strogg
25.01.19
✎
10:57
|
да че сложного-то? У - количество знаков после запятой - сам же и написал. т.о. ты точно знаешь длину блока 310у. Таким образом, функцией деления на 10 в степени у-1(коллеги поправьте, если что) ты выделяешь дробную часть...
Ну, и ведущие нули убрать... |
|||
5
ДенисЧ
25.01.19
✎
10:58
|
Если Лев(шк, 3) = "310" Тогда
колЗнаков = Число(Сред(шк, 4, 1)); Вес = Число(сред, шк, 5) * Pow(10, колЗнаков); КонецЕсли; |
|||
6
vv2304
25.01.19
✎
11:01
|
"3104030250 это 3,025 кг?"
нет, 310-это постоянно, далее У-это показывает колич. знаков после запятой. Далее 6 знаков отводится под вес товара. Это не в 1С, я даже не знаю какие функции там заложены поэтому могу оперировать только умножением, делением, сложением и вычитанием. |
|||
7
ДенисЧ
25.01.19
✎
11:02
|
Если не на 1с, то на каком языке?
|
|||
8
Strogg
25.01.19
✎
11:08
|
(6) тебе в любом случае надо отсечь первые 4 символа, перевести оставшуюся строку в число и разделить его на 10 количество раз, равное у.
Вот и ищи такие методы в sql, или где ты там это делать будешь... |
|||
9
vv2304
25.01.19
✎
11:10
|
Там где я могу подобраться
EAN128= global::Cleverence.Barcoding.Ean128.FormatAndParse(ScannedBarcode) ГоденДо= EAN128.GetValue("15") ВесУп = EAN128.WeightInKg Объекта EAN128 нет, пишет ошибку. Поэтому надо как-то из типа вот такого 01950123456789033103000123 получить вес |
|||
10
vv2304
25.01.19
✎
11:12
|
(8) Уже лучше. Осталось узнать как у них там можно циклы писать.
|
|||
11
Strogg
25.01.19
✎
11:15
|
(9) блин, может тебе сначала посмотреть спецификации GS1?
блок 310х, обычно, идет после блока 01. Причем, 01 блок (GTIN) имеет фиксированное количество символов. Но это так, предположения, как у вас там сделано - хз. Если блок нефиксированной длины, то в конце блока идет символ FNC1, как окончание блока. Тебе в любом случае необходимо парсить свой шк... |
|||
12
mikecool
25.01.19
✎
11:17
|
(9) если это конфига клеверенса, то они поддерживают еан128 из коробки
|
|||
13
mikecool
25.01.19
✎
11:18
|
Поэтому надо как-то из типа вот такого
01950123456789033103000123 это точно еан 128? |
|||
14
Натуральный Йог
25.01.19
✎
11:18
|
(6) 3104030250 это сколько кг?
|
|||
15
mikecool
25.01.19
✎
11:18
|
+12 только включить это надо в настройках, не знаю где, ищи
|
|||
16
Вафель
25.01.19
✎
11:19
|
взять строку - поставить точку в позиция "номер" с конца.
потом Число(НоваяСтрока) |
|||
17
vv2304
25.01.19
✎
11:23
|
(11) Блок фиксированный, 310у я вытащил, оставшуюся часть тоже без проблем. Проблем в данном случае-это написание цикла
(14) 3.025 кг (13) Точно. "если это конфига клеверенса, то они поддерживают еан128 из коробки" Нет ! Только под опред. список. Они не поддерживают даже в приложении для ПК. Если вводить (01)09004699781890(10)0003768400009(15)191130(3103)032500(99)1 тогда да. Если же 0109004699781890100003768400009151912303103032500991 тогда фиг. |
|||
18
mistеr
25.01.19
✎
11:24
|
(16) На 1С каждый сможет. А вот на неизвестном языке на неизвестной платформе — слабо?
|
|||
19
vv2304
25.01.19
✎
11:27
|
Вот с ихнего сайта
"global::Cleverence.Barcoding.Ean128.FormatAndParse(штрихкод) - в качестве аргумента служит еще неотформатированный с помощью скобок штрихкод " Вбиваю неотформатированный ШК в приложении для ПК, получаю ошибку. Ладно, полез циклы пробовать. |
|||
20
Arbuz
25.01.19
✎
11:39
|
(2) -> (6) -> (14) -> (17) Очень интересно! Как можно помочь, если на один и тот же однозначный вопрос - то да, то нет?
|
|||
21
vv2304
25.01.19
✎
11:52
|
(20) Ну очепятка в (6)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |