|
Запись тега 1162 из 1с для табачной продукции | ☑ | ||
---|---|---|---|---|
0
demONx6
06.05.19
✎
02:08
|
Всем привет.
Собственно суть вопроса в теме. Есть необходимость заполнить тег 1162 из 1С. Нашел "Алгоритм записи тега 1162", но как-то там все не совсем понятно. https://xn--80ajghhoc2aj1c8b.xn--p1ai/upload/iblock/a0f/a0f7fa37208f3118db26c00fc9bb2b5b.pdf Например в примере: "1. Выделяем GTIN 14 символов: 00000046210654 и преобразуем в бинарный вид: 00 00 02 C1 1E 5E" 00 00 02 C1 1E 5E - это шестнадцатиричное представление числа 46210654, с добавленными нулями вначале. При чем тут Бинарный вид? Далее: "2. Выделяем Serial 7 символов: ADgopSq и преобразуем в строковое значение: 41 44 67 6f 70 53 71" Тут последнее сочетание цифр вообще не понятно что что... Ну и в конце: "3. Складываем 00 05 + 00 00 02 C1 1E 5E + 41 44 67 6f 70 53 71 и кодируем в BASE64: AAUAAALBHl5BRGdvcFNx." Если допустим получим второе и третье значение, то первое "00 05" - это что и как? Если 05 - это обозначение табачки, то 00 - они фиксированы? Или эту комбинацию надо целиком формировать? Гугл конечно делится информацией, но ее недостаточно для решения задачи. А может конечно я ищу так. Просьба натолкнуть на правильные мыли. |
|||
1
SadrArt
06.05.19
✎
02:23
|
(0) >Если допустим получим второе и третье значение, то первое "00 05" - это что и как?
Если 05 - это обозначение табачки, то 00 - они фиксированы? В алгоритме четко же написано: Код типа маркировки Байты [1:2] (2 байта) - Код типа маркировки Постоянное значение: 00 05 Что тут не понятно? |
|||
2
Garykom
гуру
06.05.19
✎
02:23
|
||||
3
Garykom
гуру
06.05.19
✎
02:25
|
(0) Ты что сканер с марки выдает напиши, разделим что куда засовывать
|
|||
4
demONx6
06.05.19
✎
03:29
|
(1) > Что тут не понятно?
Да, действительно. Не обратил на это внимание. Спасибо. (3) Мне бы хоть с примером разобраться, что и как кодировать. Возьмем тот из мануала "(01)00000046210654(21)ADgopSq(91)12(92)1234v67i" Если идти от конца, то в Base64Строка в качестве параметра мне нужно засунуть значение типа ДвоичныеДанные, чтобы получить нужный результат. Следовательно все три составляющие нужно привести к типу ДД, затем конкатенировать и преобразовать. Так? Serial (ADgopSq) я привел к виду двоичных данных. Воспользовался следующим методом: ПотокSerial = Новый ПотокВПамяти; Текст = Новый ЗаписьТекста(ПотокSerial, КодировкаТекста.UTF8); Текст.Записать("ADgopSq"); // помещаем данные, тип значения: Строка Текст.Закрыть(); Serial_ДвоичныеДанные = ПотокSerial.ЗакрытьИПолучитьДвоичныеДанные(); // получаем 41 44 67 6f 70 53 71 в типе значений ДвоичныеДанные Этот способ для 00000046210654 не подходит. Используя вышеописанный метод пытался записать это значение в виде Строки("00000046210654"), Числа(46210654), Формировал шестнадцатиричный вид в текстовом виде("000002C11E5E"), преобразовывал число в бинарную строку("10110000010001111001011110"). Все четыре раза итоговое значение было отличным от "00 00 02 C1 1E 5E" |
|||
5
Garykom
гуру
06.05.19
✎
03:41
|
(4)
Затем банально Сообщить(DecToAny(Число("00000046210654"),16)); |
|||
6
Garykom
гуру
06.05.19
✎
03:42
|
||||
7
Garykom
гуру
06.05.19
✎
03:43
|
Но учитывай предельную разрядность чисел в 1С, если сильно большие будут то придется свою для больших арифметику писать ))
Или найти готовую для 1С. |
|||
8
Garykom
гуру
06.05.19
✎
03:48
|
Просто кто то кто писал мануал "Алгоритм записи тега 1162" путает бинарный формат (имхо из 0 и 1) и HEX (шестнадцатеричную запись в виде строки)
|
|||
9
demONx6
06.05.19
✎
03:57
|
(8) вот-вот. И мне так кажется.
|
|||
10
demONx6
06.05.19
✎
07:11
|
(5) DecToAny(Число("00000046210654"),16) делает шестнадцатеричное представление числа в текстовом типе. А как получить это же значение но в типе значений "Двоичные данные?".
|
|||
11
demONx6
06.05.19
✎
07:13
|
Чтобы вот так было:
http://pastexen.com/i/hdPnKxipiH.jpg |
|||
12
demONx6
06.05.19
✎
07:20
|
(10) Аналогичный вопрос к тому, как получить "00 05" в виде двоичных данных.
|
|||
13
Garykom
гуру
06.05.19
✎
11:06
|
(12) Наймите программиста
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |