|
Тэг 1162 (Маркировка табачной продукции) и Атол ДТО-8 | ☑ | ||
---|---|---|---|---|
0
igel1969
20.06.19
✎
15:13
|
Здравствуйте!
У меня получилось отправить чек с маркировкой табачной продукции через Атол ДТО-10 и увидеть этот чек в личном кабинете Честного знака. Но поскольку у меня все торговые точки работают по RDP, а Атол ДТО-10 с RDP не дружит (не поддерживается служба fdsvc), то я подумываю - а КАК БЫ ПОПРОБОВАТЬ ЗАСТАВИТЬ ОТПРАВЛЯТЬ ИНФОРМАЦИЮ О МАРКИРОВАННОЙ ПРОДУКЦИИ (ТЭГ 1162) ЧЕРЕЗ ДТО-8 ? (здесь капслоком выделен главный вопрос данной темы). На ДТО-10 нет необходимости формировать тэг 1162. Достаточно просто послать в драйвер три строчки данных о маркировке и на выходе имеем готовый закодированный тэг. Я сегодня помучался полдня и научился формировать закодированный тэг в таком же правильном виде. Т.е. если брать пример отсюда - https://xn--80ajghhoc2aj1c8b.xn--p1ai/upload/iblock/09e/09e9978505dad5ba4a8f814420ab20b7.pdf то я из строки 00 05 00 00 02 C1 1E 5E 41 44 67 6f 70 53 71 научился получать AAUAAALBHl5BRGdvcFNx (кому интересно как - обращайтесь, все расскажу). А вот теперь дальше что с этим делать? Как его передать на кассу? Пробовал писать ЗаписьXML.ЗаписатьАтрибут("productCode" , XMLСтрока(ТекущаяПозиция.КодТоварнойНоменклатуры)); где ТекущаяПозиция.КодТоварнойНоменклатуры как раз имеет строковое значение AAUAAALBHl5BRGdvcFNx. Не помогло (((( В ОФД чеки показывает без маркировки. Причем если верить этой статье: https://atoldriver.ru/izmeneniya-v-versii-drajverov-atol-8-16-2-ot-27-03-2018/ то для лекарств тэг 1162 передается через ДТО-8. Цитата: Исправленные ошибки: 1. Не удается передать правильный реквизит 1162 для лекарственных товаров. Способ решения: исправлен тип реквизита со строкового на массив байтов. Может есть у кого какие мысли? Как передать тэг 1162 через Атол ДТО-8? |
|||
1
Garykom
гуру
20.06.19
✎
15:21
|
>Как передать тэг 1162 через Атол ДТО-8?
Нанять программиста |
|||
2
igel1969
20.06.19
✎
15:33
|
(1) программиста чего? 1С или драйвера?
|
|||
3
igel1969
21.06.19
✎
08:03
|
видимо надо просто нанять тупого комментатора, который во всех темах будет только гадить (называть больными людьми, предлагать нанять программиста и пр.), а сам ничего не предлагать, ввиду просто незнания.
|
|||
4
NorthWind
21.06.19
✎
08:36
|
(3) через ECR.WriteAttribute можно прописать любой тег. Расковыряйте место, где разбирается и передается в драйвер ваш XML, и сделайте, чтобы объекту драйвера прописывался нужный тег.
|
|||
5
Сияющий в темноте
21.06.19
✎
08:44
|
ну в чем проблема?
читаем руководство программиста на Атол 8. ищем таи какие теги он умеет,и как они передаются,пробуем указать свой таг. если не взлетело,то читает протокол ккт 3.0 оь Атола и смотрим,а как же там передаются теги,после этого пробуем передать свой таг через SendBytes,или как там команда низкоуровневой передачи. p.s.можнл подключить Атол через tcp и через Proxy и посмотреть,что там и куда передается. |
|||
6
Сияющий в темноте
21.06.19
✎
08:46
|
а на этого (1)не обижайтесь
он как раз и предлагает ему заплатить,чтобы он все быстро сделал. |
|||
7
igel1969
24.06.19
✎
13:54
|
(4) в том то и дело, что делаю по всей конфигурации глобальный поиск на WriteAttribete и нигде не нахожу (((
|
|||
8
igel1969
24.06.19
✎
13:56
|
(6) да я бы заплатил, если бы результат был гарантирован. я тут одну обработку скачал за стартмани (чтобы работать в ДТО10 через Web-службу), а она только на 8.3 работает, а у нас 8.2 ((((
|
|||
9
Somebody
24.06.19
✎
14:01
|
(7) ищете не с опиской, как здесь? не WriteAttribete, а WriteAttribute.
|
|||
10
igel1969
24.06.19
✎
14:05
|
(9) да, конечно, руками набирал. Ну сейчас еще раз перепроверил на всякий случай (((
|
|||
11
igel1969
24.06.19
✎
14:12
|
Я вот такую вещь не могу понять:
АТОЛ пишет что надо в драйвер посылать так: Driver.BeginItem(); Driver.StreamFormat = 5; Driver.AttrNumber = 1162; Driver.AttrValue = "00 05 00 00 02 C0 BE D3 65 4E 25 44 38 6A 5F"; Driver.WriteAttribute(); Driver.Name = "Winston"; Driver.Price = 150; Driver.Quantity = 1; Driver.ItemType = 2; Driver.PaymentMode = 4; Driver.TaxTypeNumber = 2; Driver.EndItem() А в 1С, когда формируется XML-документ для отправки в драйвер кассы такие строки: ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString"); ЗаписьXML.ЗаписатьАтрибут("Name" , XMLСтрока(ТекущаяПозиция.Наименование)); ЗаписьXML.ЗаписатьАтрибут("Quantity" , XMLСтрока(ТекущаяПозиция.Количество)); ЗаписьXML.ЗаписатьАтрибут("PriceWithDiscount", XMLСтрока(ТекущаяПозиция.ЦенаСоСкидками)); ЗаписьXML.ЗаписатьАтрибут("SumWithDiscount" , XMLСтрока(ТекущаяПозиция.Сумма)); ЗаписьXML.ЗаписатьАтрибут("DiscountSum" , XMLСтрока(ТекущаяПозиция.СуммаСкидок)); ЗаписьXML.ЗаписатьАтрибут("Department" , XMLСтрока(ТекущаяПозиция.НомерСекции)); вот с обычными аттрибутами (Name, Quantity) все вроде похоже и понятно. А если взять пример из АТОЛа, там у них есть такая вещь как AttrNumber - в 1С у аттрибутов XML нет такого понятия как номер аттрибута (((((( |
|||
12
igel1969
24.06.19
✎
14:13
|
(11) и я не могу понять как записать этот самый аттрибут с номером 1162
|
|||
13
Somebody
24.06.19
✎
14:15
|
это два разных подхода. или делается напрямую через драйвер, как в примере от Атола, или через xml-обертку, как в типовых 1с (извращение ИМХО). совместить ужа с ежом вряд ли получится.
|
|||
14
igel1969
24.06.19
✎
14:17
|
(13) а напрямую из 1с в драйвер минуя XML (т.е. через ECR) принято работать? кто-то так делал?
|
|||
15
NorthWind
24.06.19
✎
14:21
|
(14) может, имеет смысл посмотреть код обработки обслуживания для вашей ККМ?
|
|||
16
igel1969
24.06.19
✎
14:23
|
(15) смотрел вдоль и поперек - он же просто использует функцию драйвера ФискализироватьЧек и посылает туда данные, а сама функция в dll-ке зашита.
|
|||
17
Somebody
24.06.19
✎
14:24
|
(14) конечно, делал. что-то типа
ОбъектECR.Mode = 1; ОбъектECR.Password = Пароль; ОбъектECR.NewDocument(); ОбъектECR.CheckType = ТипЧека; ОбъектECR.CheckMode = 0; ОбъектECR.OpenCheck(); ОбъектECR.AttrNumber = 1203; ОбъектECR.AttrValue = ИННКассира; ОбъектECR.WriteAttribute(); ОбъектECR.BeginItem(); // что-то по конкретной позиции товара ОбъектECR.EndItem(); |
|||
18
igel1969
24.06.19
✎
14:28
|
(17) т.е. Вам пришлось полностью переписать функции работы с ККМ - открытие смены, X-отчет, Z-отчет и фискализация чека?
В принципе я готов, если так вообще делают. |
|||
19
Somebody
24.06.19
✎
14:41
|
(18) я встречал в инете подобные вещи, значит, делаю не один )). но, признаться, только для поддержания штанов в собственных древних самописках на 7.7.
|
|||
20
Garykom
гуру
24.06.19
✎
14:53
|
Да че там было переписывать то для 8-го драйвера?
Многие не только на нативный атол но еще и для штриха и прочих переписали. https://github.com/Garykom/xml2atol/blob/master/xml2atol.lpr Это готовая утилита командной строки на бесплатном Lazarus, умеющая XML по формату 1С в нативный драйвер атол 8-й версии. |
|||
21
Garykom
гуру
24.06.19
✎
14:58
|
(20)+ Понятно никаких тегов для маркировки нет и даже СНО коды вроде старые в том что выложено, но поправить никаких проблема за полчаса.
|
|||
22
igel1969
24.06.19
✎
15:01
|
(21) т.е. Ваш совет - допилить данную программу под свои нужды, скомпилировать ее и вызывать как внешний экзешник с параметрами командной строки из 1С для отправки чека на печать?
|
|||
23
igel1969
24.06.19
✎
15:02
|
(19) я прошу прощения, но очень устал и хочется сэкономить время, поэтому спрошу - а как Вы создавали объект драйвера?
Я пишу как в примере: Попытка ЗагрузитьВнешнююКомпоненту("FPRNM1C.dll"); ECR = Новый("AddIn.FprnM45"); исключение Предупреждение("Ошибка загрузки внешней компоненты FPRNM1C.dll"); ЗавершитьРаботуСистемы(); конецпопытки; У меня все-время выходит Ошибка загрузки внешней компоненты FPRNM1C.dll |
|||
24
igel1969
24.06.19
✎
15:04
|
(23) сработало, когда явно указал путь к dll-ке
|
|||
25
Somebody
24.06.19
✎
15:05
|
(24) да, а можно dll просто держать в каталоге с базой или в каталоге с запускаемым файлом, находит без проблем.
|
|||
26
Garykom
гуру
24.06.19
✎
15:07
|
(24) Не надо ничего там указывать, просто драйвер должен быть правильно поставлен инсталлятором а не копированием.
|
|||
27
Garykom
гуру
24.06.19
✎
15:08
|
(26)+
ECR = Новый("AddIn.FprnM45"); и все |
|||
28
Garykom
гуру
24.06.19
✎
15:10
|
(22) Никто не мешает переписать код на 1С 7.7 он будет абсолютно аналогичный.
Но лучше отсюда переписывать сразу под 10-й драйвер атол http://integration.atol.ru/api/?pascal#2308df468c |
|||
29
Garykom
гуру
24.06.19
✎
15:13
|
(27) Тьфу, вместо "Новый" надо "Новый COMОбъект" а в 7.7 просто СоздатьОбъект("AddIn.FprnM45")
Или fptr = СоздатьОбъект('AddIn.Fptr10'); для 10-го Это же обычный COM/ActiveX/OLE |
|||
30
igel1969
24.06.19
✎
15:16
|
(29) спасибо. я пока по этому пути попробую пойти. Извини, что нахамил ((((((((( просто я эту фразу (Наймите программиста") видел и в других темах тоже - некрасивая она.
|
|||
31
Garykom
гуру
24.06.19
✎
15:18
|
(30) Какой вопрос - такой ответ ))
|
|||
32
Trotter
24.06.19
✎
15:19
|
а почему все работают непосредственно с драйвером, а не с dll от 1с ?
|
|||
33
Garykom
гуру
24.06.19
✎
15:24
|
(32) Потому что оно глючное и медленно обновляется с херовой поддержкой.
|
|||
34
igel1969
24.06.19
✎
15:30
|
(33) отказался от dll - подключается нормально, окно свойств выводит. сейчас буду учиться открыть смену
|
|||
35
igel1969
24.06.19
✎
16:59
|
(33) (25) Я дико прошу прощения за назойливость - открываю и закрываю смену на ККМ. Она один раз успешно откроется и закроется, а потом очень долго (от 15 минут до почти часа) не хочет открываться. Потом вроде ничего не менял в программе - раз, и опять открылась смена. Что ей надо? Почему так? Что я не обнуляю? Уж пробовал снимать галочку "устройство включено" - ничего не изменилось. Включать-выключать ккм, перезаходить в 1С - ничего не помогает ((((
|
|||
36
igel1969
24.06.19
✎
17:00
|
(35) т.е. команда OpenSession как бы проходит, но впустую, не открывается смена
|
|||
37
igel1969
24.06.19
✎
17:04
|
(36) Ой, не надо, не напрягайтесь - разобрался
|
|||
38
tppmail
28.06.19
✎
22:16
|
День добрый. Проявлю может немного наглости, но можете дать код получения вот этого AAUAAALBHl5BRGdvcFNx из того, что считывает сканер. Спасибо)
|
|||
39
Garykom
гуру
28.06.19
✎
22:30
|
(38) От типа продукции/маркировки/кода зависит.
Что сканируете то табачка/лекарства или что еще? |
|||
40
TaSo
17.07.19
✎
19:40
|
(37) Подскажете, а как вы преобразовали код маркировки в строку вида: AAUAAALBHl5BRGdvcFNx?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |