7.7 Печать слипа терминала в ЧПМ Меркурий

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем llpass, 16 июн 2018.

  1. TopicStarter Overlay
    llpass
    Offline

    llpass

    Регистрация:
    11 ноя 2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    ТИС 9,2 есть подключенный к 7ке терминал сбера .. все пашет нормально только не могу настроить передачу слипа в ЧПМ, очень нужно... тут есть тема про штрих и атолвокие драйвера но Меркурий MS не хочет так работать, у кого есть опыт подскажите
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.505
    Симпатии:
    533
    Баллы:
    204
    Вы хотите из под терминала печатать локально чек? Ну и в чем проблема? Установите драйвера локально и на сервере, откройте порты при подключении RDP и печатайте
  3. SerzhM
    Offline

    SerzhM Опытный в 1С

    Регистрация:
    26 окт 2009
    Сообщения:
    525
    Симпатии:
    3
    Баллы:
    29
    Решили проблему?
    ПС просто давно тут не появлялся.
    --- Объединение сообщений, 8 авг 2018 ---
    Вот примерный код при оплате сберовским терминалом
    Код:
    Процедура ОплатаКартой()
           
            Amount = Serv.SParam ("Amount", Сумма);
            Если Serv.NFun (4000) <> 0 Тогда
                Предупреждение("Операция с банком не удалась! Попробуйте еще раз.");
                СтатусВозврата(0);
                Возврат;
                МожноПровестиЧекККМ = 0 ;
            Иначе
                TermNum          = Serv.GParamString("TermNum");
                ClientCard       = Serv.GParamString("ClientCard");
                ClientExpiryDate = Serv.GParamString("ClientExpiryDate");
                AuthCode         = Serv.GParamString("AuthCode");
       
                ECR = Serv.GParamString("cheque");
               
                //Сообщить(ECR);
                //ECR.Caption = cheque;
                //ECR.TextWrap=1;
                /////Пробуем передать данные в фискальник
               
                Если глФРВкл = 1 Тогда
               
                Параметры = СоздатьОбъект("СписокЗначений"); 
                Параметры.Установить("Объект"            , глФР);
                Параметры.Установить("Процесс"  , "печатать_слип");
                Параметры.Установить("ECR"  , ECR);
                Параметры.Установить("ПарольПользователя", глФРПарольПользователя);
               
               
    
                РезТекст = глОборудованиеКоманда("ФР", глФРОбработка, Параметры);
                Если ПустоеЗначение(РезТекст) = 0 Тогда
                Сообщить(РезТекст);
                Иначе
                Если Параметры.Получить("Результат") = 0 Тогда
                Serv.NFun (6004);
                   
                Сообщить("Фискальный регистратор: ошибка при печати чека");
                Сообщить(Параметры.Получить("ОписаниеРезультата"));
                Предупреждение("Не удалось распечатать Чек операции!
                                   |Операция с банком не удалась!!!
                                   |Включите ККМ или замените ленту и попробуйте еще раз!!!)",60);
                    МожноПровестиЧекККМ = 0 ;
                    СтатусВозврата(0);
                    Возврат;
                Иначе
                    МожноПровестиЧекККМ = 1 ;
                    Форма.Закрыть(1);
                КонецЕсли;
                  КонецЕсли;
                КонецЕсли;
                КонецЕсли;
               
               
               
        //
        //        Для СчПустыхСтрок=1 По 6 Цикл
        //        ECR.Caption = " ";
        //        Если ECR.PrintString() <> 0 Тогда
        //            Сообщить("не напечатали ---");
        //        КонецЕсли;
        //        КонецЦикла;
            //КонецЕсли;
    
    КонецПроцедуры // ОплатаКартой()
    
    --- Объединение сообщений, 8 авг 2018 ---
    Код:
    Функция ПечататьСлип(ECR, Объект, Пароль)
       
       
        Если ПустоеЗначение(Объект) = 1 Тогда
            ОписаниеРезультата = "устройство не подключено";
            Возврат 0;
        ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
            Возврат 0;
        КонецЕсли;
      
    НашаСтрока = ECR;
    //поиск символа
    //СписокСтрок=СоздатьОбъект("СписокЗначений");
    //        стр="";
    //        для к=1 по СтрДлина(НашаСтрока) Цикл
    //        код=Сред(НашаСтрока,к,1);
    //        Сообщить(""+Код+" код символа "+КодСимв(код));
    //        КонецЦикла;
    //конецпоиск символа
    //Резали=0;
    Пока 1=1 Цикл
    НашаСтрока = СокрЛП(НашаСтрока);
    ПозицияСлеша=Найти(НашаСтрока,Симв(13)+Симв(10)); 
    //Если Резали <0 Тогда
    если КодСимв(Сред(НашаСтрока,1,1))=1 Тогда
        ОтрезатьЧек(Объект, Пароль);
        Резали = 1;
    Конецесли;
    //Иначе
    Если ПозицияСлеша=0 Тогда
        Прервать;
    Конецесли;
    СтрокаДо =Лев(НашаСтрока,ПозицияСлеша-1);
    //Печать строки
    Объект.StringForPrinting = СтрокаДо;
    Объект.PrintString();
    НашаСтрока = Сред(НашаСтрока,ПозицияСлеша+1,СтрДлина(НашаСтрока));
    //КонецЕсли;
    КонецЦикла;
    //Для поиска кода символа
            //СписокСтрок=СоздатьОбъект("СписокЗначений");
            //стр="";
            //для к=1 по СтрДлина(ПечРозн) Цикл
            //код=Сред(ПечРозн,к,1);
            //Сообщить(""+Код+" код символа "+КодСимв(код));
            //КонецЦикла;
    
    Если Объект.ResultCode <> 0 Тогда
            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
            ОтключитьсяОтФР(Объект, Пароль, 0);
            Возврат 0;
        КонецЕсли;
    
    Возврат ОтключитьсяОтФР(Объект, Пароль);
    КонецФункции
    //2Сергей  
    
    Это печать слипа в фискальнике
    --- Объединение сообщений, 8 авг 2018 ---
    ФИшка штрих фрк заключается в том что не умеет разбивать на строки длинный текст поэтому используется цикл для ограничения символов и поиска символов для отрезки слипа
    Последнее редактирование: 8 авг 2018

Поделиться этой страницей