ФЗ-54 Подключение фискальных регистраторов с ФН по TCP. Доработка Розницы 1.0. Обработка обслуживания Штрих-М для драйверов версии 4.13

Оборудование - Фискальный регистратор

Обработка осуществляет обслуживание фискальных регистраторов, поддерживаемых драйвером "Штрих-М" версии 4.13 для конфигураций на обычных формах. Обработка позволяет подключать ФР как по 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, чтобы он работал и отправлял данные в интернет. В итоге вроде всё работает. 


Скачать файлы

Наименование Файл Версия Размер
ShtrihMFiscalPrinters_v2_4_12_sp1.epf
.epf 43,44Kb
26.01.17
135
.epf 43,44Kb 135 Скачать

См. также

Комментарии
1. Сергей Ломоносов (djserega) 239 30.01.17 00:33 Сейчас в теме
Как на счет "Открытие смены"? Нужно ли ее выполнять?
"При вызове метода командного интерфейса НачатьОткрытиеСменыНаФискальномУстройстве() будет отправлена команда открытия смены на фискальное устройство, создан документ кассовая смена и, в случае использования ККТ, будут заполнены реквизиты фискальных данных."
Или это только для заполнения документа?
2. Денис Саяпин (sdv88) 83 30.01.17 05:16 Сейчас в теме
Не много не понял вопроса... у меня смена открывается автоматически при первом пробитии чека.
3. Сергей Ломоносов (djserega) 239 30.01.17 13:33 Сейчас в теме
Нашел в описании к БПО:
"БПО 2.0 включает документ КассоваяСмена. Если в конфигурации уже имеется документ КассоваяСмена и/или перечисление СтатусыКассовойСмены - переименуйте эти объекты конфигурации. При этом определение необходимости сохранения данных документа Кассовая смена, существовавшего в конфигурации ранее и алгоритмы переноса данных в новый докуемнт, определяется на уровне прикладного решения."
Думал, что без этого документа нельзя будет открыть кассовую смену...
4. Роман Пахомов (mrrom) 31.01.17 04:20 Сейчас в теме
(3) Нужно открывать без открытия чек не пробить.
5. Денис Саяпин (sdv88) 83 31.01.17 05:25 Сейчас в теме
(4) Скорее всего это зашито где то в настройках самого ФР, у нас около 200 точек, всплыло только несколько где без открытия смены чек не пробивается. Все модели ФР одинаковые.
6. v i (vis_tmp) 27 01.02.17 07:48 Сейчас в теме
Скажите, для какого именно релиза "Розницы 1.0" подходит эта обработка?
У меня достаточно старая 1.0.8.4
7. Денис Саяпин (sdv88) 83 02.02.17 05:29 Сейчас в теме
Обработка не будет работать сразу, конфигурацию в любом случае нужно будет дорабатывать. Я дорабатывал свою много много доработанную, не думаю что будут какие то кардинальные различия по части взаимодействия с торговым оборудованием.
8. Константин Наянов (kn8603) 8 02.02.17 11:31 Сейчас в теме
9. Константин Наянов (kn8603) 8 02.02.17 12:11 Сейчас в теме
А почему в "Parameters" нет атрибута TaxVariant?
10. Игорь Николаев (rafaiil) 02.02.17 14:02 Сейчас в теме
Добрый день!я как понимаю вы ФР одновременно подключили и к com порту и через USB?В итоге если подключить через com порт данные передаются в интернет?
11. Денис Саяпин (sdv88) 83 02.02.17 15:31 Сейчас в теме
(10) от фр идёт один провод он USB, в фр есть где то настройка как он определяется в системе как com или как сетевое соединение. Данные передаются в интернет только тогда когда фр подключён как сетевое соединение причём в другом сетевом соединении через которое система получает интернет должна стоять галочка разрешать другим соединениям использовать интернет этого соединения) не помню как она называется, на последней вкладке
12. Сергей Гаврилов (Luck_DMST) 22 02.02.17 16:52 Сейчас в теме
Денис, спасибо что написали данную статью + выложили обработку!
Скажите пожалуйста что нужно прописать в конфигурации розницы, чтобы Ваша обработка работала:
1. Это закинуть библиотеки на диск С
2. Я так понимаю нужно доработать документ ЧекККМ
3. Доработать СерверТО

но не понял откуда взять функцию ПечатьЧекаККМОФД
13. Денис Саяпин (sdv88) 83 03.02.17 05:34 Сейчас в теме
(12) первые четыре строки кода это и есть функция ПечатьЧекаККМОФД()

Библиотеки нужно еще зарегестрировать.


Функция ПечатьЧекаККМОФД(Объект, НомерЧека, НомерСмены,ОписаниеЧека, СуммаНал, СуммаБезнал, ПризнакВозврата)
	
	
	ПараметрыККТ = Неопределено;
	ВыходныеПараметрыФискализации = Неопределено;
	ВходныеПараметрыИзРеальногоЧека = СформироватьПараметрыИзЧека(Ссылка);
	
	Результат = ПолучитьСерверТО().ФискализироватьЧек(Объект,ПараметрыККТ,ВходныеПараметрыИзРеальногоЧека ,ВыходныеПараметрыФискализации);	
	
        НомерСмены = ВыходныеПараметрыФискализации[0];
        НомерЧека     = ВыходныеПараметрыФискализации[1]; // тут вопрос надо ли брать номер чека из фр или оставлять так как есть чтобы он шел по порядку. каждый решает сам наверно)
	

КонецФункции	
...Показать Скрыть
14. Сергей Благонравов (itabkb) 07.02.17 18:04 Сейчас в теме
У меня почему то кассир на чеке не выводится. И в данных офд его нет. Хотя в логе он виден. .
15. rinik 88 (rinik88) 20 09.02.17 11:41 Сейчас в теме
16. Денис Саяпин (sdv88) 83 10.02.17 05:11 Сейчас в теме
(15) у нас платформа 8.3.6.2332 розница 1.0. всё работает.
17. rinik 88 (rinik88) 20 10.02.17 08:06 Сейчас в теме
(16)это хорошо что у вас платформа новая, я же про старую
18. Денис Саяпин (sdv88) 83 10.02.17 08:20 Сейчас в теме
(17) обновите. я не продаю эту обработку, делюсь тем что есть
19. rinik 88 (rinik88) 20 10.02.17 08:48 Сейчас в теме
(18) обновить пока не успеем, пока будем обновлять и переносить данные, кассы накроются) поэтому и спрашиваю, а вообще просто проблема с новыми дровами)
20. Денис Саяпин (sdv88) 83 10.02.17 11:17 Сейчас в теме
(19) я не могу протестировать обработку на всех версиях платформы.
21. Пользователь (user691478_it_1c4) 13.02.17 10:17 Сейчас в теме
подскажите пжлст, вы при этом кассу в торговом оборудовании подключаете как фискальный регистратор или как ККТ с передачей данных?
22. Николай Поздяев (nike-arz) 13.02.17 11:36 Сейчас в теме
(19) Работает под 8.1 без проблем. Все старые методы поддерживаются. Надо толь дописать метод отсылки телефона или E-mail клиента.Но это только на Штрихе. По атолу не знаю нет аппарата. Пишите на pozdiaev_n@mail.ru. Помогу, чем смогу. Сам варюсь в такой же каше.
23. Николай Поздяев (nike-arz) 13.02.17 11:38 Сейчас в теме
(21) Без разницы для 8.1. Все зависит от того как написана обработка обслуживания.
24. Пользователь (user691478_it_1c4) 13.02.17 14:47 Сейчас в теме
Отчет о состоянии расчетов заменяет x-отчет? нигде не могу найти ответа. в новой обработке Штриха нет х-отчета..
25. Николай Поздяев (nike-arz) 13.02.17 16:03 Сейчас в теме
(24) Все старые методы работают.
Объект.Пароль = Пароль;
Объект.СнятьОтчётБезГашения();
Но я рассматриваю обработку для 8.1. А для 8.2 надо самому сделать по аналогии z-отчета.
26. Пользователь (user691478_it_1c4) 13.02.17 16:19 Сейчас в теме
(25)Спасибо! там похоже оочень много чего надо самой сделать, а поговорить об этом не с кем)
27. Денис Саяпин (sdv88) 83 14.02.17 05:06 Сейчас в теме
(25) в компоненте AddIn.SMDrvFR1C20 нет метода СнятьОтчётБезГашения()
в последней рознице на упр. формах Х-отчет снимается по данным 1с, а не из памяти ФР.
28. Николай Поздяев (nike-arz) 14.02.17 09:39 Сейчас в теме
Согласен. Я не использую SMDrvFR1C20.
29. Николай Поздяев (nike-arz) 14.02.17 09:49 Сейчас в теме
У меня самописная конфа на УТ 10.2. Платформа 8.2.19.130. Мои методы не подойдут для конфы УТ 10.3.
ККМ старая модель ШТРИХ-ФР-К, после модернизации ШТРИХ-ФР-01Ф. Чеки печтаются. QR-код тоже. В ОФД отправляются в налоговую тоже. На телефоны клиента и на E-mail все прекрасно уходит. Есть конечно свои заморочки, но над ними я работаю.
30. Денис Саяпин (sdv88) 83 14.02.17 13:14 Сейчас в теме
(29) насколько я знаю через старую компоненту не передается наименование товара (в ОФД есть только количественные и суммрвые данные), а это вроде как требования закона, точно не знаю наши юристы дали такую информацию)
31. Николай Поздяев (nike-arz) 14.02.17 15:36 Сейчас в теме
Передается без проблем
//Пишем наименование товара для передачи в ОФД "//" озаначает что текст передается в ОФД но не печтается на ККМ

		Если СтрДлина(СокрЛП(Товар.Товар)) > ШиринаСтрокиНаименование Тогда 
			Объект.СтрокаДляПечати = "//"+СокрЛП(Лев(Товар.Товар,ШиринаСтрокиНаименование));
		Иначе
			Объект.СтрокаДляПечати = "//"+СокрЛП(Товар.Товар);
		КонецЕсли;
...Показать Скрыть


надо просто текст раэделить на 2 блок тот, который передаете В ОФД и тот который печатаете на ККМ.
Все прекрано работает.
32. Наталия (nataliya_vl) 14.02.17 19:56 Сейчас в теме
Подскажите, как сформировать фискальную строку, в которой НДС не выделяется (платежный агент) ? При установке НДС в ноль получается НДС 0%, а это не совсем одно и то же.
33. Денис Саяпин (sdv88) 83 15.02.17 05:34 Сейчас в теме
(31) Если не секрет где вы об этом узнали?)
34. Николай Поздяев (nike-arz) 15.02.17 09:10 Сейчас в теме
(32)
Если НДС Тогда
			Если Товар.СтавкаНДС = 18 Тогда
				Ставка = 1;                         //Настройки для новых касс 1 - НДС -18, 2- НДС - 10 
			ИначеЕсли Товар.СтавкаНДС = 10 Тогда    // 3-НДС 0
				Ставка = 2;                         // 4- без  налога
			ИначеЕсли Товар.СтавкаНДС = 0 Тогда    // 5 НДС 18/118
				Ставка = 3;                         // 6 НДС 10/110
			Иначе
				Ставка = 0;
			КонецЕсли;
			
			Объект.Налог1 = Ставка;
		Иначе
			Ставка = 0;
			Объект.Налог1 = Ставка; //Без налога
		КонецЕсли;
...Показать Скрыть

Здесь я рассматриваю старый драйвер для Штриха DrvFR.dll
35. Николай Поздяев (nike-arz) 15.02.17 09:12 Сейчас в теме
(33) Интернет великая сила, кладезь знаний.
36. Наталия (nataliya_vl) 15.02.17 09:51 Сейчас в теме
(34)
В xml в теге "ставкаНДС" содержится явное значение ставки, не номер позиции. Не указывать ничего нельзя. Если указать 0, будет "НДС 0%", ну ли "Без налога" ( я так понимаю, что раньше встретится в таблице налоговых ставок ФР). Это не совсем верно, НДС есть, но он не выделен при данной операции. Нужно значение " Не выделяется" , ну или полное отсутствие упоминания об НДС.
37. Николай Поздяев (nike-arz) 15.02.17 15:00 Сейчас в теме
(36) Насколько я предполагаю в ОФД уйдет даже при ставке НДС 0% -НДС НЕ ОБЛАГАЕТСЯ.
Во всяком случае на старом драйвере так. А если Вам надо вывод на чек ну попробуйте решить это программно.
38. Олеся Бауман (Lesya_RS) 15.02.17 15:34 Сейчас в теме
Как вы отрабатываете случай, когда товар продается со скидкой?
39. Наталия (nataliya_vl) 15.02.17 15:44 Сейчас в теме
(37)
Там просто в графе НДС 0. С чеком программно сложнее, там "без налога". Впрочем техподдержка уже ответила, что набор ставок НДС фиксирован и менять их нельзя.
40. Николай Поздяев (nike-arz) 15.02.17 17:45 Сейчас в теме
(38) Сделал блок уменьшающий цену на скидку. На ФР идет цена со скидкой. Конечно существует погрешность
при работе с нечетными числами, но я ее тоже учитываю в виде разбивки 1 позиции на 2.
41. Владимир П (Wladimir_spb) 20.02.17 17:56 Сейчас в теме
(40) Тоже столкнулся с проблемой при печати чеков со скидками.
На сайте 1С есть описание метода СформироватьЧек (ProcessCheck) и в нем черным по белому написано, что Цена (Price) - Цена единицы товара без учета скидок/наценок
Но на практике выяснилось, что у Штриха свое представление о цене без учета скидок/наценок
42. Николай Поздяев (nike-arz) 21.02.17 09:03 Сейчас в теме
(41) Скидка (дисконт) - коммерческая, маркетинговая, финансовая льгота, предоставляемая в форме снижения цены на продукцию. Это формулировка что такое скидка. Так как на уровне ФР скидки отключены, поэтому нам никто не запрещает снижать цену. Представления о скидках и способах ее предоставления дело лично каждого.
43. Олеся Бауман (Lesya_RS) 25.02.17 17:14 Сейчас в теме
1C ответила на вопрос о скидках. Чтобы заработал расчет скидки в чеке:
"Проверьте в настройках ККТ - таблица 17, поле 3, значение 0?
Если там 2, то нужно установить 0."

44. Александр Дмитриев (МимохожийОднако) 117 27.02.17 17:37 Сейчас в теме
Как можно подключить эту обработку к БП2.0?
45. Erne100 (Erne100) 214 28.02.17 02:27 Сейчас в теме

(44) Присоединяюсь к вопросу.
46. Андрей Тарлыков (Tarlich) 69 02.03.17 16:36 Сейчас в теме
Можно ли подсоединить к УТ 10,3 (старая, Уриб - изменить в конфигураторе ничего не могу)?
47. Кирилл Гага (kir-g) 03.03.17 16:51 Сейчас в теме
Как можно с вами связаться?
48. Николай Поздяев (nike-arz) 03.03.17 17:58 Сейчас в теме
Всем привет. В ЦТО поставили последнюю прошивку на ШТРИХ-ФР-01Ф проверил. Все прекрасно заработало. Чеки пробиваются. Скидки работают. Чеки в ОФД отправляются. Драйвер для Штриха DrvFR.dll 4.13.0.552. Но радость была преждевременной. После закрытия смены появляется ошибка ОЗУ. Только тех.обнуление. Будем дальше работать и исправлять ошибки. Таблица 17.1.3 режим исчисления скидок 0.
49. Кирилл Гага (kir-g) 04.03.17 11:28 Сейчас в теме
Не подскажешь, как поменять интерфейс подключения в фр...
50. Денис Саяпин (sdv88) 83 06.03.17 05:19 Сейчас в теме
(46)можно, при использовании старой компоненты.
51. Денис Саяпин (sdv88) 83 06.03.17 05:19 Сейчас в теме
52. Денис Саяпин (sdv88) 83 06.03.17 05:20 Сейчас в теме
53. Андрей Тарлыков (Tarlich) 69 06.03.17 10:28 Сейчас в теме
(50) старая компонента может передавать данные в ОФД ? может разве работать с ФН?
54. Mirajen - (mirajen) 06.03.17 11:38 Сейчас в теме
Добрый день!
Пытаюсь внедрить на нашу базу, столкнулась с ошибкой:
При пробитии чека выдает ошибку "Метод объекта не обнаружен ПолучитьПараметрыККТ в модуле Обработка.ТОСервер.МодульОбъекта" в строке
Ответ = Объект.Драйвер.ПолучитьПараметрыККТ(Объект.ИДУстройства, ПараметрыККТ);

Есть подозрение, что DLL SMDrvFR1CLib20.dll и SMDrvFR1CLib.dll действительно не содержат данного метода.
Установлен драйвер версии DrvFR_4.13_538, в нем есть SMDrvFR1CLib17.dll, но как подключить и использовать ее я не понимаю.

Прошу совета!
55. Mirajen - (mirajen) 06.03.17 12:11 Сейчас в теме
(54) уточнение: драйвер DrvFR 4.13_501 содержит библиотеки SMDrvFR1CLib.dll и SMDrvFR1CLib17.dll, а в DrvFR_4.13_538 SMDrvFR1CLib20.dll и SMDrvFR1CLib.dll. Но у меня не работает ни с одним из этих драйверов :(
56. Кирилл Гага (kir-g) 06.03.17 12:50 Сейчас в теме
Добрый день.
Прошу совета, а как быть с эквайрингом печатать чек по такой же схеме или как?
57. L33tBot L33tBot (L33tBot1) 07.03.17 11:06 Сейчас в теме
(48) Привет! У нас тоже такой же фискальник. Пробивается все хорошо со скидками построчно. А вот беда, при закрытии чека Скидка еще и на Итог накручивается. Как быть не знаешь?
58. L33tBot L33tBot (L33tBot1) 07.03.17 11:07 Сейчас в теме
Кассовый аппарат Штрих-М-01Ф. Пробивается все хорошо со скидками построчно. А вот беда, при закрытии чека Скидка еще и на Итог накручивается. Как быть не знаете?
59. Николай Поздяев (nike-arz) 07.03.17 14:21 Сейчас в теме
60. Николай Поздяев (nike-arz) 07.03.17 14:22 Сейчас в теме
(57) Какая прошивка. У меня от 22.02.2017. Драйвер 4.13.0.552
61. L33tBot L33tBot (L33tBot1) 07.03.17 14:47 Сейчас в теме
Итог на каждый чек еще на скидку умножает, что неправильно. Версия последняя с сайта штрих у меня.
62. L33tBot L33tBot (L33tBot1) 07.03.17 15:06 Сейчас в теме
а вот сам чек со скидкой прилагаю. Как видно итог не правильный, хотя код стандартный ЗакрытьЧек(идентификатор, СуммаНал, СуммаБезнал);
Прикрепленные файлы:
63. Андрей Тарлыков (Tarlich) 69 07.03.17 15:54 Сейчас в теме
Беда ! пишет при пробитии
8eH нулевой итог чека
хотя все введено
64. Николай Поздяев (nike-arz) 09.03.17 09:11 Сейчас в теме
(63) Посмотри настройку таблиц №1 где есть разрешение нулевого чека и таблица №17 режим исчисления скидок должно быть 0
65. L33tBot L33tBot (L33tBot1) 09.03.17 09:37 Сейчас в теме
66. Николай Поздяев (nike-arz) 09.03.17 12:59 Сейчас в теме
(65) Проверь таблица №1 ряд 1 поле 23 должно быть 0.
67. Андрей (AKV77) 221 09.03.17 14:38 Сейчас в теме
68. Андрей Тарлыков (Tarlich) 69 09.03.17 23:06 Сейчас в теме
(64) чек не нулевой был , может что то из за скидок?
69. Николай Поздяев (nike-arz) 10.03.17 09:39 Сейчас в теме
(68) Могу выслать настройку своих таблиц. Сообщите куда. Настройки меняются в 1, 17, 23 таблицах.
Вышлю свежий драйвер может поможет. По последней прошивке обратись к модернизаторам. От себя добавлю у меня появлялась ошибка ОЗУ при закрытии смены. Решение: при обновлении прошивки форматировать флешку, в таблице 23 отключить обновление с сервера. поле 1 и 5 должно быть 0. Пока полет нормальный. Прошивка
Версия ПО : C.1
Сборка ПО : 35692
Дата ПО : 22.02.2017
Драйвер 4.13.0.552
70. Евгений Фербер (omut) 10.03.17 09:46 Сейчас в теме
(62) меняйте прошивку кассового аппарата. Там грабли.
71. Алексей Иванов (ики) 10.03.17 10:04 Сейчас в теме
(54)
Была такая же проблема , решилась путем переименования обработки обслуживания и настройки ФР в "ШТРИХ-ФР-Ф исп.04"
И убрали старую настройку, оставили только новую

Однако после попытки снятия Х-отчета драйвер отвалился, пришлось заново установить ком порт, после чего опять продажа прошла

Если у кого была проблема со снятием Х-отчет отпишитесь как решить?
72. L33tBot L33tBot (L33tBot1) 10.03.17 13:27 Сейчас в теме
(70)
Спасибо. Проверю. Сообщу.
73. Евгений Фербер (omut) 10.03.17 14:14 Сейчас в теме
(71) Попробуйте 552 релиз драйвера. И еще: пользователь, под которым запускаете 1С с правами администратора?
74. Андрей Тарлыков (Tarlich) 69 10.03.17 23:08 Сейчас в теме
(69) Спасибо ! может не высылать а добавить к публикации -))?
75. Николай Поздяев (nike-arz) 11.03.17 09:14 Сейчас в теме
76. Николай Поздяев (nike-arz) 15.03.17 16:38 Сейчас в теме
(71) Попробуйте должно работать

ПодключитьВнешнююКомпоненту("AddIn.DrvFR");
    	FR = Новый COMОбъект ("AddIn.DrvFR");
    	FR.Сonnect();
	FR.Пароль = 30;
	FR.СнятьОтчётБезГашения();
	Если FR.Результат <> 0 Тогда
		ОшибкаПараметра=FR.ОписаниеРезультата;
		Сообщить("ОшибкаПараметра "+ОшибкаПараметра);
	КонецЕсли;
	FR.РазорватьСвязь();
...Показать Скрыть
77. Николай Поздяев (nike-arz) 16.03.17 10:22 Сейчас в теме
(76) На русском языке методы не проходят. Вот это работает проверено.

ПодключитьВнешнююКомпоненту("AddIn.DrvFR");
    	FR = Новый COMОбъект ("AddIn.DrvFR");
	FR.Password = 30;
	FR.PrintReportWithoutCleaning();
	Попытка
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;	
	FR.Disconnect();
...Показать Скрыть
78. Дмитрий Иванов (Divanoff) 21 24.03.17 11:30 Сейчас в теме
Напишите, плиз, процедуры:

ПараметрыФискальнойСтрокиЧека()
СформироватьПараметрыИзЧека(Чек)
ПараметрыОперацииФискализацииЧека()

Не в одной строке.

Либо подскажите, плиз, где можно их найти.
Спасибо.
79. Дмитрий Иванов (Divanoff) 21 24.03.17 18:32 Сейчас в теме
Вроде все сделал как написано (у нас древняя УПП), перенес из новой УПП функционал, но выдает ошибку:

FFFFFFF7h, Устройство с таким ИДУстройства не подключено

Что это может быть?
80. Константин Шалаев (dr2c) 39 25.03.17 17:01 Сейчас в теме
При помощи этой обработки у меня получится обещанное 1с "В кассовом чеке, сформированном, из документов "Приходный кассовый ордер" и "Оплата от покупателя платежной картой" с видом операции "Оплата от покупателя", выводятся подробные сведения о номенклатуре - наименование, количество, цена, сумма, сумма НДС."?
Ут 10.3.41 при попытке печатать чек из ПКО требует подключения ФР (у меня ШТрих-on-line подключен как ККТ с передачей данных).
Если его подключить как ФР, то не печатаются ЧекиККМ, а ПКО выходит с одной строкой- общая сумма...
81. Николай Поздяев (nike-arz) 25.03.17 20:49 Сейчас в теме
(79Для древней УПП используйте древний драйвер DrvFR. Конечно надо потрудится. но все прекрасно работает. Не надо изобретать велосипед и прикручивать новый драйвер к древней УПП. E-mail мой знаете пришли свой. вышлю обработку и драйвер, а дальше сам. Сразу оговорюсь работаю только со Штрихом. Атола к сожалению нет. Для 7.7 писал обработку, но сейчас нет под руками документации.
82. Николай Поздяев (nike-arz) 25.03.17 20:58 Сейчас в теме
(80)В УТ 10.3.41 в стандартной конфигурации 1с-ки прекрасно все сделали. Но они сделали все стандарно. А дальше идут "нюансы", которые за вас никто не будет решать. Изучайте код, интегрируйте свой. Кстати в 10.3.41 доработки минимум.
83. Константин Шалаев (dr2c) 39 27.03.17 10:47 Сейчас в теме
(82)Я не спрашивал прекрасно или нет сделали в 1с. Я спрашивал алгоритм действий для печати чека из ПКО в СТАНДАРТНОЙ ут 10.3.41
84. Николай Поздяев (nike-arz) 27.03.17 14:48 Сейчас в теме
85. Яков Коган (Yashazz) 2121 30.03.17 18:48 Сейчас в теме
(77) Приведённый код отрабатывает без сообщений об ошибках, но ни-че-го не делает. И вообще ФР игнорирует команды, даже Beep. Подключение через IP, потому что usb-кабеля нету. Драйвер и тестовый интерфейс утилиты отрабатывают нормально, всё видят и делают.
Где у меня кривые руки?
86. Яков Коган (Yashazz) 2121 30.03.17 19:39 Сейчас в теме
(85) ВОПРОС ОТПАДАЕТ. Была-таки проблема связи, отвал по таймауту)
87. L33tBot L33tBot (L33tBot1) 01.04.17 09:27 Сейчас в теме
(70) Поменяли прошивку. Помогло! Спасибо!
88. Константин Синицин (kosta) 03.04.17 16:31 Сейчас в теме
фискальник «РР-04Ф поддреживаеться ? от RR-Electro http://rr-electro.com/products/online-kassa-kkt-rr-04f/
Заранее благодарен
89. Константин Синицин (kosta) 04.04.17 13:49 Сейчас в теме
Извините за назойливость а для RR-Electro http://rr-electro.com/products/online-kassa-kkt-rr-04f/ АСПД
есть варианты подключения к 1с 7.7
90. Иван Чалагаев (1prog@bk.ru) 13 05.04.17 19:27 Сейчас в теме
Ребята привеи, у меня следующий вопрос
В таблице налоговых ставок следующее
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
91. Anton Groshev (mikitondom) 13 07.04.17 12:43 Сейчас в теме
Драйвер ФР 4.13.562 .. использую AddIn.SMDrvFR1C, после перехода на 4.13 перестал выводится QR код Объект.Драйвер.НапечататьШтрихКод(Объект.ИДУстройства, ТипШтрихКода, ШтрихКод)
на версии 4.12 все прекрасно работало..
такое впечатление что метод разучился выводить QR кода, только EAN13...
касса не менялась...
вернутся на 4.12 не вариант, так как вторая касса это уже ККТ

Сама касса не менялась и прекрасно выводила QR код.. Что делать не понятно..Хотя конечно проблема уйдет сама, когда кассу переведут на ФЗ-54..
92. Александр Мякшин (AlexMC75) 4 19.04.17 12:37 Сейчас в теме
Кто-нибудь знает как заставить работать стандартную обработку ККТ с передачей данных через R
DP ?
Причина: не подключается внешня компонента.
А ваша обработка работает в RDP ?
Совместима ли она с КА 1.1.82.2 ?
93. Евгений Фербер (omut) 27.04.17 17:52 Сейчас в теме
(92)
Кто-нибудь знает как заставить работать стандартную обработку ККТ с передачей данных через R
DP ?

Все прекрасно работает на штатной КА 1.1.85.2. И так было с самого начала (как только добавили поддержку ККТ с передачей данных, вроде с 1.1.81.2),
94. L33tBot L33tBot (L33tBot1) 30.04.17 08:56 Сейчас в теме
Никто не знает как печатать чеки по отделам. В таблицах ККТ он есть, а в модулях 1с не могу найти.
95. L33tBot L33tBot (L33tBot1) 30.04.17 11:10 Сейчас в теме
(94) Разобрался! В модуль добавил, чеки печатает по отделам. Вот только с гашением по отделам не выводит. Как быть?
96. dmam 05.05.17 08:57 Сейчас в теме
(29) Прошу подсказать, как печатается QR -код через DrvFR на штрих. Даже не сам вывод интересует а где взять ссылку проверки для указания в коде? или Штрих-М сам выводит QR при закрытии чека?
97. Николай Поздяев (nike-arz) 10.05.17 11:04 Сейчас в теме
(96) Касса сама формирует QR при закрытии чека.
98. rhtr Иванов (rhtr) 56 18.05.17 00:26 Сейчас в теме
(95) Привет! Поделись опытом?
99. Сергей (user725488) 09.06.17 04:25 Сейчас в теме
(28)
(59) Подскажите старая компонента это DrvFR.dll? В каком руководстве есть методы этой компоненты. А то в начале пути. А времени осталось мало.
Оставьте свое сообщение