|
Торговое оборудование Фискальный регистратор | ☑ | ||
---|---|---|---|---|
0
Snuts
28.11.19
✎
07:41
|
Добрый день где взять AddIn.DrvFR1C.dll для фискального регистратора, в драйвере штрих М фр 4.9 в bin не нашел там только DrvFR.dll
в описании документации и так же в конфигураторе проверил нужен именно ADDln.DRVFR1C.dll Описание интерфейса Драйвер разработан в виде внешней компоненты 1С и предоставляет набор методов в соответствии с документом «Требования к разработке драйверов для фискальных регистраторов». При подключении драйвера в 1С:Предприятии в качестве параметра «Идентификатор объекта» в методе «ПодключитьВнешнююКомпоненту» необходимо использовать строку «AddIn.DrvFR1C». Пример: ПрогИД = "AddIn.DrvFR1C"; ПодключитьВнешнююКомпоненту(ПрогИД); Драйвер = Новый(ПрогИД); |
|||
1
Kigo_Kigo
28.11.19
✎
07:53
|
по факту загрузить внешнюю компоненту "DrvFR.dll"
СоздатьОбъект("AddIn.DrvFR1C") |
|||
2
Snuts
28.11.19
✎
07:55
|
(1) мои действия просто регистрировать DrvFR.dll
|
|||
3
Kigo_Kigo
28.11.19
✎
07:57
|
(2) да, или просто установить пакет установки штриха, после этого COM объект будет доступен через
ДрайверФР = Новый(«AddIn.DrvFR1C»); |
|||
4
Kigo_Kigo
28.11.19
✎
07:59
|
или новыйСОМОбъект , уже не помню
|
|||
5
Snuts
28.11.19
✎
08:02
|
(4) DrvFR.dll зарегистрировал все равно ошибка
Фискальный регистратор ФР ПТК RR 02KZ: Тест не пройден. Дополнительное описание: Ошибка при создании объекта драйвера Проверьте, что драйвер зарегистрирован в системе |
|||
6
Kigo_Kigo
28.11.19
✎
08:03
|
(5) а как регистрируете?
Закинь содержимое папки штриха bin в корень базы |
|||
7
Kigo_Kigo
28.11.19
✎
08:05
|
Попытка
ЗагрузитьВнешнююКомпоненту("DrvFR.dll"); Сообщить("Компонента DrvFR.dll загружена"); Исключение Сообщить("Компонента DrvFR.dll не найдена!", СтатусСообщения.Внимание); КонецПопытки |
|||
8
Snuts
28.11.19
✎
08:06
|
(6) пуск - выполнить в окне regsvr32.exe путь к файлу\DrvFR.dll
|
|||
9
Kigo_Kigo
28.11.19
✎
08:06
|
(8) Она регится номально? Винда какая?
|
|||
10
Kigo_Kigo
28.11.19
✎
08:07
|
Потому как обячно от вин 7-ки и выше надо регать через бат файл с правами администратора
|
|||
11
Snuts
28.11.19
✎
08:08
|
(10) вин 7 проф 64 бит, попробовать через cmd с правами админа?
|
|||
12
Snuts
28.11.19
✎
08:08
|
(9) вообще пишет что успешно зарегана
|
|||
13
Kigo_Kigo
28.11.19
✎
08:10
|
(12) 1с-ка 32 или 64?
|
|||
14
Kigo_Kigo
28.11.19
✎
08:10
|
на 1сх64 работать не будет
|
|||
15
Snuts
28.11.19
✎
08:10
|
(13) 64
|
|||
16
Kigo_Kigo
28.11.19
✎
08:11
|
надо ставить 32-ю платформу с 64 - не работатет
|
|||
17
Snuts
28.11.19
✎
08:11
|
(14) вот и проблема, теперь стоит проверить на 32 битной системе?
|
|||
18
Kigo_Kigo
28.11.19
✎
08:11
|
даже не мучайся
|
|||
19
Kigo_Kigo
28.11.19
✎
08:11
|
не системе, а платформе, система пофиг какая
|
|||
20
Snuts
28.11.19
✎
08:12
|
(19) ок ща 32 поставлю отпишусь
|
|||
21
Kigo_Kigo
28.11.19
✎
08:20
|
Попытка
ПодключитьВнешнююКомпоненту("AddIn.DrvFR"); // достаточно штатной установки драйвера на локальный ПК или сервер ком=Новый COMОбъект("AddIn.DrvFR"); // никакой более регистрации на современных ОС обычно не требуется глФР=ком; // экспортная переменная глФР переменная должна быть объявлена в глобальном модуле обычного приложения Исключение Сообщить("Ошибка инициализации фискального регистратора кассовых чеков: "+ОписаниеОшибки(),СтатусСообщения.Важное); КонецПопытки; Пароль = 30; ПодключитьсяКФР(Пароль); рКодОшибки = ""; |
|||
22
Kigo_Kigo
28.11.19
✎
08:21
|
&НаКлиенте
Функция ПодключитьсяКФР(Пароль) Рез = 0; глФР.Password=Пароль; глФР.Connect(); Ответ = глФР.ResultCode; Если Ответ=0 Тогда Рез=1; Иначе Сообщить(глФР.ResultCodeDescription); КонецЕсли; глФР.Beep(); Возврат Рез; КонецФункции |
|||
23
Kigo_Kigo
28.11.19
✎
08:32
|
нате вам весь код работы с ккм
&НаКлиенте Функция ПодключитьсяКФР(Пароль) Рез = 0; глФР.Password=Пароль; глФР.Connect(); Ответ = глФР.ResultCode; Если Ответ=0 Тогда Рез=1; Иначе Сообщить(глФР.ResultCodeDescription); КонецЕсли; глФР.Beep(); Возврат Рез; КонецФункции &НаКлиенте Функция ОтключитьсяОтФР(Пароль, ЗапоминатьОшибку = 1) Рез = 0; // пеключим ФР в нерабочий режим глФР.Password=Пароль; глФР.Disconnect(); Ответ = глФР.ResultCode; Если Ответ=0 Тогда Рез=1; ИначеЕсли ЗапоминатьОшибку = 1 Тогда Сообщить(глФР.ResultCodeDescription); КонецЕсли; Возврат Рез; КонецФункции &НаКлиенте Функция ОткрытьСмену(рКодОшибки=0) Экспорт Попытка рКодОшибки=0; фр=глФР; фр.Password=1; Если фр.ECRMode<>4 Тогда // смена уже открыта, или некий другой режим рКодОшибки=99; Возврат Истина; КонецЕсли; рез=фр.OpenSession(); Если рез<>0 Тогда Сообщить("ОткрытьСмену, ошибка выполнения: "+фр.ResultCodeDescription); рКодОшибки=фр.ResultCode; Возврат Ложь; КонецЕсли; Сообщить("ОткрытьСмену, смена успешно открыта."); Возврат Истина; Исключение Сообщить("ОткрытьСмену, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное); Возврат Ложь; КонецПопытки; КонецФункции &НаКлиенте Функция ЗакрытьСмену(рКодОшибки=0) Экспорт Попытка рКодОшибки=0; фр=глФР; фр.Password=30; // можно ещё 29 Если фр.ECRMode<>2 и фр.ECRMode<>3 Тогда // смена уже закрыта, или другой режим рКодОшибки=99; Возврат Истина; КонецЕсли; рез=фр.PrintReportWithCleaning(); Если рез<>0 Тогда Сообщить("ЗакрытьСмену, ошибка выполнения: "+фр.ResultCodeDescription); рКодОшибки=фр.ResultCode; Возврат Ложь; КонецЕсли; Сообщить("ЗакрытьСмену, смена успешно закрыта."); Возврат Истина; Исключение Сообщить("ЗакрытьСмену, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное); Возврат Ложь; КонецПопытки; КонецФункции &НаСервере Функция ВернутьИННКассира() Возврат Объект.Кассир.Физлицо.ИНН; КонецФункции &НаКлиенте Функция ФнОперация(ТипЧека,Цена,Количество,Налог,Сумма, ПризнакСпособаРасчета, ПризнакПредметаРасчета, Наименование,получено,ПоКарте,КудаОтправитьЧек,Детально) КорректноКудаОтправитьЧек = -1;//-1 не ввден, 1- корректно,0 не корректно Если СокрЛП(КудаОтправитьЧек) <> "" Тогда Если Найти(СокрЛП(КудаОтправитьЧек),"@") <> 0 Тогда КорректноКудаОтправитьЧек = 1; ИначеЕсли Лев(СокрЛП(КудаОтправитьЧек),2) = "+7" Тогда КорректноКудаОтправитьЧек = 1; Иначе КорректноКудаОтправитьЧек = 0; КонецЕсли; Если КорректноКудаОтправитьЧек = 0 Тогда Сообщить("Не корректно введен email или номер телефона клиента"); Возврат 0; Иначе КорректноКудаОтправитьЧек = -1; //Предупреждение("Проверте email или номер телефона клиента, номер телефона должен начинаться на +7"); КонецЕсли; КонецЕсли; //Если Объект.Кассир.ПарольККТ = 0 тогда глФР.Password = 1; //Иначе //глФР.Password = Объект.Кассир.ПарольKKT; //КонецЕсли; ИннКассира = ВернутьИННКассира(); Если СокрЛП(ИннКассира) = "" тогда Сообщить("У кассира/приемщика не указан ИНН"); Возврат 0; Иначе глФР.TagNumber = 1203; глФР.TagType = 7; глФР.TagValueStr = СокрЛП(ИннКассира); //глФР.TagValueStr = "623000407680"; глФР.FNSendTag(); КонецЕсли; СколькоНадоПолученно = 0; Если Детально = 0 Тогда глФР.CheckType = ТипЧека; глФР.StringForPrinting = Наименование; глФР.Price = Цена; глФР.Quantity = Количество; глФР.Tax1 = Налог; глФР.Tax2 = Налог; глФР.Tax3 = Налог; глФР.Tax4 = Налог; глФР.Department = 1; //глФР.Summ1 = Сумма; //глФР.PaymentTypeSign = ПризнакСпособаРасчета; //глФР.PaymentItemSign = ПризнакПредметаРасчета; Если Объект.ЧекНаВозврат = Истина Тогда глФР.ReturnSale(); Иначе глФР.Sale(); КонецЕсли; Иначе Для каждого СтрокаРаботы Из Объект.Работы Цикл глФР.CheckType = ТипЧека; глФР.StringForPrinting = СокрЛП(СтрокаРаботы.Номенклатура); Если СтрокаРаботы.Количество <> 0 Тогда глФР.Price = СтрокаРаботы.Сумма/СтрокаРаботы.Количество; глФР.Quantity = СтрокаРаботы.Количество; //СколькоНадоПолученно = СколькоНадоПолученно + СтрокаРаботы.Сумма/СтрокаРаботы.Количество*СтрокаРаботы.Количество; Иначе глФР.Price = СтрокаРаботы.Сумма; глФР.Quantity = 1; //СколькоНадоПолученно = СколькоНадоПолученно + СтрокаРаботы.Сумма; КонецЕсли; глФР.Tax1 = Налог; глФР.Tax2 = Налог; глФР.Tax3 = Налог; глФР.Tax4 = Налог; глФР.Department = 1; //глФР.Summ1 = Сумма; //глФР.PaymentItemSign = ПризнакПредметаРасчета; // ГлФР.FNOperation(); Если Объект.ЧекНаВозврат = Истина Тогда глФР.ReturnSale(); Иначе глФР.Sale(); КонецЕсли; КонецЦикла; КонецЕсли; //глФР.PaymentTypeSign = 4; //ГлФР.FNOperation(); Если КорректноКудаОтправитьЧек = 0 Тогда глФР.CustomerEmail = СокрЛП(КудаОтправитьЧек); глФР.FNSendCustomerEmail(); КонецЕсли; Если (Получено = 0) И (ПоКарте = 0) Тогда глФР.Summ1 = Объект.Работы.Итог("Сумма"); глФР.Summ2 = 0; глФР.Summ3 = 0; глФР.Summ4 = 0; ИначеЕсли (Получено <> 0) И (ПоКарте = 0) Тогда глФР.Summ1 = Объект.Получено; глФР.Summ2 = 0; глФР.Summ3 = 0; глФР.Summ4 = 0; ИначеЕсли (Получено <> 0) И (ПоКарте <> 0) Тогда глФР.Summ1 = Объект.Получено; глФР.Summ2 = Объект.ПоКарте; глФР.Summ3 = 0; глФР.Summ4 = 0; ИначеЕсли (Получено = 0) И (ПоКарте <> 0) Тогда глФР.Summ1 = 0; //ГлФР.CheckSubTotal(глФР.Summ2); глФР.Summ2 = Объект.ПоКарте; глФР.Summ3 = 0; глФР.Summ4 = 0; КонецЕсли; //итогоитого=0; //Сообщить(СколькоНадоПолученно); //ГлФР.RoundingSumm(); глФР.FNCloseCheckEx(); Если глФР.ResultCode <> 0 Тогда Сообщить(глФР.ResultCode); глФР.Password=30; глФР.SysAdminCancelCheck(); //ОтключитьсяОтФР(Объект, Пароль, 0); Возврат 0; Иначе Объект.ЧекПробитККМ = Истина; КонецЕсли; Возврат 1; КонецФункции &НаКлиенте Процедура ИнициализироватьФР() Экспорт Попытка ПодключитьВнешнююКомпоненту("AddIn.DrvFR"); // достаточно штатной установки драйвера на локальный ПК или сервер ком=Новый COMОбъект("AddIn.DrvFR"); // никакой более регистрации на современных ОС обычно не требуется глФР=ком; // экспортная переменная глФР переменная должна быть объявлена в глобальном модуле обычного приложения Исключение Сообщить("Ошибка инициализации фискального регистратора кассовых чеков: "+ОписаниеОшибки(),СтатусСообщения.Важное); КонецПопытки; Пароль = 30; ПодключитьсяКФР(Пароль); рКодОшибки = ""; //ОткрытьСмену(рКодОшибки); //Если рКодОшибки <> 99 тогда //сменаОтрыта // Сообщить(рКодОшибки); //КонецЕсли; ТипЧека = 1; Цена = Объект.Работы.Итог("Сумма"); Количество = 1; Налог = 0; Сумма = Цена; ПризнакСпособаРасчета = 1; ПризнакПредметаРасчета = 4; Наименование = "Оплата по Заказ-наряду № " + Строка(Объект.Номер) + " от " + Строка(Объект.Дата); Рез = 0; Если Объект.Детально тогда Рез = ФнОперация(ТипЧека,Цена,Количество,Налог,Сумма, ПризнакСпособаРасчета, ПризнакПредметаРасчета, Наименование,Объект.Получено,Объект.Покарте,Объект.КудаОтправитьЧек, 1); Иначе Рез = ФнОперация(ТипЧека,Цена,Количество,Налог,Сумма, ПризнакСпособаРасчета, ПризнакПредметаРасчета, Наименование,Объект.Получено,Объект.Покарте,Объект.КудаОтправитьЧек,0); КонецЕсли; //ЗакрытьСмену(рКодОшибки) оставим для снятия Zотчета Если Рез = 0 Тогда Сообщить("Чек ККМ не пробит",СтатусСообщения.Важное); Иначе Записать(); КонецЕсли; ОтключитьсяОтФР(Пароль); КонецПроцедуры &Наклиенте Процедура ПробитьЧекККМ(Кнопка) //Сообщить("херькакаято"); //глФР = ""; ИнициализироватьФР(); //ПодключитьсяКФР("30") КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |