|   |   | 
| 
 | Тэг 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?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |