Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Поделитесь кодом печати чеков на ШТРИХ-М

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

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

    //Возврат ОтключитьсяОтФР(Объект, Пароль);

    
КонецФункции
   Kigo_Kigo
 
6 - 15.02.18 - 17:08
Надеюсь разберешся
   Kigo_Kigo
 
7 - 15.02.18 - 17:09
там мусора много, но мне лень чистить
   vfire1000
 
8 - 15.02.18 - 17:25
(5) Спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует