Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Пробитие чека + Маркировка

v7: Пробитие чека + Маркировка
Я
   Mafiozaa
 
23.11.20 - 03:20
Приветствую, при пробитии чека с несколькими позициями (а не разным кол-вом) в офд уходит 1 код маркировки, вместо всех, так как по базе все прыгает хорошо, то уверен что где то в обработке фискальника ошибка возникает, обработка fr_elves. При этом все в цикле

Функция ПечататьЧек(Объект, Пароль, СписокТоваров, Получено, ПолучСерт, ПолучКарт, Скидка, ПризнВозврата, НомерСекции, НомерЧека,СкидкаСуммой,НомерДок)
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
        Возврат 0;
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
        Возврат 0;
    КонецЕсли;
    // регистрация товаров
    РезРегистрация = 1;
    СписокТоваров.ВыбратьСтроки();
    
    Объект.StringForPrinting = "          Товарный чек";    
    Объект.PrintString();                    
    Объект.StringForPrinting = "     "+    НомерДок+" от "+ТекущаяДата();
    Объект.PrintString();  
    
    Если (Нрег(глПользователь.Наименование))="кассир1"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир1)))+(Константа.Кассир1),32);    
        Объект.PrintString();  
    КонецЕсли;      
    
    
    Если (Нрег(глПользователь.Наименование))="кассир2"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир2)))+(Константа.Кассир2),32);    
        Объект.PrintString();  
    КонецЕсли;      
    
    Если (Нрег(глПользователь.Наименование))="кассир3"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир3)))+(Константа.Кассир3),32);    
        Объект.PrintString();  
    КонецЕсли;      
    
    Если (Нрег(глПользователь.Наименование))="кассир4"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир4)))+(Константа.Кассир4),32);    
        Объект.PrintString();                                                                
    КонецЕсли;      
    
    Если (Нрег(глПользователь.Наименование))="кассир5"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир5)))+(Константа.Кассир5),32);    
        Объект.PrintString();  
    КонецЕсли;      
    
    Если (Нрег(глПользователь.Наименование))="кассир6"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир6)))+(Константа.Кассир6),32);    
        Объект.PrintString();  
    КонецЕсли;      
    
    Если (Нрег(глПользователь.Наименование))="кассир7"  Тогда
        пробел ="                                 " ;
        Объект.StringForPrinting = Лев("Продавец:"+прав(пробел,32-(9+СтрДлина(Константа.Кассир7)))+(Константа.Кассир7),32);    
        Объект.PrintString();  
    КонецЕсли;      
    
    Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
        
        СтрокаДляПечати = СокрЛП(СписокТоваров.ТовНаим);
        ДлинаСтроки = 32;
        
        //Пока СтрДлина(СтрокаДляПечати)>0 Цикл
            //Объект.StringForPrinting = Лев(СтрокаДляПечати,ДлинаСтроки);
            //Объект.PrintString();
            //СтрокаДляПечати = СокрЛП(Сред(СтрокаДляПечати,ДлинаСтроки+1));
        //КонецЦикла;
        
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,ДлинаСтроки);
    //    Объект.Price             = СписокТоваров.Цена;  
    Если  СписокТоваров.Количество=0 тогда      
        Объект.Price             = СписокТоваров.Цена;  
    иначе
        Объект.Price             = СписокТоваров.Сумма/СписокТоваров.Количество;
    КонецЕсли;
        Объект.Quantity          = СписокТоваров.Количество;
        Объект.Department        = НомерСекции;
        КодМаркировки             = СписокТоваров.Маркировка;
        Если Лев(КодМаркировки, 2) = "01" Тогда
            GTIN = Сред(КодМаркировки, 3, 14);
            SerialNumber = Сред(КодМаркировки, 19, 13);
        КонецЕсли;
        Объект.FNOperation();
        Объект.GTIN              = GTIN;
        Объект.SerialNumber      = SerialNumber;
        Объект.MarkingType = 17485;
        Объект.FNSendItemData();
        //Проверка наличия колонки "НДС" в таблице значений.
        НДСЕсть = "";
        Попытка
            НДС = СписокТоваров.НДС;
            НДСЕсть = 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;
        КонецЕсли;                

        Если ПризнВозврата = 0 Тогда
            Объект.CheckType = 0;
        Иначе
            Объект.CheckType = 2;
        КонецЕсли;
        
        Объект.OpenCheck();
        
        Если Объект.ResultCode <> 0 Тогда
            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
            АннулированиеЧека(Объект, Пароль);
            ОтключитьсяОтФР(Объект, Пароль, 0);
            Возврат 0;
        КонецЕсли;  
        Если ПустоеЗначение(СписокТОваров.СкидкаПоСтроке) = 0 Тогда
            пробел ="................................" ;
            Объект.StringForPrinting = Лев("Стоимость"+прав(пробел,32-(9+СтрДлина(Формат(СписокТоваров.Цена*СписокТоваров.Количество,"Ч.2"))))+Формат(СписокТоваров.Цена*СписокТоваров.Количество,"Ч.2"),32);
            Объект.PrintString();//                                                  СписокТоваров.СкидкаПоСтроке
            Объект.StringForPrinting = "Скидка "+СписокТоваров.СкидкаПоСтроке+"%"+прав(пробел,32-(5+СтрДлина(СписокТоваров.СкидкаПоСтроке-СписокТоваров.СкидкаСпасибо)+СтрДлина(Формат((СписокТоваров.Цена*СписокТоваров.Количество-СписокТоваров.Сумма-СписокТоваров.СкидкаСпасибо),"Ч.2"))))+Формат(((СписокТоваров.Цена*СписокТоваров.Количество)-СписокТоваров.Сумма-СписокТоваров.СкидкаСпасибо),"Ч.2");
            Объект.PrintString();  
        //доб.скидка СПАСИБО
            Если пустоезначение(СписокТоваров.СкидкаСпасибо)=0 тогда
                Объект.StringForPrinting = "Скидка СПАСИБО"+прав(пробел,32-(10+СтрДлина(СписокТоваров.СкидкаСпасибо)+СтрДлина(Формат((СписокТоваров.СкидкаСпасибо),"Ч.2"))))+Формат(((СписокТоваров.СкидкаСпасибо)),"Ч.2");
                Объект.PrintString();
        
                Объект.StringForPrinting = "Общая скидка "+прав(пробел,32-(11+СтрДлина(СписокТоваров.СкидкаПоСтроке)+СтрДлина(Формат((СписокТоваров.Цена*СписокТоваров.Количество-СписокТоваров.Сумма),"Ч.2"))))+Формат(((СписокТоваров.Цена*СписокТоваров.Количество)-СписокТоваров.Сумма),"Ч.2");
                Объект.PrintString();  
            КонецЕсли;
            Объект.StringForPrinting     = Лев("Всего"+прав(пробел,32-(5+СтрДлина(Формат(СписокТоваров.Сумма,"Ч.2"))))+Формат(СписокТоваров.Сумма,"Ч.2"),32);
            Объект.PrintString();  
        ИначеЕсли ПустоеЗначение(СписокТОваров.СкидкаСпасибо) = 0 тогда
            пробел ="................................" ;
            Объект.StringForPrinting = Лев("Стоимость"+прав(пробел,32-(9+СтрДлина(Формат(СписокТоваров.Цена*СписокТоваров.Количество,"Ч.2"))))+Формат(СписокТоваров.Цена*СписокТоваров.Количество,"Ч.2"),32);
            Объект.PrintString();//
            Объект.StringForPrinting = "Скидка СПАСИБО"+прав(пробел,32-(10+СтрДлина(СписокТоваров.СкидкаСпасибо)+СтрДлина(Формат((СписокТоваров.СкидкаСпасибо),"Ч.2"))))+Формат(((СписокТоваров.СкидкаСпасибо)),"Ч.2");
            Объект.PrintString();
            Объект.StringForPrinting     = Лев("Всего"+прав(пробел,32-(5+СтрДлина(Формат(СписокТоваров.Сумма,"Ч.2"))))+Формат(СписокТоваров.Сумма,"Ч.2"),32);
            Объект.PrintString();        
        //конец скидка СПАСИБО
        КонецЕсли;
        //
                  
//         Если ПустоеЗначение(СписокТОваров.СкидкаПоСтроке) = 0 Тогда
//             
//                Объект.Password          = Пароль;
//        Объект.StringForPrinting = Лев(СтрокаДляПечати,ДлинаСтроки);
//    //    Объект.Price             = СписокТоваров.Цена;
//        Объект.Price             = СписокТоваров.Сумма/СписокТоваров.Количество;
//        Объект.Quantity          = СписокТоваров.Количество;
//        Объект.Department        = НомерСекции;
//        
//        //Проверка наличия колонки "НДС" в таблице значений.
//        НДСЕсть = "";
//        Попытка
//            НДС = СписокТоваров.НДС;
//            НДСЕсть = 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;
//        КонецЕсли;                
//
//        Если ПризнВозврата = 0 Тогда
//            Объект.Sale();
//        Иначе
//            Объект.ReturnSale();
//        КонецЕсли;                            
//        
//        Если Объект.ResultCode <> 0 Тогда
//            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
//            АннулированиеЧека(Объект, Пароль);
//            ОтключитьсяОтФР(Объект, Пароль, 0);
//            Возврат 0;
//        КонецЕсли;
//        
//    
//
//
//
//    КонецЕсли;
//        
        
        
        
        
        
        
        
    КонецЦикла;
      
    //Если СкидкаСуммой <> 0 тогда  
    //        Объект.StringForPrinting="        Спасибо за покупку";
    //        Объект.Summ1    = СкидкаСуммой;
    //        Объект.Discount();
    //КонецЕсли;      
    //    
    Объект.Password = Пароль;
    Объект.Summ1    = Получено;
    Объект.Summ2    = ПолучСерт;
    Объект.Summ3    = 0;
    Объект.Summ4    = ПолучКарт;  
        Объект.StringForPrinting=" ";


    Объект.StringForPrinting="        Спасибо за покупку";
    
    

    
    //    Объект.StringForPrinting=" ";
//    Сообщить("ывпаыв");
    Объект.DiscountOnCheck=Скидка;
    Объект.DiscountOnCheck=0;  
    
    
    
    
        
        
    Объект.CloseCheck();  
    
            
        

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

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


  



    Возврат ОтключитьсяОтФР(Объект, Пароль);
    
КонецФункции
   big
 
1 - 23.11.20 - 05:40
В цикле по строкам делается ОпенЧек, а закрытие всего одно? Сдается мне, что только последняя строка реально и регистрируется как в продажах, так и в ФН
   Mafiozaa
 
2 - 23.11.20 - 05:43
(1) Почему, в офд уходят все позиции чека, нормально все, а именно код маркировки который должен быть на каждую позицию, а уходит только крайней позиции в чеке,
   big
 
3 - 23.11.20 - 05:43
ОткрытьЧек() надо поставить перед циклом, вместо ОпенЧек поставить Объект.Регистрация()
   Mafiozaa
 
4 - 23.11.20 - 05:44
(3) Тут Штрих, не Атол
   Mafiozaa
 
5 - 23.11.20 - 05:45
(3) Но действительно, попробую открыть чек до цикла
   big
 
6 - 23.11.20 - 05:45
(4) А-а-а.  Какая-то интересная логика у Штриха ))
   Mafiozaa
 
7 - 24.11.20 - 05:03
Вверх, открытие чека до цикла не решило
   Mafiozaa
 
8 - 24.11.20 - 05:07
Продал 2 пары носков, в чеке есть 2 буквы [M] а в честном знаке, только у вторых виден код маркировки, а у первых прочерк
   Mafiozaa
 
9 - 24.11.20 - 05:20
Подозреваю что где то переменная затирает, пикаю все км, но передается один крайний, скорее всего неправильно передаю переменную
   MWWRuza
 
10 - 24.11.20 - 09:18
Блин... Разбираться в Вашем "километре" кода, да еще по форуму, не в живой программе, без отладчика... как-то напрягает.
Лучше Вы сами, вот Вам тоже "километр" кода, из моей конфы, где все работает нормально, все передается по всем позициям, сравнивайте:
Процедура ПечататьЧек()
    Док                = Расшифровка.Получить("Документ");
    Предоплата        = Расшифровка.Получить("Предоплата");
    Если Предоплата = 1 Тогда
       ПечататьЧекНаПредоплату();
       Возврат;
    КонецЕсли;
    Если ПустоеЗначение(Док) = 1 Тогда
        Возврат;
    КонецЕсли;
    ОбрДок            = Расшифровка.Получить("ОбрДок");
    Если ПустоеЗначение(ОбрДок)    = 1 Тогда
       ОбрДок        = Док; 
    КонецЕсли;
    Если ФискальныйРегистратор.ECRMode()         = 8 Тогда
        ФискальныйРегистратор.CancelCheck();
        Сообщить("Аннулирован незакрытый чек");
        //Дождемся - когда закончится печать отчета и отрежем ленту

        ОтрезкаЧека();
    ИначеЕсли ФискальныйРегистратор.ECRMode()     = 3 Тогда
        Если Вопрос("Смена превысила 24 часа!" + РазделительСтрок +
        "Снять Z-отчет?", "Да+Нет")    = "Нет" Тогда
            Предупреждение("Дальнейшая работа с ККМ невозможна!");
            Возврат;
        Иначе 
            ЗакрытиеСмены();
        КонецЕсли;
    КонецЕсли;
    ФискальныйРегистратор.Password                     = СокрЛП(глПользователь.ПарольККТ);
    ФискальныйРегистратор.GetFieldStruct();
    ФискальныйРегистратор.TableNumber                = 18;
    ФискальныйРегистратор.RowNumber                 = 1;
    ФискальныйРегистратор.FieldNumber                 = 5;
    Если Док.Подразделение.ОблагаетсяЕНВД = 1 Тогда 
        ФискальныйРегистратор.ValueOfFieldString    = 8;
    Иначе
        ФискальныйРегистратор.ValueOfFieldString    = 2;
    КонецЕсли;
    ФискальныйРегистратор.WriteTable();    
    ФискальныйРегистратор.StringForPrinting            = "№ документа :" + ОбрДок.НомерДок;
    ФискальныйРегистратор.PrintString();
    ФискальныйРегистратор.StringForPrinting            = "====================";
    ФискальныйРегистратор.PrintString();
    ФискальныйРегистратор.Department                 = Мин(15,Число(ОбрДок.Подразделение.Код));
    ОбрДок.ВыбратьСтроки();
    СуммаДокумента                                    = 0;
    
    Если ОбрДок.Вид() <> "ЗаказНаряд" Тогда
        Если ОбрДок.ЧекНаВозврат = 0 Тогда
            ФискальныйРегистратор.CheckType = 0;            
        Иначе
            ФискальныйРегистратор.CheckType    = 2;
        КонецЕсли;
    Иначе
        ФискальныйРегистратор.CheckType     = 0;
    КонецЕсли;
    Рез    = ФискальныйРегистратор.OpenCheck();        
    
    Пока ОбрДок.ПолучитьСтроку()    > 0 Цикл 
        Если ОбрДок.Вид()        = "ЗаказНаряд" Тогда
            Если ОбрДок.Наличие    = 4 Тогда
                Продолжить;
            КонецЕсли;   
        КонецЕсли;
        
        ПредстЦена                                    = Окр((ОбрДок.Сумма + ОбрДок.НП) / ОбрДок.Количество, 2, 1);
        СуммаДокумента                                = СуммаДокумента + ОбрДок.Количество * ПредстЦена;
        
        КТН     = СокрЛП(ОбрДок.КТН);
        
        Наим                                        = Лев(СтрокуНоменклатурыЧек(ОбрДок.Номенклатура.Наименование, ОбрДок.Номенклатура), 40);
        Если (ПустоеЗначение(КТН) = 0) И (ОбрДок.Касса.ПечПризнМарк = 1) Тогда
            ФискальныйРегистратор.StringForPrinting    = "[M] " + Наим;
        Иначе
            ФискальныйРегистратор.StringForPrinting    = Наим;
        КонецЕсли;    
        ФискальныйРегистратор.Price                    = ПредстЦена;
        ФискальныйРегистратор.Quantity                = ОбрДок.Количество;
        
        Рез = ФискальныйРегистратор.FNOperation();
        
        Если ПустоеЗначение(КТН) = 0 Тогда
            
            GTIN     = Сред(КТН, 3, 14);                            
            SerialNumber = Сред(КТН, 19, 13);
            
            ФискальныйРегистратор.MarkingType          = 17485//  Это "444D"    

            ФискальныйРегистратор.GTIN                 = GTIN;
            ФискальныйРегистратор.SerialNumber         = SerialNumber;
            Рез = ФискальныйРегистратор.FNSendItemCodeData();// отправка тега маркировки    

            
            //ФискальныйРегистратор.TLVDataHex = "8A041500444d000002C0EED8583F696F2B714341426D382020";

            //ФискальныйРегистратор.FNSendTLVOperation();

            
        КонецЕсли;    
        
        Если ОбработкаОшибок() <> 0 Тогда
            Возврат;
        КонецЕсли; 
    КонецЦикла;
    
    Получено                        = Число(Расшифровка.Получить("Получено"));
    Если Получено <= 0 Тогда
        Получено                    = СуммаДокумента;
    КонецЕсли;
    Если (Получено > 0) И (Получено > СуммаДокумента) Тогда
        ФискальныйРегистратор.Summ1             = Окр(Получено,2,1);
        ФискальныйРегистратор.Summ2             = 0;
        ФискальныйРегистратор.Summ3             = 0;
        ФискальныйРегистратор.Summ4             = 0;        
        ФискальныйРегистратор.StringForPrinting    = "====================";
        ФискальныйРегистратор.CloseCheck();
        ВыданаСдача                                = ФискальныйРегистратор.Change;
    Иначе
        Если Док.ВидОпл = Перечисление.ВидОплаты.Мир Тогда    
            ФискальныйРегистратор.Summ2         = Окр(СуммаДокумента,2,1); 
            ФискальныйРегистратор.Summ1         = 0;
            ФискальныйРегистратор.Summ3         = 0;
            ФискальныйРегистратор.Summ4         = 0;
        ИначеЕсли Док.ВидОпл = Перечисление.ВидОплаты.Visa Тогда    
            ФискальныйРегистратор.Summ3         = Окр(СуммаДокумента,2,1);
            ФискальныйРегистратор.Summ1         = 0;
            ФискальныйРегистратор.Summ2         = 0;
            ФискальныйРегистратор.Summ4         = 0;
        ИначеЕсли Док.ВидОпл = Перечисление.ВидОплаты.Master Тогда    
            ФискальныйРегистратор.Summ4         = Окр(СуммаДокумента,2,1);
            ФискальныйРегистратор.Summ1         = 0;
            ФискальныйРегистратор.Summ3         = 0;
            ФискальныйРегистратор.Summ2         = 0;
        Иначе
            ФискальныйРегистратор.Summ1         = Окр(СуммаДокумента,2,1);
            ФискальныйРегистратор.Summ2         = 0;
            ФискальныйРегистратор.Summ3         = 0;
            ФискальныйРегистратор.Summ4         = 0;            
        КонецЕсли;    
        ФискальныйРегистратор.StringForPrinting    = "====================";
        
    //    ФискальныйРегистратор.FNCloseCheckEx();

        
        ФискальныйРегистратор.CloseCheck();
    КонецЕсли; 
    Если ОбработкаОшибок() = 0 Тогда 
        Если Метаданные.Документ(Док.Вид()).РеквизитШапки("ЧекПробитККМ").Выбран()        = 1 Тогда
            Док.ЧекПробитККМ                     = 1;
        КонецЕсли;
        
        Если Метаданные.Документ(ОбрДок.Вид()).РеквизитШапки("ЧекПробитККМ").Выбран()    = 1 Тогда
            ОбрДок.ЧекПробитККМ                 = 1;
        КонецЕсли;
    Иначе
        Если Метаданные.Документ(Док.Вид()).РеквизитШапки("ЧекПробитККМ").Выбран()        = 1 Тогда
            Док.ЧекПробитККМ                     = 0;
        КонецЕсли;
        
        Если Метаданные.Документ(ОбрДок.Вид()).РеквизитШапки("ЧекПробитККМ").Выбран()    = 1 Тогда
            ОбрДок.ЧекПробитККМ                 = 0;
        КонецЕсли;
    КонецЕсли;
    
    Если Метаданные.Документ(Док.Вид()).РеквизитШапки("НомерЧекаККМ").Выбран()            = 1 Тогда
        Док.НомерЧекаККМ                         = ФискальныйРегистратор.DocumentNumber;
    КонецЕсли;
    
    Если Метаданные.Документ(ОбрДок.Вид()).РеквизитШапки("НомерЧекаККМ").Выбран()        = 1 Тогда
        ОбрДок.НомерЧекаККМ                     = ФискальныйРегистратор.DocumentNumber;
    КонецЕсли;

    Если Метаданные.Документ(ОбрДок.Вид()).РеквизитШапки("Касса").Выбран()                = 1 Тогда
        ОбрДок.Касса                             = ККМ;
    КонецЕсли;
    
    Если Метаданные.Документ(Док.Вид()).РеквизитШапки("Касса").Выбран()                    = 1 Тогда
        Док.Касса                                 = ККМ;
    КонецЕсли; 
    
    Если Метаданные.Документ(ОбрДок.Вид()).РеквизитШапки("ВыданаСдача").Выбран()        = 1 Тогда
        ОбрДок.ВыданаСдача                         = Получено - СуммаДокумента;
    КонецЕсли;
    
    Если Метаданные.Документ(Док.Вид()).РеквизитШапки("ВыданаСдача").Выбран()            = 1 Тогда
        Док.ВыданаСдача                         = Получено - СуммаДокумента;
    КонецЕсли;
    
    
    ФискальныйРегистратор.OpenDrawer(); 
    Если ОбработкаОшибок() <> 0 Тогда
        Возврат;
    КонецЕсли;
    ОтрезкаЧека();
КонецПроцедуры
   Mafiozaa
 
11 - 25.11.20 - 02:20
(10) С этим разобрался, спасибо за отклик))

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