Обработка позволяет подключать ФР как по TCP, так и через COM.
Поддерживается работа двух компонент: «AddIn.SMDrvFR1C20» и «AddIn.SMDrvFR1C». Соответственно обе компоненты должны быть зарегистрированы в системе.
Файлики SMDrvFR1CLib.dll и SMDrvFR1CLib20.dll (идут в поставке с драйверами) должны лежать в корне диска С. Знаю что коряво. Пока так.
В обработке необходимо указать, через какую из компонент будет работать ФР. Поддержка ФЗ-54 реализована только в интерфейсе AddIn.SMDrvFR1C20, описание интерфейса можно найти на сайте ИТС http://its.1c.ru/db/metod8dev#content:4829:hdoc:checkpackage
В рознице при печати чека добавил вот такой код:
Обработка = Неопределено; Объект = Неопределено; РезультатПолученияДрайвера = ПолучитьСерверТО().ПолучитьОбъектДрайвера(ФР, Обработка, Объект); Если ТипЗнч(Объект.Драйвер) = тип("AddIn.SMDrvFR1C20") тогда ОшибкаТО = ПечатьЧекаККМОФД(ФР, НомерЧекаККМ, НомерСменыККМ, ТаблицаТоваров, СуммаНал, СуммаБезНал, ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат); ИНаче ОшибкаТО = ПечатьЧекаККМ(ФР, НомерЧекаККМ, НомерСменыККМ, ТаблицаТоваров, СуммаНал, СуммаБезНал, ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат); КонецЕсли;
В зависимости от того, через какую компоненту работает драйвер, печатать чеки нужно по-разному. В старой версии схема примерно такая:
1.ОткрытьЧек
2.ПечатьСтрок (причем каждая строка печатается построчно)
3.Закрыть чек.
4 Печать слипа, если используется ЕГАИС
В новой же версии печать осуществляется через одну процедуру драйвера :
СформироватьЧек(Объект.ИДУстройства, Кассир, Электронно, ДанныеЧека, НомерЧека, НомерСмены, ФискальныйПризнак, АдресСайтаПроверки);
Параметр «ДанныеЧека» это XML текст определенной структуры, которая описана по ссылке выше на сайте ИТС
<?xml version="1.0" encoding="UTF-8"?> <CheckPackage> <Parameters PaymentType="1" SenderEmail="info@1c.ru" CustomerEmail="alex2000@mail.ru" CustomerPhone="" AgentCompensation="" AgentPhone=""/> <Positions> <FiscalString Name="Макароны" Quantity="1" Price="16.75" Amount="16.75" Tax="10"/> <FiscalString Name="Томатный сок" Quantity="1" Price="200" Amount="200" Tax="18"/> <FiscalString Name="Алкоголь Шампрео 0.7" Quantity="1" Price="455" Amount="455" Tax="18"/> <TextString Text="Дисконтная карта: 00002345"/> <Barcode BarcodeType="EAN13" Barcode="2000021262157"/> </Positions> <Payments Cash="471.75" CashLessType1="0" CashLessType2="0" CashLessType3="200"/> </CheckPackage>
В обработке есть процедура, которая формирует XML такой структуры.
Привожу кусок кода из Розницы, который печатает чек:
Первые 4 строки это код из модуля документа, остальные фунции прописал в обработке ТоСервер.
ПараметрыККТ = Неопределено; ВыходныеПараметрыФискализации = Неопределено; ВходныеПараметрыИзРеальногоЧека = СформироватьПараметрыИзЧека(Ссылка); Результат = ПолучитьСерверТО().ФискализироватьЧек(Объект,ПараметрыККТ,ВходныеПараметрыИзРеальногоЧека ,ВыходныеПараметрыФискализации); Функция ПараметрыФискальнойСтрокиЧека() Экспорт; ПараметрыСтроки = Новый Структура(); ПараметрыСтроки.Вставить("ФискальнаяСтрока"); // Обязательные поля ПараметрыСтроки.Вставить("Наименование"); // Наимновнование предмета расчета ПараметрыСтроки.Вставить("Количество" , 0); // Количество предмета расчета ПараметрыСтроки.Вставить("Цена" , 0); // Цена без учета скидок и наценок ПараметрыСтроки.Вставить("Сумма" , 0); // Cтоимость предмета расчета с учетом скидок и наценок ПараметрыСтроки.Вставить("НомерСекции" , 0); // Номер cекции ФР (для совместимости) ПараметрыСтроки.Вставить("СтавкаНДС" , 0); // Cтавка НДС в % ПараметрыСтроки.Вставить("Штрихкод"); // Штрихкод // Дополнительные реквизиты начиная с ФФД 1.1 ПараметрыСтроки.Вставить("КодПризнакаСпособаРасчета"); // Код признака способа расчета (Таблица 25 документа ФФД) ПараметрыСтроки.Вставить("КодПризнакаПредметаРасчета"); // Код признака предмета расчета (Таблица 25 документа ФФД) ПараметрыСтроки.Вставить("ЕдиницаИзмеренияПредметаРасчета"); // Код признака предмета расчета ПараметрыСтроки.Вставить("КодТоварнойНоменклатуры"); // Код товарной номенклатуры Возврат ПараметрыСтроки; КонецФункции Функция СформироватьПараметрыИзЧека(Чек) ОбщиеПараметры = ПараметрыОперацииФискализацииЧека(); // Параметры установлены по умолчанию. //ОбщиеПараметры.ТипРасчета = ТипРасчета; Если ВидОперации = Перечисления.ВидыОперацийЧекККМ.Продажа Тогда ОбщиеПараметры.ТипРасчета = 1; Иначе ОбщиеПараметры.ТипРасчета = 2; КонецЕсли; ОбщиеПараметры.Электронно = Ложь; ОбщиеПараметры.ПокупательEmail = Неопределено; ОбщиеПараметры.ПокупательНомер = Неопределено; // Параметры необходимые для чека ЕНВД на принтере чеков ОбщиеПараметры.Кассир = "Кассир"; //ОбщиеПараметры.КодСистемыНалогообложения = КодСистемыНалогообложения; Было ОбщиеПараметры.КодСистемыНалогообложения = 0; ///????????????????????????????????????????????????? ОбщиеПараметры.ОрганизацияНазвание = чек.КассаККМ.Организация.Наименование; ОбщиеПараметры.ОрганизацияИНН = чек.КассаККМ.Организация.ИНН; ОбщиеПараметры.ОрганизацияКПП = чек.КассаККМ.Организация.КПП; ОбщиеПараметры.НомерКассы = "00001"; ОбщиеПараметры.НомерЧека = "1"; ОбщиеПараметры.НомерСмены = "1"; Для Каждого ТекСтрокаТовары из Чек.Товары Цикл СтрокаПозицииЧека = ПараметрыФискальнойСтрокиЧека(); СтрокаПозицииЧека.Наименование = ТекСтрокаТовары.Номенклатура.Наименование; СтрокаПозицииЧека.Количество = ТекСтрокаТовары.Количество; СтрокаПозицииЧека.Цена = ТекСтрокаТовары.Цена; СтрокаПозицииЧека.Сумма = ТекСтрокаТовары.Сумма; СтрокаПозицииЧека.НомерСекции = 1; //????????????????????????????? СтрокаПозицииЧека.СтавкаНДС = 18; ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаПозицииЧека); КонецЦикла; Для Каждого ТекСтрокаОплаты из Чек.Оплата Цикл СтрокаОплаты = Новый Структура(); Если ТекСтрокаОплаты.ВидОплаты = Справочники.ВидыОплатЧекаККМ.Наличные тогда СтрокаОплаты.Вставить("ТипОплаты", 0); //???????????????????????????????? Иначе СтрокаОплаты.Вставить("ТипОплаты", 1); КонецЕсли; СтрокаОплаты.Вставить("Сумма", ТекСтрокаОплаты.сумма); ОбщиеПараметры.ТаблицаОплат.Добавить(СтрокаОплаты); КонецЦикла; Возврат ОбщиеПараметры; КонецФункции Функция ПараметрыОперацииФискализацииЧека() Экспорт; ПараметрыЧека = Новый Структура(); // Общие реквизиты для всех типов оборудования. ПараметрыЧека.Вставить("ДокументОснование" , Неопределено); //ПараметрыЧека.Вставить("ТипРасчета" , ПредопределенноеЗначение("Перечисление.ТипыРасчетаДенежнымиСредствами.ПриходДенежныхСредств")); ПараметрыЧека.Вставить("ТипРасчета" , 0 ); ПараметрыЧека.Вставить("Кассир" , Неопределено); // Должность и фамилия лица, осуществившего расчет с покупателем (клиентом), оформившего кассовый чек. ПараметрыЧека.Вставить("КассирИНН" , Неопределено); // Идентификационный номер налогоплательщика кассира, при наличии. ПараметрыЧека.Вставить("Электронно" , Ложь); // Чек будет предоставлен в элетронной форме, без печати. ПараметрыЧека.Вставить("Отправляет1СSMS" , Ложь); // SMS отправляет средствами 1C. ПараметрыЧека.Вставить("Отправляет1СEmail" , Ложь); // Email отправляет средствами 1C. ПараметрыЧека.Вставить("ОрганизацияНазвание" , Неопределено); ПараметрыЧека.Вставить("ОрганизацияИНН" , Неопределено); // ИНН организации (Для чека ЕНВД) ПараметрыЧека.Вставить("ОрганизацияКПП" , Неопределено); // Название организации (Для чека ЕНВД) ПараметрыЧека.Вставить("АдресМагазина" , Неопределено); // Адрес магазина (Для чека ЕНВД) ПараметрыЧека.Вставить("НаименованиеМагазина", Неопределено); // Наименование магазина // Параметры необходимые для ФР ПараметрыЧека.Вставить("СерийныйНомер" , Неопределено); // Заводской номер ККМ // Параметры необходимые для чека ЕНВД на принтере чеков ПараметрыЧека.Вставить("НомерКассы" , Неопределено); ПараметрыЧека.Вставить("НомерЧека" , Неопределено); ПараметрыЧека.Вставить("НомерСмены" , Неопределено); ПараметрыЧека.Вставить("ДатаВремя" , ТекущаяДата()); ПараметрыЧека.Вставить("ТекстШапки" , НСтр("ru='ДОБРО ПОЖАЛОВАТЬ!'")); ПараметрыЧека.Вставить("ТекстПодвала" , НСтр("ru='СПАСИБО ЗА ПОКУПКУ!'")); // Параметры для ККТ по ФЗ-54 ПараметрыЧека.Вставить("КодСистемыНалогообложения", Неопределено); ПараметрыЧека.Вставить("ОтправительEmail" , Неопределено); ПараметрыЧека.Вставить("ПокупательEmail" , Неопределено); ПараметрыЧека.Вставить("ПокупательНомер" , Неопределено); ПараметрыЧека.Вставить("ВознагражденияАгента" , Неопределено); // AgentCompensation ПараметрыЧека.Вставить("ТелефонПлатежногоАгента" , Неопределено); // AgentPhone ПараметрыЧека.Вставить("ТелефонОператораПоПриемуПлатежей", Неопределено); // ReceivePaymentsOperatorPhone ПараметрыЧека.Вставить("ТелефонОператораПеревода" , Неопределено); // MoneyTransferOperatorPhone ПараметрыЧека.Вставить("ТелефонПоставщика" , Неопределено); ПараметрыЧека.Вставить("АдресОператораПеревода" , Неопределено); // MoneyTransferOperatorAddress ПараметрыЧека.Вставить("ИННОператораПеревода" , Неопределено); // MoneyTransferOperatorVATIN ПараметрыЧека.Вставить("НаименованиеОператораПеревода" , Неопределено); // MoneyTransferOperatorName ПараметрыЧека.Вставить("ОперацияПлатежногоАгента" , Неопределено); ПараметрыЧека.Вставить("ТелефонБанковскогоАгента" , Неопределено); // BankAgentPhone ПараметрыЧека.Вставить("ТелефонБанковскогоСубагента" , Неопределено); // BankSubagentPhone ПараметрыЧека.Вставить("ОперацияБанковскогоАгента" , Неопределено); // BankAgentOperation ПараметрыЧека.Вставить("ОперацияБанковскогоСубагента" , Неопределено); // BankSubagentOperation ПараметрыЧека.Вставить("ВознагражденияБанковскогоАгента" , Неопределено); // BankAgentCompensation // Позиции чека для фискализации ПараметрыЧека.Вставить("ПозицииЧека" , Новый Массив()); // Массив элементов "Структура" ПараметрыЧека.Вставить("ТаблицаОплат" , Новый Массив()); // Массив элементов "Структура" Возврат ПараметрыЧека; КонецФункции
Функция ПараметрыФискальногоНакопителяОбщие() Экспорт Параметры = Новый Структура(); Параметры.Вставить("РегистрационныйНомерККТ"); Параметры.Вставить("ОрганизацияНазвание"); Параметры.Вставить("ОрганизацияИНН"); Параметры.Вставить("АдресУстановкиККТ"); Параметры.Вставить("КодыСистемыНалогообложения"); Параметры.Вставить("ПризнакАвтономногоРежима" , Ложь); Параметры.Вставить("ПризнакАвтоматическогоРежима" , Ложь); Параметры.Вставить("НомерАвтоматаДляАвтоматическогоРежима"); Параметры.Вставить("ПризнакШифрованиеДанных" , Ложь); Параметры.Вставить("ПризнакРасчетовЗаУслуги" , Ложь); Параметры.Вставить("ПризнакФормированияТолькоБСО" , Ложь); Параметры.Вставить("ПризнакРасчетовТолькоВИнтернет", Ложь); Параметры.Вставить("ОрганизацияОФДИНН"); Параметры.Вставить("ОрганизацияОФДНазвание"); Возврат Параметры; КонецФункции Функция ПараметрыРегистрацииККТ() Экспорт Параметры = ПараметрыФискальногоНакопителяОбщие(); Параметры.Вставить("ЗаводскойНомерККТ"); Параметры.Вставить("ПризнакФискализации"); Параметры.Вставить("ЗаводскойНомерФН"); Параметры.Вставить("НомерДокументаФискализации"); Параметры.Вставить("ДатаВремяФискализации"); Параметры.Вставить("ВерсияФФДККТ"); Параметры.Вставить("ВерсияФФДФН"); Возврат Параметры; КонецФункции Функция ПолучитьТаблицуПараметрыИзXMLПакетаККТ(Данные, ИдентификаторУстройства = Неопределено) Экспорт ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(Данные); ЧтениеXML.ПерейтиКСодержимому(); Параметры = ПараметрыРегистрацииККТ(); Если ЧтениеXML.Имя = "Parameters" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Параметры.РегистрационныйНомерККТ = СокрЛП(ЧтениеXML.ЗначениеАтрибута("KKTNumber")); Параметры.ОрганизацияНазвание = ЧтениеXML.ЗначениеАтрибута("OrganizationName"); Параметры.ОрганизацияИНН = СокрЛП(ЧтениеXML.ЗначениеАтрибута("VATIN")); Параметры.АдресУстановкиККТ = ЧтениеXML.ЗначениеАтрибута("AddressSettle"); Параметры.КодыСистемыНалогообложения = ЧтениеXML.ЗначениеАтрибута("TaxVariant"); Если ПустаяСтрока(Параметры.КодыСистемыНалогообложения) Тогда Параметры.КодыСистемыНалогообложения = ЧтениеXML.ЗначениеАтрибута("TaxVarinat"); КонецЕсли; Параметры.ПризнакАвтономногоРежима = ВРег(ЧтениеXML.ЗначениеАтрибута("OfflineMode")) = "TRUE"; Параметры.ПризнакАвтоматическогоРежима = ВРег(ЧтениеXML.ЗначениеАтрибута("AutomaticMode")) = "TRUE"; Параметры.НомерАвтоматаДляАвтоматическогоРежима = ЧтениеXML.ЗначениеАтрибута("AutomaticNumber"); Параметры.ПризнакРасчетовЗаУслуги = ВРег(ЧтениеXML.ЗначениеАтрибута("ServiceSign")) = "TRUE"; Параметры.ПризнакФормированияТолькоБСО = ВРег(ЧтениеXML.ЗначениеАтрибута("BSOSing")) = "TRUE"; Параметры.ПризнакРасчетовТолькоВИнтернет = ВРег(ЧтениеXML.ЗначениеАтрибута("CalcOnlineSign")) = "TRUE"; Параметры.ПризнакШифрованиеДанных = ВРег(ЧтениеXML.ЗначениеАтрибута("DataEncryption")) = "TRUE"; Параметры.ОрганизацияОФДИНН = СокрЛП(ЧтениеXML.ЗначениеАтрибута("OFDVATIN")); Параметры.ОрганизацияОФДНазвание = ЧтениеXML.ЗначениеАтрибута("OFDOrganizationName"); Параметры.ЗаводскойНомерККТ = СокрЛП(ЧтениеXML.ЗначениеАтрибута("KKTSerialNumber")); Параметры.ПризнакФискализации = ВРег(ЧтениеXML.ЗначениеАтрибута("Fiscal")) = "TRUE"; Параметры.ЗаводскойНомерФН = СокрЛП(ЧтениеXML.ЗначениеАтрибута("FNSerialNumber")); Параметры.НомерДокументаФискализации = ЧтениеXML.ЗначениеАтрибута("DocumentNumber"); Параметры.ДатаВремяФискализации = ЧтениеXML.ЗначениеАтрибута("DateTime"); Параметры.ВерсияФФДФН = ЧтениеXML.ЗначениеАтрибута("FFDVersionFN"); Параметры.ВерсияФФДККТ = ЧтениеXML.ЗначениеАтрибута("FFDVersionKKT"); КонецЕсли; //Если НЕ ПустаяСтрока(ИдентификаторУстройства) Тогда // СохранитьПараметрыРегистрацииУстройства(ИдентификаторУстройства, Параметры); //КонецЕсли; Возврат Параметры; КонецФункции Функция ПолучитьПараметрыККТ(Объект, Параметры, ВыходныеПараметры) Экспорт ПараметрыККТ = ""; Попытка Ответ = Объект.Драйвер.ПолучитьПараметрыККТ(Объект.ИДУстройства, ПараметрыККТ); Если НЕ Ответ Тогда //Результат = Ложь; //ВыходныеПараметры.Очистить(); //ВыходныеПараметры.Добавить(999); //ВыходныеПараметры.Добавить(""); //Объект.Драйвер.ПолучитьОшибку(ВыходныеПараметры[1]); Иначе // Заполнение выходных параметров. ВыходныеПараметры = ПолучитьТаблицуПараметрыИзXMLПакетаККТ(ПараметрыККТ); КонецЕсли; Исключение Результат = Ложь; ВыходныеПараметры.Очистить(); ВыходныеПараметры.Добавить(999); ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.ПолучитьПараметрыККТ>.'") + Символы.ПС + ОписаниеОшибки()); КонецПопытки; Возврат Результат; КонецФункции Функция ФискализироватьЧек(Идентификатор, ПараметрыККТ, ВходныеПараметры, ВыходныеПараметры) Экспорт Обработка = Неопределено; Объект = Неопределено; Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект); Если ЗначениеЗаполнено(Объект.ОписаниеОшибки) Тогда Результат = мОшибкаНеизвестно; Иначе Результат = мНетОшибки; КонецЕсли; ВыходныеПараметры = новый Массив; ОбщиеПараметры = ВходныеПараметры; ФискальныйПризнак = ""; АдресСайтаПроверки = ""; //Пока так Параметры = ""; ПараметрыККТ = Неопределено; ПолучитьПараметрыККТ(Объект,Параметры,ПараметрыККТ); // ПараметрыРегистрации = ПараметрыККТ; РегистрационныйНомерККТ = ?(ПараметрыРегистрации.Свойство("РегистрационныйНомерККТ"), ПараметрыРегистрации.РегистрационныйНомерККТ, ""); Кассир = ОбщиеПараметры.Кассир; Электронно = ОбщиеПараметры.Электронно; Отправляет1СSMS = ОбщиеПараметры.Отправляет1СSMS; Отправляет1СEmail = ОбщиеПараметры.Отправляет1СEmail; СуммаЧека = 0; ДанныеЧека = ПолучитьXMLПакетДляФискализацияЧека(ОбщиеПараметры, ВходныеПараметры, СуммаЧека); НомерСмены = 0; НомерЧека = 0; Попытка Результат = Объект.Драйвер.СформироватьЧек(Объект.ИдУстройства, Кассир, Электронно, ДанныеЧека, НомерЧека, НомерСмены, ФискальныйПризнак, АдресСайтаПроверки); Если НЕ Результат Тогда Результат = мОшибкаНеизвестно; ВыходныеПараметры.Очистить(); ВыходныеПараметры.Добавить(999); ВыходныеПараметры.Добавить(""); Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки); Иначе // Заполнение выходных параметров. ДатаСеанса = ТекущаяДатаСеанса(); ВыходныеПараметры.Очистить(); ВыходныеПараметры.Добавить(НомерСмены); ВыходныеПараметры.Добавить(НомерЧека); ВыходныеПараметры.Добавить(2); // 2 - Открыта - Состояние смены ВыходныеПараметры.Добавить(ДатаСеанса); ВыходныеПараметры.Добавить(ФискальныйПризнак); ВыходныеПараметры.Добавить(АдресСайтаПроверки); ВыходныеПараметры.Добавить(РегистрационныйНомерККТ); Результат = мНетОшибки; КонецЕсли; Исключение Результат = мОшибкаНеизвестно; ВыходныеПараметры.Очистить(); ВыходныеПараметры.Добавить(999); ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.СформироватьЧек>.'") + Символы.ПС + ОписаниеОшибки()); КонецПопытки; Возврат Результат; КонецФункции Функция ПолучитьXMLПакетДляФискализацияЧека(ОбщиеПараметры, ВыходныеПараметры, СуммаЧека) Экспорт ПозицииЧека = ОбщиеПараметры.ПозицииЧека; ТаблицаОплат = ОбщиеПараметры.ТаблицаОплат; СуммаЧека = 0; // Пакетная печать чека. Подготовка пакета. ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку("UTF-8"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("CheckPackage"); ЗаписьXML.ЗаписатьНачалоЭлемента("Parameters"); //ТипРасчета = ПолучитьКодТипаРасчетаДенежнымиСредствами(ОбщиеПараметры.ТипРасчета); ЗаписьXML.ЗаписатьАтрибут("PaymentType" , XMLСтрока(ОбщиеПараметры.ТипРасчета)); Если ОбщиеПараметры.Свойство("КодСистемыНалогообложения") И ОбщиеПараметры.КодСистемыНалогообложения <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("TaxVariant" , XMLСтрока(ОбщиеПараметры.КодСистемыНалогообложения)); КонецЕсли; ЗаписьXML.ЗаписатьАтрибут("SenderEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ОтправительEmail"), ОбщиеПараметры.ОтправительEmail, ""))); // Email отправляет средствами 1C Если ОбщиеПараметры.Свойство("Отправляет1СEmail") И НЕ ОбщиеПараметры.Отправляет1СEmail Тогда ЗаписьXML.ЗаписатьАтрибут("CustomerEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательEmail"), ОбщиеПараметры.ПокупательEmail, ""))); КонецЕсли; // SMS отправляет средствами 1C Если ОбщиеПараметры.Свойство("Отправляет1СSMS") И НЕ ОбщиеПараметры.Отправляет1СSMS Тогда ЗаписьXML.ЗаписатьАтрибут("CustomerPhone", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательНомер"), ОбщиеПараметры.ПокупательНомер, ""))); КонецЕсли; Если ОбщиеПараметры.Свойство("ВознагражденияАгента") И ОбщиеПараметры.ВознагражденияАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("AgentCompensation" , XMLСтрока(ОбщиеПараметры.ВознагражденияАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонПлатежногоАгента") И ОбщиеПараметры.ТелефонПлатежногоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("AgentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонПлатежногоАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонОператораПоПриемуПлатежей") И ОбщиеПараметры.ТелефонОператораПоПриемуПлатежей <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("ReceivePaymentsOperatorPhone" , XMLСтрока(ОбщиеПараметры.ТелефонОператораПоПриемуПлатежей)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонОператораПеревода") И ОбщиеПараметры.ТелефонОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorPhone" , XMLСтрока(ОбщиеПараметры.ТелефонОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("АдресОператораПеревода") И ОбщиеПараметры.АдресОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorAddress" , XMLСтрока(ОбщиеПараметры.АдресОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("ИННОператораПеревода") И ОбщиеПараметры.ИННОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorVATIN" , XMLСтрока(ОбщиеПараметры.ИННОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("НаименованиеОператораПеревода") И ОбщиеПараметры.НаименованиеОператораПеревода <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorName" , XMLСтрока(ОбщиеПараметры.НаименованиеОператораПеревода)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонБанковскогоАгента") И ОбщиеПараметры.ТелефонБанковскогоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankAgentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонБанковскогоАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ТелефонБанковскогоСубагента") И ОбщиеПараметры.ТелефонБанковскогоСубагента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankSubagentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонБанковскогоСубагента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ОперацияБанковскогоАгента") И ОбщиеПараметры.ОперацияБанковскогоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankAgentOperation" , XMLСтрока(ОбщиеПараметры.ОперацияБанковскогоАгента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ОперацияБанковскогоСубагента") И ОбщиеПараметры.ОперацияБанковскогоСубагента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankSubagentOperation" , XMLСтрока(ОбщиеПараметры.ОперацияБанковскогоСубагента)); КонецЕсли; Если ОбщиеПараметры.Свойство("ВознагражденияБанковскогоАгента") И ОбщиеПараметры.ВознагражденияБанковскогоАгента <> Неопределено Тогда ЗаписьXML.ЗаписатьАтрибут("BankAgentCompensation" , XMLСтрока(ОбщиеПараметры.ВознагражденияБанковскогоАгента)); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); // Табличная часть Если ОбщиеПараметры.ПозицииЧека <> Неопределено Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("Positions"); Для ИндексМассива = 0 По ОбщиеПараметры.ПозицииЧека.Количество() - 1 Цикл ТекущаяПозиция = ОбщиеПараметры.ПозицииЧека[ИндексМассива]; Если ТекущаяПозиция.Свойство("ФискальнаяСтрока") Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString"); ЗаписьXML.ЗаписатьАтрибут("Name" , XMLСтрока(ТекущаяПозиция.Наименование)); ЗаписьXML.ЗаписатьАтрибут("Quantity" , XMLСтрока(ТекущаяПозиция.Количество)); ЗаписьXML.ЗаписатьАтрибут("Price" , XMLСтрока(ТекущаяПозиция.Цена)); ЗаписьXML.ЗаписатьАтрибут("Amount" , XMLСтрока(ТекущаяПозиция.Сумма)); ЗаписьXML.ЗаписатьАтрибут("Tax" , XMLСтрока(ТекущаяПозиция.СтавкаНДС)); ЗаписьXML.ЗаписатьКонецЭлемента(); СуммаЧека = СуммаЧека + ТекущаяПозиция.Сумма; ИначеЕсли ТекущаяПозиция.Свойство("ТекстоваяСтрока") Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("TextString"); ЗаписьXML.ЗаписатьАтрибут("Text", XMLСтрока(ТекущаяПозиция.Текст)); ЗаписьXML.ЗаписатьКонецЭлемента(); ИначеЕсли ТекущаяПозиция.Свойство("ШтрихКод") Тогда ЗаписьXML.ЗаписатьНачалоЭлемента("Barcode"); ЗаписьXML.ЗаписатьАтрибут("BarcodeType", XMLСтрока(ТекущаяПозиция.ТипШтрихкода)); ЗаписьXML.ЗаписатьАтрибут("Barcode", XMLСтрока(ТекущаяПозиция.ШтрихКод)); ЗаписьXML.ЗаписатьКонецЭлемента(); Иначе ТекстОшибки = НСтр("ru='Не определен тип позиции чека.'"); ВыходныеПараметры.Очистить(); ВыходныеПараметры.Вставить("ТекстОшибки", ТекстОшибки); Результат = Ложь; Возврат Результат; КонецЕсли; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; // Таблица оплат Если ТаблицаОплат <> Неопределено Тогда СуммаНаличнойОплаты = 0; СуммаЭлектроннойОплаты1 = 0; СуммаЭлектроннойОплаты2 = 0; СуммаЭлектроннойОплаты3 = 0; Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл Если ТаблицаОплат[ИндексОплаты].ТипОплаты = 0 Тогда СуммаНаличнойОплаты = СуммаНаличнойОплаты + ТаблицаОплат[ИндексОплаты].Сумма; ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = 1 Тогда СуммаЭлектроннойОплаты1 = СуммаЭлектроннойОплаты1 + ТаблицаОплат[ИндексОплаты].Сумма; ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = 2 Тогда СуммаЭлектроннойОплаты2 = СуммаЭлектроннойОплаты2 + ТаблицаОплат[ИндексОплаты].Сумма; Иначе СуммаЭлектроннойОплаты3 = СуммаЭлектроннойОплаты3 + ТаблицаОплат[ИндексОплаты].Сумма; КонецЕсли; КонецЦикла; ЗаписьXML.ЗаписатьНачалоЭлемента("Payments"); ЗаписьXML.ЗаписатьАтрибут("Cash", XMLСтрока(СуммаНаличнойОплаты)); ЗаписьXML.ЗаписатьАтрибут("CashLessType1", XMLСтрока(СуммаЭлектроннойОплаты1)); ЗаписьXML.ЗаписатьАтрибут("CashLessType2", XMLСтрока(СуммаЭлектроннойОплаты2)); ЗаписьXML.ЗаписатьАтрибут("CashLessType3", XMLСтрока(СуммаЭлектроннойОплаты3)); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); Возврат ЗаписьXML.Закрыть(); КонецФункции
Публикация получилась немного сумбурная. Задавайте вопросы, постараюсь всё объяснить.
Сам столкнулся с полным непониманием, что и как. Как подключить фискальник по TCP, чтобы он работал и отправлял данные в интернет. В итоге вроде всё работает.
Как на счет «Открытие смены»? Нужно ли ее выполнять?
«При вызове метода командного интерфейса НачатьОткрытиеСменыНаФискальномУстройстве() будет отправлена команда открытия смены на фискальное устройство, создан документ кассовая смена и, в случае использования ККТ, будут заполнены реквизиты фискальных данных.»
Или это только для заполнения документа?
Не много не понял вопроса… у меня смена открывается автоматически при первом пробитии чека.
Нашел в описании к БПО:
«БПО 2.0 включает документ КассоваяСмена. Если в конфигурации уже имеется документ КассоваяСмена и/или перечисление СтатусыКассовойСмены — переименуйте эти объекты конфигурации. При этом определение необходимости сохранения данных документа Кассовая смена, существовавшего в конфигурации ранее и алгоритмы переноса данных в новый докуемнт, определяется на уровне прикладного решения.»
Думал, что без этого документа нельзя будет открыть кассовую смену…
(3) Нужно открывать без открытия чек не пробить.
(4) Скорее всего это зашито где то в настройках самого ФР, у нас около 200 точек, всплыло только несколько где без открытия смены чек не пробивается. Все модели ФР одинаковые.
Скажите, для какого именно релиза «Розницы 1.0» подходит эта обработка?
У меня достаточно старая 1.0.8.4
Обработка не будет работать сразу, конфигурацию в любом случае нужно будет дорабатывать. Я дорабатывал свою много много доработанную, не думаю что будут какие то кардинальные различия по части взаимодействия с торговым оборудованием.
Большое спасибо!
А почему в «Parameters» нет атрибута TaxVariant?
Добрый день!я как понимаю вы ФР одновременно подключили и к com порту и через USB?В итоге если подключить через com порт данные передаются в интернет?
(10) от фр идёт один провод он USB, в фр есть где то настройка как он определяется в системе как com или как сетевое соединение. Данные передаются в интернет только тогда когда фр подключён как сетевое соединение причём в другом сетевом соединении через которое система получает интернет должна стоять галочка разрешать другим соединениям использовать интернет этого соединения) не помню как она называется, на последней вкладке
Денис, спасибо что написали данную статью + выложили обработку!
Скажите пожалуйста что нужно прописать в конфигурации розницы, чтобы Ваша обработка работала:
1. Это закинуть библиотеки на диск С
2. Я так понимаю нужно доработать документ ЧекККМ
3. Доработать СерверТО
но не понял откуда взять функцию ПечатьЧекаККМОФД
(12) первые четыре строки кода это и есть функция ПечатьЧекаККМОФД()
Библиотеки нужно еще зарегестрировать.
Показать
У меня почему то кассир на чеке не выводится. И в данных офд его нет. Хотя в логе он виден. .
на 8.1 пойдет?
(15) у нас платформа 8.3.6.2332 розница 1.0. всё работает.
(16)это хорошо что у вас платформа новая, я же про старую
(17) обновите. я не продаю эту обработку, делюсь тем что есть
(18) обновить пока не успеем, пока будем обновлять и переносить данные, кассы накроются) поэтому и спрашиваю, а вообще просто проблема с новыми дровами)
(19) я не могу протестировать обработку на всех версиях платформы.
подскажите пжлст, вы при этом кассу в торговом оборудовании подключаете как фискальный регистратор или как ККТ с передачей данных?
(19) Работает под 8.1 без проблем. Все старые методы поддерживаются. Надо толь дописать метод отсылки телефона или E-mail клиента.Но это только на Штрихе. По атолу не знаю нет аппарата. Пишите на pozdiaev_n@mail.ru. Помогу, чем смогу. Сам варюсь в такой же каше.
(21) Без разницы для 8.1. Все зависит от того как написана обработка обслуживания.
Отчет о состоянии расчетов заменяет x-отчет? нигде не могу найти ответа. в новой обработке Штриха нет х-отчета..
(24) Все старые методы работают.
Объект.Пароль = Пароль;
Объект.СнятьОтчётБезГашения();
Но я рассматриваю обработку для 8.1. А для 8.2 надо самому сделать по аналогии z-отчета.
(25)Спасибо! там похоже оочень много чего надо самой сделать, а поговорить об этом не с кем)
(25) в компоненте AddIn.SMDrvFR1C20 нет метода СнятьОтчётБезГашения()
в последней рознице на упр. формах Х-отчет снимается по данным 1с, а не из памяти ФР.
Согласен. Я не использую SMDrvFR1C20.
У меня самописная конфа на УТ 10.2. Платформа 8.2.19.130. Мои методы не подойдут для конфы УТ 10.3.
ККМ старая модель ШТРИХ-ФР-К, после модернизации ШТРИХ-ФР-01Ф. Чеки печтаются. QR-код тоже. В ОФД отправляются в налоговую тоже. На телефоны клиента и на E-mail все прекрасно уходит. Есть конечно свои заморочки, но над ними я работаю.
(29) насколько я знаю через старую компоненту не передается наименование товара (в ОФД есть только количественные и суммрвые данные), а это вроде как требования закона, точно не знаю наши юристы дали такую информацию)
Передается без проблем
надо просто текст раэделить на 2 блок тот, который передаете В ОФД и тот который печатаете на ККМ.
Все прекрано работает.
Подскажите, как сформировать фискальную строку, в которой НДС не выделяется (платежный агент) ? При установке НДС в ноль получается НДС 0%, а это не совсем одно и то же.
(31) Если не секрет где вы об этом узнали?)
(32)
Показать
Здесь я рассматриваю старый драйвер для Штриха DrvFR.dll
(33) Интернет великая сила, кладезь знаний.
(34)
В xml в теге «ставкаНДС» содержится явное значение ставки, не номер позиции. Не указывать ничего нельзя. Если указать 0, будет «НДС 0%», ну ли «Без налога» ( я так понимаю, что раньше встретится в таблице налоговых ставок ФР). Это не совсем верно, НДС есть, но он не выделен при данной операции. Нужно значение » Не выделяется» , ну или полное отсутствие упоминания об НДС.
(36) Насколько я предполагаю в ОФД уйдет даже при ставке НДС 0% -НДС НЕ ОБЛАГАЕТСЯ.
Во всяком случае на старом драйвере так. А если Вам надо вывод на чек ну попробуйте решить это программно.
Как вы отрабатываете случай, когда товар продается со скидкой?
(37)
Там просто в графе НДС 0. С чеком программно сложнее, там «без налога». Впрочем техподдержка уже ответила, что набор ставок НДС фиксирован и менять их нельзя.
(38) Сделал блок уменьшающий цену на скидку. На ФР идет цена со скидкой. Конечно существует погрешность
при работе с нечетными числами, но я ее тоже учитываю в виде разбивки 1 позиции на 2.
(40) Тоже столкнулся с проблемой при печати чеков со скидками.
На сайте 1С есть описание метода СформироватьЧек (ProcessCheck) и в нем черным по белому написано, что Цена (Price) — Цена единицы товара без учета скидок/наценок
Но на практике выяснилось, что у Штриха свое представление о цене без учета скидок/наценок
(41) Скидка (дисконт) — коммерческая, маркетинговая, финансовая льгота, предоставляемая в форме снижения цены на продукцию. Это формулировка что такое скидка. Так как на уровне ФР скидки отключены, поэтому нам никто не запрещает снижать цену. Представления о скидках и способах ее предоставления дело лично каждого.
1C ответила на вопрос о скидках. Чтобы заработал расчет скидки в чеке:
«Проверьте в настройках ККТ — таблица 17, поле 3, значение 0?
Если там 2, то нужно установить 0.»
Как можно подключить эту обработку к БП2.0?
(44) Присоединяюсь к вопросу.
Можно ли подсоединить к УТ 10,3 (старая, Уриб — изменить в конфигураторе ничего не могу)?
Как можно с вами связаться?
Всем привет. В ЦТО поставили последнюю прошивку на ШТРИХ-ФР-01Ф проверил. Все прекрасно заработало. Чеки пробиваются. Скидки работают. Чеки в ОФД отправляются. Драйвер для Штриха DrvFR.dll 4.13.0.552. Но радость была преждевременной. После закрытия смены появляется ошибка ОЗУ. Только тех.обнуление. Будем дальше работать и исправлять ошибки. Таблица 17.1.3 режим исчисления скидок 0.
Не подскажешь, как поменять интерфейс подключения в фр…
(44)думаю что нет.
(46)можно, при использовании старой компоненты.
(47) в лс..
(50) старая компонента может передавать данные в ОФД ? может разве работать с ФН?
Добрый день!
Пытаюсь внедрить на нашу базу, столкнулась с ошибкой:
При пробитии чека выдает ошибку «Метод объекта не обнаружен ПолучитьПараметрыККТ в модуле Обработка.ТОСервер.МодульОбъекта» в строке
Ответ = Объект.Драйвер.ПолучитьПараметрыККТ(Объект.ИДУстройства, ПараметрыККТ);
Есть подозрение, что DLL SMDrvFR1CLib20.dll и SMDrvFR1CLib.dll действительно не содержат данного метода.
Установлен драйвер версии DrvFR_4.13_538, в нем есть SMDrvFR1CLib17.dll, но как подключить и использовать ее я не понимаю.
Прошу совета!
(54) уточнение: драйвер DrvFR 4.13_501 содержит библиотеки SMDrvFR1CLib.dll и SMDrvFR1CLib17.dll, а в DrvFR_4.13_538 SMDrvFR1CLib20.dll и SMDrvFR1CLib.dll. Но у меня не работает ни с одним из этих драйверов 🙁
Добрый день.
Прошу совета, а как быть с эквайрингом печатать чек по такой же схеме или как?
(48) Привет! У нас тоже такой же фискальник. Пробивается все хорошо со скидками построчно. А вот беда, при закрытии чека Скидка еще и на Итог накручивается. Как быть не знаешь?
Кассовый аппарат Штрих-М-01Ф. Пробивается все хорошо со скидками построчно. А вот беда, при закрытии чека Скидка еще и на Итог накручивается. Как быть не знаете?
(53) Работает без проблем.
(57) Какая прошивка. У меня от 22.02.2017. Драйвер 4.13.0.552
Итог на каждый чек еще на скидку умножает, что неправильно. Версия последняя с сайта штрих у меня.
а вот сам чек со скидкой прилагаю. Как видно итог не правильный, хотя код стандартный ЗакрытьЧек(идентификатор, СуммаНал, СуммаБезнал);
Беда ! пишет при пробитии
8eH нулевой итог чека
хотя все введено
(63) Посмотри настройку таблиц №1 где есть разрешение нулевого чека и таблица №17 режим исчисления скидок должно быть 0
(64) Так и стоит 0
(65) Проверь таблица №1 ряд 1 поле 23 должно быть 0.
Спасибо
(64) чек не нулевой был , может что то из за скидок?
(68) Могу выслать настройку своих таблиц. Сообщите куда. Настройки меняются в 1, 17, 23 таблицах.
Вышлю свежий драйвер может поможет. По последней прошивке обратись к модернизаторам. От себя добавлю у меня появлялась ошибка ОЗУ при закрытии смены. Решение: при обновлении прошивки форматировать флешку, в таблице 23 отключить обновление с сервера. поле 1 и 5 должно быть 0. Пока полет нормальный. Прошивка
Версия ПО : C.1
Сборка ПО : 35692
Дата ПО : 22.02.2017
Драйвер 4.13.0.552
(62) меняйте прошивку кассового аппарата. Там грабли.
(54)
Была такая же проблема , решилась путем переименования обработки обслуживания и настройки ФР в «ШТРИХ-ФР-Ф исп.04»
И убрали старую настройку, оставили только новую
Однако после попытки снятия Х-отчета драйвер отвалился, пришлось заново установить ком порт, после чего опять продажа прошла
Если у кого была проблема со снятием Х-отчет отпишитесь как решить?
(70)
Спасибо. Проверю. Сообщу.
(71) Попробуйте 552 релиз драйвера. И еще: пользователь, под которым запускаете 1С с правами администратора?
(69) Спасибо ! может не высылать а добавить к публикации -))?
(74)
(71) Попробуйте должно работать
Показать
(76) На русском языке методы не проходят. Вот это работает проверено.
Показать
Напишите, плиз, процедуры:
ПараметрыФискальнойСтрокиЧека()
СформироватьПараметрыИзЧека(Чек)
ПараметрыОперацииФискализацииЧека()
Не в одной строке.
Либо подскажите, плиз, где можно их найти.
Спасибо.
Вроде все сделал как написано (у нас древняя УПП), перенес из новой УПП функционал, но выдает ошибку:
FFFFFFF7h, Устройство с таким ИДУстройства не подключено
Что это может быть?
При помощи этой обработки у меня получится обещанное 1с «В кассовом чеке, сформированном, из документов «Приходный кассовый ордер» и «Оплата от покупателя платежной картой» с видом операции «Оплата от покупателя», выводятся подробные сведения о номенклатуре — наименование, количество, цена, сумма, сумма НДС.»?
Ут 10.3.41 при попытке печатать чек из ПКО требует подключения ФР (у меня ШТрих-on-line подключен как ККТ с передачей данных).
Если его подключить как ФР, то не печатаются ЧекиККМ, а ПКО выходит с одной строкой- общая сумма…
(79Для древней УПП используйте древний драйвер DrvFR. Конечно надо потрудится. но все прекрасно работает. Не надо изобретать велосипед и прикручивать новый драйвер к древней УПП. E-mail мой знаете пришли свой. вышлю обработку и драйвер, а дальше сам. Сразу оговорюсь работаю только со Штрихом. Атола к сожалению нет. Для 7.7 писал обработку, но сейчас нет под руками документации.
(80)В УТ 10.3.41 в стандартной конфигурации 1с-ки прекрасно все сделали. Но они сделали все стандарно. А дальше идут «нюансы», которые за вас никто не будет решать. Изучайте код, интегрируйте свой. Кстати в 10.3.41 доработки минимум.
(82)Я не спрашивал прекрасно или нет сделали в 1с. Я спрашивал алгоритм действий для печати чека из ПКО в СТАНДАРТНОЙ ут 10.3.41
(83)Извините у меня УТ-10.2
(77) Приведённый код отрабатывает без сообщений об ошибках, но ни-че-го не делает. И вообще ФР игнорирует команды, даже Beep. Подключение через IP, потому что usb-кабеля нету. Драйвер и тестовый интерфейс утилиты отрабатывают нормально, всё видят и делают.
Где у меня кривые руки?
(85) ВОПРОС ОТПАДАЕТ. Была-таки проблема связи, отвал по таймауту)
(70) Поменяли прошивку. Помогло! Спасибо!
фискальник «РР-04Ф поддреживаеться ? от RR-Electrohttp://rr-electro.com/products/online-kassa-kkt-rr-04f/
Заранее благодарен
Извините за назойливость а для RR-Electrohttp://rr-electro.com/products/online-kassa-kkt-rr-04f/ АСПД
есть варианты подключения к 1с 7.7
Ребята привеи, у меня следующий вопрос
В таблице налоговых ставок следующее
1.1800 — НДС 18%;
2. 1000 — НДС 10%;
3. 0 — НДС 0%;
4. 0 — Без налога;
5. 1800 — Ставка 18/118;
6. Ставка 10/110.
в драйвере аналогично заполнены первые 4 позиции (их там всего 4)
При фискализации чека я передаю ставку 18, печатается НДС 18%, а теперь вопрос,
как заставить распечатать ставку 5. 1800 — Ставка 18/118; ???
использую: «Штрих-М»-01Ф и БПО 2.0.2.4
Драйвер ФР 4.13.562 .. использую AddIn.SMDrvFR1C, после перехода на 4.13 перестал выводится QR код Объект.Драйвер.НапечататьШтрихКод(Объект.ИДУстройства, ТипШтрихКода, ШтрихКод)
на версии 4.12 все прекрасно работало..
такое впечатление что метод разучился выводить QR кода, только EAN13…
касса не менялась…
вернутся на 4.12 не вариант, так как вторая касса это уже ККТ
Сама касса не менялась и прекрасно выводила QR код.. Что делать не понятно..Хотя конечно проблема уйдет сама, когда кассу переведут на ФЗ-54..
Кто-нибудь знает как заставить работать стандартную обработку ККТ с передачей данных через R
DP ?
Причина: не подключается внешня компонента.
А ваша обработка работает в RDP ?
Совместима ли она с КА 1.1.82.2 ?
(92)
DP ?
Все прекрасно работает на штатной КА 1.1.85.2. И так было с самого начала (как только добавили поддержку ККТ с передачей данных, вроде с 1.1.81.2),
Никто не знает как печатать чеки по отделам. В таблицах ККТ он есть, а в модулях 1с не могу найти.
(94) Разобрался! В модуль добавил, чеки печатает по отделам. Вот только с гашением по отделам не выводит. Как быть?
(29) Прошу подсказать, как печатается QR -код через DrvFR на штрих. Даже не сам вывод интересует а где взять ссылку проверки для указания в коде? или Штрих-М сам выводит QR при закрытии чека?
(96) Касса сама формирует QR при закрытии чека.
(28)
(59) Подскажите старая компонента это DrvFR.dll? В каком руководстве есть методы этой компоненты. А то в начале пути. А времени осталось мало.
(99)Пришли e-mail вышлю обработку. там все найдешь.