Имя: Пароль:
1C
1С v8
Поделитесь кодом печати чеков на ШТРИХ-М
,
0 vfire1000
 
15.02.18
16:41
АТОЛ печатаю так:
driver = Новый ("AddIn.FPrnM8");
...
driver.Name    = Наименование;
driver.Price    = Цена;
driver.Quantity    = Количество;
...
driver.Registration();
driver.PrintString();
...

Поделитесь, пожалуйста, кодом для печати через драйвер ШТРИХа.
driver = Новый("AddIn.Drvfr");
...
И вот дальше долго читать документацию.
1 Kigo_Kigo
 
15.02.18
16:46
Обратитесь к специалисту, или ставьте яснее задачу, что требуется, что за ККТ?
2 vfire1000
 
15.02.18
16:54
(1) ШТРИХ-М-02Ф
3 Kigo_Kigo
 
15.02.18
16:58
(2) ККТ онлайн?
4 vfire1000
 
15.02.18
16:59
(3) да
5 Kigo_Kigo
 
15.02.18
17:08
Функция ПечататьЧек(Объект, Пароль, СписокТоваров, Получено1, Скидка, ПризнВозврата, НомерСекции, НомерЧека,ТипНалогов)
    
    //Если ПустоеЗначение(Объект) = 1 Тогда
    //    ОписаниеРезультата = "устройство не подключено";
    //    Возврат 0;
    //ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
    //    Возврат 0;
    //КонецЕсли;
    
    // регистрация товаров
    Объект.TaxType = ТипНалогов;
    РезРегистрация = 1;
//    СписокТоваров.ВыбратьСтроки();
    Получено1 = 0;  
//    Если СуммаСкидки <> 0 Тогда
//        СуммаВсего1 = СписокТоваров.Итог("Сумма");
//        СписокТоваров.ВыбратьСтроки();
//        Пока СписокТоваров.ПолучитьСтроку() = 1  Цикл
//            СписокТоваров.Сумма = СписокТоваров.Сумма - СписокТоваров.Сумма/СуммаВсего1*100 * СуммаСкидки/100;
//        КонецЦикла;
//    КонецЕсли;
//
        СуммаСкидкиНаЧек = 0;

        СписокТоваров.ВыбратьСтроки();
        
    Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
        СтрокаДляПечати = СписокТоваров.ТовНаим;
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
        
        Если СуммаСкидки = 0 Тогда
                        //ЦенаЦены =  СписокТоваров.Цена;

            Объект.Price       = СписокТоваров.Цена;
            Получено1 = Получено1+ СписокТоваров.Цена * СписокТоваров.Количество;

            
        Иначе
            СуммаСкидкиНаЧек  =СуммаСкидкиНаЧек +(СписокТоваров.Цена * СписокТоваров.Количество - СписокТоваров.Сумма);

            //ЦенаЦены =  СписокТоваров.Сумма/СписокТоваров.Количество;
            ЦенаЦены =Окр(СписокТоваров.Сумма/СписокТоваров.Количество);
            Объект.Price             = ЦенаЦены;
            Получено1 = Получено1+ ЦенаЦены * СписокТоваров.Количество;
        КонецЕсли;
        
        //Объект.Price             = СписокТоваров.Цена;
        Объект.Quantity          = СписокТоваров.Количество;
        Объект.Department        = НомерСекции;
        //Объект.DiscountValue = Скидка;
        //Объект.FNDiscountOperation();
        //Объект.FNOperation();
        //Проверка наличия колонки "НДС" в таблице значений.
        НДСЕсть = "";
        Попытка
            НДС = СписокТоваров.НДС;
            НДСЕсть = 1;
        Исключение
            НДСЕсть = 0;
        КонецПопытки;
        
        Если НДСЕсть = 1 Тогда//Печатаем НДС
            
            // В настройках ФР надо настроить ставки:
            // Налог 1 = 18% - НДС 18%
            // Налог 2 = 10% - НДС 10%
            // Налог 3 = 20% - НДС 20%            
    
            Если СписокТоваров.НДС = 18 Тогда
                Объект.Tax1 = 1;
            ИначеЕсли СписокТоваров.НДС = 10 Тогда
                Объект.Tax1 = 2;
            ИначеЕсли СписокТоваров.НДС = 20 Тогда
                Объект.Tax1 = 3;
            Иначе
                Объект.Tax1 = 0;
            КонецЕсли;
            Объект.Tax2 = 0;
            Объект.Tax3 = 0;
            Объект.Tax4 = 0;
            
            ДлинаСтроки = 36;
        Иначе
            ДлинаСтроки = 0;
        КонецЕсли;                

        Если ПризнВозврата = 0 Тогда
            Объект.Sale();
        Иначе
            Объект.ReturnSale();
        КонецЕсли;
            
//        СтрокаДляПечати = СписокТоваров.ТовНаим;
//        
//        
//        Если ПустоеЗначение(ДлинаСтроки) = 1 Тогда
//            Объект.StringForPrinting = СтрокаДляПечати;
//            //Объект.FNOperation();
//
//            Объект.PrintString();
//
//        Иначе
//            Пока СтрДлина(СтрокаДляПечати)>0 Цикл
//                Объект.StringForPrinting = Лев(СтрокаДляПечати,ДлинаСтроки);
//                //Объект.FNOperation();
//
//                Объект.PrintString();
//                СтрокаДляПечати = СокрЛП(Сред(СтрокаДляПечати,ДлинаСтроки+1));
//            КонецЦикла;
//        КонецЕсли;

        Если Объект.ResultCode <> 0 Тогда
            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
            АннулированиеЧека(Объект, Пароль);
            //ОтключитьсяОтФР(Объект, Пароль, 0);
            Возврат 0;
        КонецЕсли;
        
    КонецЦикла;
    Если константа.ПисатьСуммуСкидкиВЧеке = 1 тогда
        
        СтрокаДляПечати = "Сумма скидки на чек:" + Строка(глФРМ(СуммаСкидкиНаЧек,Валюта,1));
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
    Иначе
                СтрокаДляПечати = "__________________________"; //+ Строка(глФРМ(СуммаСкидки,Валюта,1));
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);

        КонецЕсли;

        
    Объект.Password = Пароль;
    Если ВидПлатежа = перечисление.ВидыПлатежа.Нал тогда
        Объект.Summ1    = Получено1;
    Иначе
        Объект.Summ1    = 0;
        Объект.Summ2    = Получено1;
        
        
    КонецЕсли;
    //Объект.Summ2    = 0;
    Объект.Summ3    = 0;
    Объект.Summ4    = 0;
    //Объект.StringForPrinting="Масло";
    //Объект.DiscountOnCheck=Скидка;
    //Объект.FNOperation();

    Объект.FNCloseCheckEx();
    Объект.CloseCheck();
    
    Если Объект.ResultCode <> 0 Тогда
        //Сообщить(Объект.ResultCode);
        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
        АннулированиеЧека(Объект, Пароль);
        ОтрезатьЧек(Объект, Пароль);
        //ОтключитьсяОтФР(Объект, Пароль, 0);
        Возврат 0;
    КонецЕсли;

    Объект.Password = Пароль;
    Объект.GetECRStatus();
    
    Если Объект.ResultCode <> 0 Тогда
        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
        //ОтключитьсяОтФР(Объект, Пароль, 0);
        Возврат 0;
    КонецЕсли;

    НомерЧека = Объект.OpenDocumentNumber+?(Объект.ECRAdvancedMode=5,1,0);
    
    ОтрезатьЧек(Объект, Пароль);

    //Возврат ОтключитьсяОтФР(Объект, Пароль);
    
КонецФункции
6 Kigo_Kigo
 
15.02.18
17:08
Надеюсь разберешся
7 Kigo_Kigo
 
15.02.18
17:09
там мусора много, но мне лень чистить
8 vfire1000
 
15.02.18
17:25
(5) Спасибо
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший