|
тег 1162 шины выдает ошибку неверная длина кода (27) какой длинны код туда требуется? атол | ☑ | ||
---|---|---|---|---|
0
evorle145
06.03.21
✎
17:25
|
ШтрихкодМаркировкиНовый = "01" + СтруктураШтрихкодовМаркировки.gtin + "21" + СтруктураШтрихкодовМаркировки.serial;
nomenclatureCode = КАС_ПреобразоватьВМассивБайт( ШтрихкодМаркировкиНовый ); Если ЗначениеЗаполнено(nomenclatureCode) Тогда //ТЕА Объект.Драйвер.setParam(Объект.Драйвер.LIBFPTR_PARAM_MARKING_CODE, nomenclatureCode); Объект.Драйвер.setParam(1162, nomenclatureCode); КонецЕсли; Пробовал сначала Объект.Драйвер.setParam(Объект.Драйвер.LIBFPTR_PARAM_MARKING_CODE, nomenclatureCode); написала что параметр LIBFPTR_PARAM_MARKING_CODE неизвестен, походу версия платформы 2.5 потом пробовать стал просто Объект.Драйвер.setParam(1162, nomenclatureCode); но тут стал выдавать что неверная длинна кода |
|||
1
evorle145
06.03.21
✎
17:39
|
версия платформы 2.5
версия прошивки 12-8541 |
|||
2
Voronve
06.03.21
✎
17:42
|
31
|
|||
3
evorle145
06.03.21
✎
17:45
|
(2) что вы имеете ввиду? как я понимаю, раз у меня платформа 2.5 , то я должен в код Объект.Драйвер.setParam(1162, nomenclatureCode);nomenclatureCode - вот сюда подсунуть код не преобразованный через КАС_ПреобразоватьВМассивБайт( ШтрихкодМаркировкиНовый ); , а прям строку вставлять из этих 31 символов?
|
|||
4
evorle145
06.03.21
✎
17:52
|
(2) хэх.. подставил строку длинной 31, и пробилось. Спасибо ВАМ, добрый человек!
|
|||
5
d4rkmesa
06.03.21
✎
17:54
|
(4) Думаю, теперь можно на радостях начать писать слова "длина" правильно.
|
|||
6
evorle145
06.03.21
✎
17:58
|
(5) стрДлинна(строка)
|
|||
7
d4rkmesa
06.03.21
✎
18:01
|
||||
8
Исновая
06.03.21
✎
18:14
|
Платформа причем...че там у тя за мешанина в голове
|
|||
9
Voronve
06.03.21
✎
18:25
|
(4) Загляни в ОФД. Проверь
|
|||
10
evorle145
07.03.21
✎
15:52
|
(9) в овд вот такая картина:
https://cdn1.savepice.ru/uploads/2021/3/7/80a8e327019b9813e8ddff8f619dd42d-full.jpg а правильный код, который я отправлял в тег 1162 вот такой 0104680010061794212pwfO'C6qxpK! то есть часть отрезало какого то фига "10061794212pwfO'C6qxpK!" и в честном знаке я этот чек так и не увидел |
|||
11
Voronve
07.03.21
✎
19:09
|
(10) В ОФД может быть обрезан код, признак "М" стоит, по идее ОФД должен передать данные в ЧЗ по розничной продаже.
Вопрос когда появятся изменения ... |
|||
12
evorle145
07.03.21
✎
20:13
|
(11) да признак то как раз мне кажется ничего не значит. Этот признак появился от того, что в коде в наименование написано : Наименование = [М] + Наименование
А вот то что код обрезан - вот то мне не понятно.. ведь в тэг я его 100% целым поместил.. Час ждал, в ЧЗ ничего не появилось( |
|||
13
Voronve
07.03.21
✎
20:27
|
(12) У тебя на картинке два М. Если тэг 1162 заполняется корректно, то сама касса выставляет М
То что ка картинке твой киз показан обрезанным - чтож делать, ты не влияешь на то как офд отдает данные пользователю на просмотр. С утра посмотри в ЧЗ изменения и дерни ТП их. |
|||
14
evorle145
07.03.21
✎
20:32
|
(13) понял...
дело в том, что я в коде сам написал так: Объект.Драйвер.setParam(1162, nomenclatureCode); где nomenclatureCode это 0104680010061794212pwfO'C6qxpK! понимаю, что отображается он обрезанным.. а [М] появилось от того что в обработке обслуживания атол есть кусок кода Наименование = [М] + Наименование .. а два М появилось потому что я ошибся и два раза в коде написал Наименование = [М] + Наименование , а затем это Наименование отправилось в "Объект.Драйвер.Name = Наименование;" ЧЗ смогу проверить уже только 9 ого числа... но вчера в ЧЗ ничего не появилось.. даже смену закрыл |
|||
15
evorle145
07.03.21
✎
20:35
|
(13) вот и прикол, в том что в обработке обслуживания написано, если отправлять код в новом формате, то нужно делать через
nomenclatureCode = КАС_ПреобразоватьВМассивБайт( ШтрихкодМаркировкиНовый ) Объект.Драйвер.setParam(Объект.Драйвер.LIBFPTR_PARAM_MARKING_CODE, nomenclatureCode); Драйвер атол поставил последний, версия платформы 2.5 версия прошивки 12-8541, и при таких версия мне выдало сообщение что LIBFPTR_PARAM_MARKING_CODE - нет такого поля и чек пробит не будет. Тогда я сделал по старому, и просто строку подставил в этот тэг Объект.Драйвер.setParam(1162, nomenclatureCode); и чек пробился... |
|||
16
evorle145
14.03.21
✎
09:38
|
Ошибка найдена! Пишу решение для тех, кто возможно наткнется и совершит те же ошибки что и я.
Итак, обновляем прошивку кассы до примерно 12-8541 (если у вас чуть ниже, то вроде с 12-8400 должно работать) Версия платформы не имеет значение. На 2.5 работает. ОБЯЗАТЕЛЬНО обновляем драйвер кассы. Если АТОЛ то до 10.8.1 минимум! (Я совершил ошибку и обновил драйвер на локальной машине до это версии, а кассы работы через терминал, а на сервере драйвер стоял 10.4 и ниже приведенный код с ним не работал) Правильный код для атола: + Code Объект.Драйвер.setParam(Объект.Драйвер.LIBFPTR_PARAM_MARKING_CODE, nomenclatureCode); где nomenclatureCode принимает значение: ШтрихкодМаркировкиНовый = "01" + СтруктураШтрихкодовМаркировки.gtin + "21" + СтруктураШтрихкодовМаркировки.serial; nomenclatureCode = ПреобразоватьВМассивБайт( ШтрихкодМаркировкиНовый ); Функция ПреобразоватьВМассивБайт(Данные, РезультатСтрокой = Истина) Экспорт Если НЕ ЗначениеЗаполнено(СокрЛП(Данные)) Тогда Возврат ""; КонецЕсли; РезультатБайтами = ""; ИмяВрФайла = ПолучитьИмяВременногоФайла("txt"); Текст = Новый ТекстовыйДокумент(); Текст.УстановитьТекст(Данные); Текст.Записать(ИмяВрФайла,КодировкаТекста.ANSI); ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВрФайла); Если РезультатСтрокой Тогда РезультатБайтами = Строка(ДвоичныеДанные); Иначе РезультатБайтами = ДвоичныеДанные; КонецЕсли; УдалитьФайлы(ИмяВрФайла); Возврат РезультатБайтами; КонецФункции gtin и serial определяются из разбора отсканированной строки (можно подсмотреть код в любой стандартной конфе или у меня если не найдете) ну и букву [М] не забудьте вставить в наименование ВСЕ. В честном знаке все появилось через 3 минуты после пробития чека (и продажа и возврат) |
|||
17
d4rkmesa
14.03.21
✎
13:33
|
(16) Браво.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |