19.05.2019 11:22
Occul
 
С первого июля при расчетах между юрлицами в чеке указываются адрес и ИНН покупателя, теги 1227 и 1228. Штрих говорит что поддержка этих тегов уже реализована, закладка "ФН"-"Теги ОФД". Кто может подтвердить?
06.06.2019 15:20
Steplercool
 
Тоже очень интересует этот вопрос.
06.06.2019 15:32
student
 
Цитата:
Occul теги 1227 и 1228. Штрих говорит что поддержка этих тегов уже реализована, закладка "ФН"-"Теги ОФД". Кто может подтвердить?
подтверждаю, реализовано :) не знаю как на ранних прошивках - не пробовал, а на апрельской - 29/04/2019 - штрих-лайт мы (укмвин) уже печатаем при необходимости и в офд все уходит правильно, на сейчас у нас (укмвин) только сп-шки и спарки не умеют этого пока делать :( атол\штрих\пирит - без проблем

пы сы на штрихах\атолах\пиритах реализовано все в т.ч. и передача гтд и кода страны и акциза - все проверено у нас и все работает как заявлено

Правка: student, 06.06.2019 15:35
23.06.2019 17:37
runuts
 
Цитата:
student уже печатаем при необходимости и в офд все уходит правильно
поделитесь пожалуйста, если есть, куском кода, как отправлять этот тэг через метода драйвера (DrvFR.dll)
23.06.2019 18:55
student
 
Цитата:
runuts как отправлять этот тэг через метода драйвера
все есть в документации на драйвер, в данном случае используется FNSendTLV (Передать структуру TLV в ФН) с заполненной структурой TLVData (Данные документа ФН в формате TLV (согласно документу ФНС «Форматы фискальных документов»). Например, чтобы передать тэг 1008 «адрес покупателя» со значением 12345678 следует записать в TLVData следующую последовательность байт: F0h 03h 08h 00h 31h 32h 33h 34h 35h 36h 37h 38h, где F0h03h – код тэга, 08h00h – длина сообщения. )
23.06.2019 20:55
FinSoft
 
Я бы попробовал после OpenCheck сделать что-то подобное:

Код:
         if SELF.NameCust<>''   !наименование покупателя
            SELF.Contr{'password'} = SELF.Pswd
            SELF.Contr{'TagType'}  = 7
            SELF.Contr{'TagNumber'}  = 1227
            SELF.Contr{'TagValueStr'}=SELF.NameCust
            SELF.Contr{'FNSendTag()'}
         end
         if SELF.INNCust<>''   !инн покупателя
            SELF.Contr{'password'} = SELF.Pswd
            SELF.Contr{'TagType'}  = 7
            SELF.Contr{'TagNumber'}  = 1228
            SELF.Contr{'TagValueStr'}=SELF.INNCust
            SELF.Contr{'FNSendTag()'}
         end
Сам не пробовал, жарко пока... Представители Штриха в открытом доступе сообщили, что FNSendTag поддерживает отправку этих тэгов. Когда народ завалил их техподдержку письмами с предложением дать разъяснения на этот счет... Прошивку и драйвер надо свежие поставить.

ПыСы. Документация у Штриха и Атола - это глоссарий того, что они вроде как могут. Без примеров и практически без комментариев. С разными ошибками и нестыковками. Разобраться по ней, что и как работает, не реально. Раньше помогали примеры, которые шли в комплекте с драйверами. У Атола был довольно подробный файлик с примерами на vbscript. Сейчас эти примеры не обновляются. Причем даже официальная техподдержка порой пишет, ой мы не знаем, пойдем попробуем у себя так сделать...
Приходится гуглить форумы, читать между строк и методом проб. Когда совсем тупик, напрягать клиентов, чтобы они долбили техподдержку производителей ккм.
Это, конечно, не системный подход. Затраты для того, чтобы понять, как написать три-четыре строчки кода, просто неадекватные. Может, со временем, все устаканится. Когда, например, появится кто-то в здравом уме и скажет, Владимир Владимирович, какого х-я бардак развели, давайте просто запретим юриками наличные платежи...
24.06.2019 08:30
student
 
Цитата:
FinSoft Документация у Штриха и Атола - это глоссарий того, что они вроде как могут. Без примеров и практически без комментариев. С разными ошибками и нестыковками. Разобраться по ней, что и как работает, не реально
зря ты так :) нормальная дока для программистов - все есть, все описано с точки зрения именно драйвера (для атола 10-го в онлайне и примеры есть для различных языков программирования), не следует только забывать что это описание драйвера, т.е надстройки на протоколом и для понимания как оно реально должно работать надо смотреть именно там, тогда и "левые" примеры не понадобятся - просто смешно иногда смотреть как люди пытаются что то сделать не понимая сути того что делают ...
24.06.2019 10:40
FinSoft
 
Олег, ты не поленился и скопипастил текст из доки в ответ на вопрос автора темы. Как ты думаешь, он что-нибудь понял?
Мы не в вакууме живем, а используем определенные языки программирования. Как я должен понимать этот текст? Могу ли я сесть и написать работающий код?

Вот первое, что приходит в голову. Почему ты используешь FNSendTLV, а не FNSendTag или FNSendTagOperation? И чем они отличаются? Ок, я понимаю, что FNSendTLV это базовый метод, который транслируется в соответствующую команду протокола обмена с ккм. Его сделали, как некий низкоуровневый интерфейс, а затем стали надстраивать FNSendTag и FNSendTagOperation. А FNSendTag и FNSendTagOperation в каких случаях применять? Чтобы узнать, с какими тэгами они работают, я должен в интернете искать письмо от разработчиков с разъяснениями, которое они выложили, когда их замучили вопросами.

Теперь по FNSendTLV. Как перевести 1008 в F0h03h. 08h00h - это длина с учетом кода тэга или без. Где алгоритм перевода символов в последовательность байт. То есть я должен все это где-то в других местах вычитывать, потом думать, как это в языке программирования будет.

Не знаю, может я слишком много хочу от разработчиков ккм...
24.06.2019 10:49
student
 
Цитата:
FinSoft ты не поленился и скопипастил текст из доки в ответ на вопрос автора темы. Как ты думаешь, он что-нибудь понял?
вопрос спорный - возможно он просто не знал что именно ему надо и я выдал направление поиска
насчет
Цитата:
FinSoft FNSendTLV, а не FNSendTag или FNSendTagOperation
потому что одно надстройка над другим, а чем ближе к нижнему уровню тем оно обычно стабильнее работает
Цитата:
FinSoft То есть я должен все это где-то в других местах вычитывать
как я и написал выше - первоисточник при любом раскладе - протокол в нем все есть :)
насчет остального
Цитата:
FinSoft алгоритм перевода символов в последовательность байт
стандартная операция для тех что работает с железом - ничего нового :)
24.06.2019 11:29
FinSoft
 
Если человек много лет работает с железом, то ему вообще все эти opos драйвера должны быть параллельны. Еще проще сделать объектную обертку над протоколом обмена.

Тут же вопрос в том, что есть некий высокоуровневый opos драйвер, который, по большому счету, не предназначен для профессиональных разработчиков кассового ПО. И по их документации невозможно написать работающий код. У меня есть стойкое мнение, что у разработчиков (штрихи и атолы в частности) разбаллансировался производственный процесс под влиянием спускаемых сверху требований, которые порой сложно понять с точки зрения здравого смысла. С одной стороны это означает, что процесс был такой неустойчивый и недостаточно продуманный, с другой им можно посочувствовать и выразить надежду, что рано или поздно они смогут обеспечить необходимый уровень качества и технической поддержки. Денег там много крутится в конце концов...

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.