Штрих-М, ФФД 1.2 не передаются теги 1227, 1228 . 1с 7.7
Здравствуйте. Кассовый аппарат Штрих-лайт подключен к 1с 7.7 через DrvFr.dll
отправляем теги 1227(наименование клиента), 1228 (ИНН клиента)
для прошивки ФФД 1.05 все работает.
для ФФД 1.2 выдает ошибку 94-некорректная операция
пробовала отправить через FNSendTagOperation(),та же ошибка.
Кто сталкивался, подскажите как исправить?
отправляем теги 1227(наименование клиента), 1228 (ИНН клиента)
ЭККА = СоздатьОбъекет("AddIn.DrvFR");
...
ЭККА .TagNumber = 1227:
ЭККА .TagType = 7;
ЭККА .TagValueStr = СокрЛП(Клиент.ПолноеНаименование);
ЭККА .FNSendTag();
для прошивки ФФД 1.05 все работает.
для ФФД 1.2 выдает ошибку 94-некорректная операция
пробовала отправить через FNSendTagOperation(),та же ошибка.
Кто сталкивался, подскажите как исправить?
Найденные решения
В итоге печать Покупателя в чеке вывожу строкой. Оставлю рабочий вариант, вдруг кому пригодится
Если СокрЛП(Клиент)<>"" тогда
врЭККА.TagNumber=1256; //составной тег - данные клиента
врЭККА.Password = ЭККА.Пароль;
TagID = врЭККА.FNBeginSTLVTag();
врЭККА.TagID = TagID;
врЭККА.TagNumber=1227;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ПолноеНаименование);
врЭККА.FNAddTag();
врЭККА.StringForPrinting ="Покупатель "+ СокрЛП(Клиент.ПолноеНаименование);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
Если СокрЛП(Клиент.ИНН)<>"" тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1228;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ИНН);
врЭККА.FNAddTag();
врЭККА.StringForPrinting = "ИНН покупателя "+СокрЛП(Клиент.ИНН);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
КонецЕсли;
Если ПустоеЗначение(Адрес)<>1 тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1254;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Адрес.НаименованиеДляДокументов);
врЭККА.FNAddTag();
КонецЕсли;
КонецЕсли;
Если СокрЛП(Клиент)<>"" тогда
врЭККА.TagNumber=1256; //составной тег - данные клиента
врЭККА.Password = ЭККА.Пароль;
TagID = врЭККА.FNBeginSTLVTag();
врЭККА.TagID = TagID;
врЭККА.TagNumber=1227;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ПолноеНаименование);
врЭККА.FNAddTag();
врЭККА.StringForPrinting ="Покупатель "+ СокрЛП(Клиент.ПолноеНаименование);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
Если СокрЛП(Клиент.ИНН)<>"" тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1228;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ИНН);
врЭККА.FNAddTag();
врЭККА.StringForPrinting = "ИНН покупателя "+СокрЛП(Клиент.ИНН);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
КонецЕсли;
Если ПустоеЗначение(Адрес)<>1 тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1254;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Адрес.НаименованиеДляДокументов);
врЭККА.FNAddTag();
КонецЕсли;
КонецЕсли;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
мТЗЗначенийВнутреннихТегов = Новый ТаблицаЗначений;
мТЗЗначенийВнутреннихТегов.Колонки.Добавить("НомерТега");
мТЗЗначенийВнутреннихТегов.Колонки.Добавить("ТипТега");
мТЗЗначенийВнутреннихТегов.Колонки.Добавить("ЗначениеТега");
//*******************************************************
мНомерСоставногоТега = 1256; //Реквизиты покупателя
мТЗЗначенийВнутреннихТегов.Очистить();
Если ЗначениеЗаполнено(СокрЛП(ПараметрыККТ.ИННПокупателя)) Тогда
мСтрокаТЗТега = мТЗЗначенийВнутреннихТегов.Добавить();
мСтрокаТЗТега.НомерТега = 1228;// ИНН покупателя
мСтрокаТЗТега.ТипТега = 7; //тип строка
мСтрокаТЗТега.ЗначениеТега = СокрЛП(ПараметрыККТ.ИННПокупателя);
КонецЕсли;
Если ЗначениеЗаполнено(СокрЛП(ПараметрыККТ.НаименованиеПокупателя)) Тогда
мСтрокаТЗТега = мТЗЗначенийВнутреннихТегов.Добавить();
мСтрокаТЗТега.НомерТега = 1227;// Наименование покупателя
мСтрокаТЗТега.ТипТега = 7; //тип строка
мСтрокаТЗТега.ЗначениеТега = СокрЛП(ПараметрыККТ.НаименованиеПокупателя);
КонецЕсли;
Если ЗначениеЗаполнено(СокрЛП(ПараметрыККТ.АдресПокупателя)) Тогда
мСтрокаТЗТега = мТЗЗначенийВнутреннихТегов.Добавить();
мСтрокаТЗТега.НомерТега = 1254;// адрес покупателя
мСтрокаТЗТега.ТипТега = 7; //тип строка
мСтрокаТЗТега.ЗначениеТега = СокрЛП(ПараметрыККТ.АдресПокупателя);
КонецЕсли;
Если мТЗЗначенийВнутреннихТегов.Количество() > 0 Тогда
ЗаписатьSTLVТег(Объект, Пароль, мНомерСоставногоТега, мТЗЗначенийВнутреннихТегов, Ложь, Результат);
КонецЕсли;
//*************************************
Процедура ЗаписатьSTLVТег(Объект, Пароль, мНомерСоставногоТега, мТЗЗначенийВнутреннихТегов, мЭтоОперация, Результат)
Результат = "";
Объект.Password = Пароль;
Объект.TagNumber = мНомерСоставногоТега;
TagID = Объект.FNBeginSTLVTag();//начало ввода составного тега
Для Каждого СтрокаТЗ Из мТЗЗначенийВнутреннихТегов Цикл
Объект.TagID = TagID;
Объект.TagNumber = СтрокаТЗ.НомерТега;
Объект.TagType = СтрокаТЗ.ТипТега;
Если СтрокаТЗ.ТипТега = 0 Тогда// ttByte
Объект.TagValueInt = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 1 Тогда// ttUint16
Объект.TagValueInt = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 2 Тогда// ttUint32
Объект.TagValueInt = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 3 Тогда// ttVLN
Объект.TagValueBin = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 4 Тогда// ttFVLN
Объект.TagValueFVLN = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 5 Тогда// ttBitMask
Объект.TagValueBin = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 6 Тогда// ttUnixTime
Объект.TagValueDateTime = СтрокаТЗ.ЗначениеТега;
ИначеЕсли СтрокаТЗ.ТипТега = 7 Тогда// ttString
Объект.TagValueStr = СтрокаТЗ.ЗначениеТега;
КонецЕсли;
Объект.FNAddTag();
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
Сообщить("Ошибка добавления тега: " + СокрЛП(СтрокаТЗ.НомерТега) + " - " + Результат);
КонецЕсли;
КонецЦикла;
//если это составной тег строки чека то ЭтоОперация = Истина, если В общие реквизиты ЭтоОперация = Ложь
Если мЭтоОперация Тогда
Объект.FNSendSTLVTagOperation();
Иначе
Объект.FNSendSTLVTag();
КонецЕсли;
Если Объект.ResultCode <> 0 Тогда
Результат = Объект.ResultCodeDescription;
Сообщить("Ошибка записи STLV тега: " + СокрЛП(мНомерСоставногоТега) + " - " + Результат);
КонецЕсли;
КонецПроцедуры
Показать
(5)Вот нашел на просторах интернета: https://kassaofd.ru/blog/format-kassovogo-cheka-2021
Там есть информация, что в электронной версии чека эти теги обязательны, а в бумажном носителе - на усмотрение продавца. Но все нужно перечитывать, т.к иной раз даже налоговики сами бывают "не в теме"
Там есть информация, что в электронной версии чека эти теги обязательны, а в бумажном носителе - на усмотрение продавца. Но все нужно перечитывать, т.к иной раз даже налоговики сами бывают "не в теме"
В итоге печать Покупателя в чеке вывожу строкой. Оставлю рабочий вариант, вдруг кому пригодится
Если СокрЛП(Клиент)<>"" тогда
врЭККА.TagNumber=1256; //составной тег - данные клиента
врЭККА.Password = ЭККА.Пароль;
TagID = врЭККА.FNBeginSTLVTag();
врЭККА.TagID = TagID;
врЭККА.TagNumber=1227;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ПолноеНаименование);
врЭККА.FNAddTag();
врЭККА.StringForPrinting ="Покупатель "+ СокрЛП(Клиент.ПолноеНаименование);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
Если СокрЛП(Клиент.ИНН)<>"" тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1228;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ИНН);
врЭККА.FNAddTag();
врЭККА.StringForPrinting = "ИНН покупателя "+СокрЛП(Клиент.ИНН);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
КонецЕсли;
Если ПустоеЗначение(Адрес)<>1 тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1254;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Адрес.НаименованиеДляДокументов);
врЭККА.FNAddTag();
КонецЕсли;
КонецЕсли;
Если СокрЛП(Клиент)<>"" тогда
врЭККА.TagNumber=1256; //составной тег - данные клиента
врЭККА.Password = ЭККА.Пароль;
TagID = врЭККА.FNBeginSTLVTag();
врЭККА.TagID = TagID;
врЭККА.TagNumber=1227;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ПолноеНаименование);
врЭККА.FNAddTag();
врЭККА.StringForPrinting ="Покупатель "+ СокрЛП(Клиент.ПолноеНаименование);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
Если СокрЛП(Клиент.ИНН)<>"" тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1228;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Клиент.ИНН);
врЭККА.FNAddTag();
врЭККА.StringForPrinting = "ИНН покупателя "+СокрЛП(Клиент.ИНН);
врЭККА.PrintString();
врЭККА.StringForPrinting="";
КонецЕсли;
Если ПустоеЗначение(Адрес)<>1 тогда
врЭККА.TagID = TagID;
врЭККА.TagNumber=1254;
врЭККА.TagType =7;
врЭККА.TagValueStr = СокрЛП(Адрес.НаименованиеДляДокументов);
врЭККА.FNAddTag();
КонецЕсли;
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот