Имя: Пароль:
1C
1C 7.7
v7: Не уходит код маркировки в офд
0 Mafiozaa
 
23.10.20
05:02
Приветствую не уходит код маркировки передаю из 1с
Объект.MarkingType = 17485;
Объект.SerialNumber = "SerialNumber";
Объект.GTIN = GTIN;
Объект.FNSendItemCodeData();
Не уходит, попробывал напрямую вставить в тест драйвер ФН->КТ-> Там ручками вбил гтин серийник, при нажатие на отправить выдает 115 ошибку команда не поддерживается в данном режиме, прошивка 13.02.20 в чем проблема? смена открыта
1 victuan1
 
23.10.20
05:27
Непосредственно перед Объект.MarkingType = 17485 какой метод использован?
FNOperation()?
2 Mafiozaa
 
23.10.20
05:27
(1) Обработка fr_elves.ert тут нет FNOperation();
3 Mafiozaa
 
23.10.20
05:28
(1) Щас выложу весь код обработки
4 Mafiozaa
 
23.10.20
05:31
(1)
Перем ОписаниеРезультата;

//******************************************************************************
Функция ПолучитьОписаниеРезультата(Объект)
    Возврат Объект.ResultCodeDescription;
КонецФункции // ПолучитьОписаниеРезультата()

//********************************************************************************
Функция ПодключитьсяКФР(Объект, Пароль)
    Рез = 0;

    Объект.Password=Пароль;
    Объект.Connect();
    
    Ответ = Объект.ResultCode;
    Если Ответ=0 Тогда
        Рез=1;
    Иначе
        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
    КонецЕсли;
    
    Возврат Рез;
КонецФункции

//********************************************************************************
Функция ОтключитьсяОтФР(Объект, Пароль, ЗапоминатьОшибку = 1)
    Рез = 0;

    // пеключим ФР в нерабочий режим
    Объект.Password=Пароль;
    Объект.Disconnect();
    
    Ответ = Объект.ResultCode;
    Если Ответ=0 Тогда
        Рез=1;
    ИначеЕсли ЗапоминатьОшибку = 1 Тогда
        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
    КонецЕсли;
    
    Возврат Рез;
КонецФункции

//********************************************************************************
Функция Подключить(Компонента, ПрогИд, Объект, Пароль)
    Рез = 0;
    
    Если ЗагрузитьВнешнююКомпоненту(Компонента) = 0  Тогда
        ОписаниеРезультата = "не удалось загрузить внешнюю компоненту """ + Компонента + """";
    Иначе
        Попытка
            Объект = СоздатьОбъект("AddIn." + ПрогИд);  // Создание объекта внешней компоненты
        Исключение
        КонецПопытки;
        
        Если ПустоеЗначение(Объект) = 1 Тогда
            ОписаниеРезультата = "не удалось создать объект внешней компоненты с программым идентификатром AddIn." + ПрогИд;
        Иначе
            Рез = 1;
        КонецЕсли;
    КонецЕсли;
    
    Возврат Рез;
КонецФункции

//********************************************************************************
Функция Отключить(Объект, Пароль)
    Рез = 0;
    
    Если ПустоеЗначение(Объект) = 1 Тогда
        Рез = 1; // нет объекта, ничего не нужно отключать
    Иначе
        Рез = ОтключитьсяОтФР(Объект, Пароль);
    КонецЕсли;

    Возврат Рез;    
КонецФункции

//********************************************************************************
Процедура ОтрезатьЧек(Объект, Пароль)
    Ошибка=80;    //Идет печать предыдущей команды
    
    Пока Ошибка=80 Цикл
        Попытка
            Объект.Password = Пароль;
            Объект.CutType  = 1;
            Объект.CutCheck();
    
            Ошибка=Объект.ResultCode;
        Исключение
            Ошибка=-1;
        КонецПопытки;
    КонецЦикла;
    
КонецПроцедуры

//********************************************************************************
Процедура АннулированиеЧека(Объект, Пароль)
    Попытка
        Объект.Password=Пароль;
        Объект.CancelCheck();
    Исключение
    КонецПопытки;
КонецПроцедуры

//********************************************************************************  
Функция ПечататьТекст(Объект, Пароль, Текст)
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
        Возврат 0;
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
        Возврат 0;
    КонецЕсли;

    КолСтр=СтрКоличествоСтрок(Текст);
    Для ц = 1 По КолСтр Цикл
        Стр=СтрПолучитьСтроку(Текст,ц);
      Объект.StringForPrinting=Стр ;
      Объект.PrintString();
КонецЦикла;
    ОтрезатьЧек(Объект, Пароль);
    Возврат ОтключитьсяОтФР(Объект, Пароль);
КонецФункции
//********************************************************************************
Функция ПечататьТекстСпасибо(Объект, Пароль, Текст)
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
        Возврат 0;
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
        Возврат 0;
    КонецЕсли;

    КолСтр=СтрКоличествоСтрок(Текст);
    Для ц = 1 По КолСтр*1.5 Цикл
        Стр=СтрПолучитьСтроку(Текст,ц);
      Объект.StringForPrinting=Стр;
      Объект.PrintString();
      Объект.StringForPrinting=" ";
      Объект.PrintString();
    КонецЦикла;    
    
    ОтрезатьЧек(Объект, Пароль);
    Возврат ОтключитьсяОтФР(Объект, Пароль);
КонецФункции

//********************************************************************************
Функция ПечататьЧек(Объект, Пароль, СписокТоваров, Получено, ПолучСерт, ПолучКарт, Скидка, ПризнВозврата, НомерСекции, НомерЧека,СкидкаСуммой,НомерДок)
    Если ПустоеЗначение(Объект) = 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        = НомерСекции;
        
        //Проверка наличия колонки "НДС" в таблице значений.
        НДСЕсть = "";
        Попытка
            НДС = СписокТоваров.НДС;
            НДСЕсть = 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 = Лев("Стоимость"+прав(пробел,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);
    
//    ОтрезатьЧек(Объект, Пароль);      


  



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

//********************************************************************************
Функция ЗакрытьСмену(Объект, Пароль, НомерЛенты)
    Рез = 0;
    
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 1 Тогда
        // переключение в режим снятия отчета (нужен пароль администратора)
        Объект.Password = Пароль;
        Объект.PrintReportWithCleaning();

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

        Объект.Password = Пароль;
        Объект.GetECRStatus();
            
        Если Объект.ResultCode <> 0 Тогда
            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
            ОтключитьсяОтФР(Объект, Пароль, 0);
            Возврат 0;
        КонецЕсли;
        
        НомерЛенты = Объект.SessionNumber+?(Объект.ECRAdvancedMode=5,1,0);

        ОтрезатьЧек(Объект, Пароль);

        Рез = ОтключитьсяОтФР(Объект, Пароль);
    КонецЕсли;
    
    Возврат Рез;
КонецФункции
                                      

  ///////////////////////////////////////////////
  
Функция ОткрытьСмену(Объект, Пароль, НомерЛенты)
    Рез = 0;
    
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 1 Тогда
        // переключение в режим снятия отчета (нужен пароль администратора)
        Объект.Password = Пароль;
    Объект.OpenSession();
    КонецЕсли;
    
    Возврат Рез;
КонецФункции          


Функция СнятьХотчет(Объект, Пароль, НомерЛенты)
    Рез = 0;
    
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 1 Тогда
        // переключение в режим снятия отчета (нужен пароль администратора)
        Объект.Password = Пароль;
    //    Объект.PrintReportWithCleaning();  
        Объект.PrintReportWithoutCleaning();
    КонецЕсли;
    
    Возврат Рез;
КонецФункции

//********************************************************************************
Функция ПроверкаПароля (Пароль)
    Если ПустаяСтрока(Пароль) = 1 Тогда
        Ответ = "неправильно указан пароль пользователя";
        Возврат Ответ;
    Иначе
        Попытка
            ПарольЧислом = Число(Пароль);
        Исключение
            Ответ = "неправильно указан пароль пользователя";
            Возврат Ответ;
        КонецПопытки;
    КонецЕсли;

    Возврат "";
КонецФункции

//********************************************************************************
Процедура ПриОткрытии()
    Перем Объект, НомерЧека, НомерЛенты, Парам;
    СтатусВозврата(0);
    Форма.Параметр.Выгрузить(Парам);
    Форма.Параметр.УдалитьВсе();
    
    Если Парам.РазмерСписка() = 0 Тогда
        Рез = 0;
        ОписаниеРезультата = "в обработку не переданы параметры";
    Иначе
        
        Процесс = НРег(Парам.Получить("Процесс"));
        
        Если Процесс = "подключить" Тогда            
            
            Компонента = Парам.Получить("Компонента");
            ПрогИд     = Парам.Получить("ПрогИд");
            Пароль     = Парам.Получить("ПарольПользователя");
            
            ОписаниеРезультата = ПроверкаПароля (Пароль);
            Если ОписаниеРезультата <> "" Тогда                
                Рез = 0;
            Иначе
                Рез = Подключить(Компонента, ПрогИд, Объект, Пароль);
                Форма.Параметр.Установить("Объект", Объект);
            КонецЕсли;
            
        ИначеЕсли Процесс = "отключить" Тогда
            
            Рез = Отключить(Объект, Пароль);
        ИначеЕсли Процесс = "печатать_текст" Тогда
            Объект        = Парам.Получить("Объект");
            Пароль        = Парам.Получить("ПарольПользователя");
            Текст = Парам.Получить("Текст");
            ОписаниеРезультата = ПроверкаПароля (Пароль);
            Если ОписаниеРезультата <> "" Тогда                
                Рез = 0;
            Иначе
                Рез = ПечататьТекст(Объект, Пароль, Текст);
            КонецЕсли;
        ИначеЕсли Процесс = "печатать_текст_спасибо" Тогда
            Объект        = Парам.Получить("Объект");
            Пароль        = Парам.Получить("ПарольПользователя");
            Текст = Парам.Получить("Текст");
            ОписаниеРезультата = ПроверкаПароля (Пароль);
            Если ОписаниеРезультата <> "" Тогда                
                Рез = 0;
            Иначе
                Рез = ПечататьТекстСпасибо(Объект, Пароль, Текст);
            КонецЕсли;
            

        ИначеЕсли Процесс = "печатать_чек" Тогда

            Объект        = Парам.Получить("Объект");
            Пароль        = Парам.Получить("ПарольПользователя");
            СписокТоваров = Парам.Получить("СписокТоваров");
            Получено      = Парам.Получить("Получено");
            ПолучСерт     = Парам.Получить("ПолучСерт");
            ПолучКарт     = Парам.Получить("ПолучКарт");
            ЧекНаВозврат  = Парам.Получить("Возврат");
            НомерСекции   = Парам.Получить("НомерСекции");
            Скидка        = Парам.Получить("Скидка");
            СкидкаСуммой  = Парам.Получить("СкидкаСуммой");
            НомерДок1     = Парам.Получить("НомерДок1");
            
            
        
            ОписаниеРезультата = ПроверкаПароля (Пароль);
            Если ОписаниеРезультата <> "" Тогда                
                Рез = 0;
            Иначе;
                Рез = ПечататьЧек(Объект, Пароль, СписокТоваров, Получено, ПолучСерт, ПолучКарт, Скидка, ЧекНаВозврат, НомерСекции, НомерЧека,СкидкаСуммой,НомерДок1);
                Форма.Параметр.Установить("НомерЧека", НомерЧека);
                Объект.MarkingType = 17485;
                Объект.GTIN = GTIN;
                Объект.SerialNumber = SerialNumber;
                Объект.FNSendItemCodeData();
            КонецЕсли;
            
            
        ИначеЕсли Процесс = "закрыть_смену" Тогда
            Объект  = Парам.Получить("Объект");
            Пароль  = Парам.Получить("ПарольАдминистратора");
            
            Если Число(Пароль)=0 Тогда
                Рез = 0;
                ОписаниеРезультата = "неправильно указан пароль администратора";
            Иначе
                Рез = ЗакрытьСмену(Объект, Пароль, НомерЛенты);
                Форма.Параметр.Установить("НомерЛенты", НомерЛенты);
            КонецЕсли;  
            
        ИначеЕсли Процесс = "открыть_смену" Тогда
            
        ///    Сообщить("Мытут");                              
            
            Объект  = Парам.Получить("Объект");
            Пароль  = Парам.Получить("ПарольАдминистратора");
            
            Рез = ОткрытьСмену(Объект, Пароль, НомерЛенты);
            
            ИначеЕсли Процесс = "снятьхотчет" Тогда
            
        ///    Сообщить("Мытут");                              
            
            Объект  = Парам.Получить("Объект");
            Пароль  = Парам.Получить("ПарольАдминистратора");
            
            Рез = СнятьХотчет(Объект, Пароль, НомерЛенты);
                
            //Если Число(Пароль)=0 Тогда
            //    Рез = 0;
            //    ОписаниеРезультата = "неправильно указан пароль администратора";
            //Иначе
            //    Рез = ОткрытьСмену(Объект, Пароль, НомерЛенты);
            //    Форма.Параметр.Установить("НомерЛенты", НомерЛенты);
            //КонецЕсли;  
            //
        
        Иначе
            ОписаниеРезультата = "неизвестная команда";
            Рез = 0;
            
        КонецЕсли;
    КонецЕсли;

    Форма.Параметр.Установить("Результат"         , Рез);
    Форма.Параметр.Установить("ОписаниеРезультата", ОписаниеРезультата);
    
КонецПроцедуры

//********************************************************************************
ОписаниеРезультата = "";
5 Mafiozaa
 
23.10.20
05:38
(1) Или мне самому можно добавить этот FNOperation и после него прописать передачу?
6 victuan1
 
23.10.20
06:11
В коде используются устаревшие методы:
Если ПризнВозврата = 0 Тогда
    Объект.Sale();
Иначе
    Объект.ReturnSale();
КонецЕсли;          

С ними передача тега 1162 невозможна.

Надо полностью переписывать код обработки под новые принципы работы, в частности для регистрации позиции в чеке использовать FNOperation вместо Sale / ReturnSale
7 Mafiozaa
 
23.10.20
06:55
(6) Хорошо,предположим, тогда почему я не могу напрямки с тест драйвера послать код, 115 ошибку выдает
8 Kigo_Kigo
 
23.10.20
08:14
Серьезно?

ИначеЕсли Процесс = "печатать_чек" Тогда

            Объект        = Парам.Получить("Объект");
            Пароль        = Парам.Получить("ПарольПользователя");
            СписокТоваров = Парам.Получить("СписокТоваров");
            Получено      = Парам.Получить("Получено");
            ПолучСерт     = Парам.Получить("ПолучСерт");
            ПолучКарт     = Парам.Получить("ПолучКарт");
            ЧекНаВозврат  = Парам.Получить("Возврат");
            НомерСекции   = Парам.Получить("НомерСекции");
            Скидка        = Парам.Получить("Скидка");
            СкидкаСуммой  = Парам.Получить("СкидкаСуммой");
            НомерДок1     = Парам.Получить("НомерДок1");
            
            
        
            ОписаниеРезультата = ПроверкаПароля (Пароль);
            Если ОписаниеРезультата <> "" Тогда                
                Рез = 0;
            Иначе;
                Рез = ПечататьЧек(Объект, Пароль, СписокТоваров, Получено, ПолучСерт, ПолучКарт, Скидка, ЧекНаВозврат, НомерСекции, НомерЧека,СкидкаСуммой,НомерДок1);
                Форма.Параметр.Установить("НомерЧека", НомерЧека);
                Объект.MarkingType = 17485;
                Объект.GTIN = GTIN;
                Объект.SerialNumber = SerialNumber;
                Объект.FNSendItemCodeData();
            КонецЕсли;
9 Mafiozaa
 
23.10.20
08:16
(8) Не совсем догнал, о чем вы, обработка стандартная, мною добавлено лишь
                Объект.MarkingType = 17485;
                Объект.GTIN = GTIN;
                Объект.SerialNumber = SerialNumber;
                Объект.FNSendItemCodeData();
Так как вся инфа ставить после FNOperation, я попробывал затолкнуть сюда, я сделал что то не то? подсказка?
10 Kigo_Kigo
 
23.10.20
08:17
(6) Покажи как надо, у меня сча такая же проблема, драйвер маркировку хавает, а нигде она не появляется
(9) Маркировка передается для каждой позиции отдельно
после
Если НДСЕсть = 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;
        КонецЕсли;

Объект.MarkingType = 17485;
                Объект.GTIN = GTIN;
                Объект.SerialNumber = SerialNumber;
                Объект.FNSendItemCodeData();
11 Mafiozaa
 
23.10.20
08:28
(10) Брат, подскинь всю обработку, полистаю гляну может еще что не так, у тебя так же fr_elves?
12 Kigo_Kigo
 
23.10.20
08:34
(11) Там все тоже самое что и у тебя только добавлено

        Если НДСЕсть = 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();
        КонецЕсли;
        
        Если ПустоеЗначение(СокрЛП(СписотТоваров.Маркировка)) = 0 Тогда
            КМ = СокрЛП(СписотТоваров.Маркировка);
            GTIN = Сред(КМ, 3, 14);                            
            SerialNumber = Сред(КМ, 19, 13);
            
            Объект.Пароль = Пароль;  
            Объект.MarkingType         = 17485;//  Это "444D"    
            Объект.GTIN             = GTIN;
            Объект.SerialNumber     = SerialNumber;
            Объект.FNSendItemCodeData(); // отправка тега маркировки
        КонецЕсли;
13 Kigo_Kigo
 
23.10.20
08:34
СписотТоваров = СписокТоваров
14 Mafiozaa
 
23.10.20
08:43
(13) А пробывал через тест драйвера напрямую отправить код?
15 Kigo_Kigo
 
23.10.20
08:48
(14) там как то надо открыть чек, загнать туда товар цену количество, только после этого можно попробовать загнать туда маркировку - в лоб, тоже самое что и у тебя - "команда не поддерживается"
16 Mafiozaa
 
23.10.20
08:51
(15) Теперь и этот вариант откидываю, читал что действительно
Если ПризнВозврата = 0 Тогда
    Объект.Sale();
Иначе
    Объект.ReturnSale();
КонецЕсли;
Что это устаревшая конструкция, и при нем якобы отправка тега не возможна, но при этом нигде не нашел обработки с FNOperation
А пробывал отправлять xehom?
17 Kigo_Kigo
 
23.10.20
09:10
Вот что надыбал
FNOperation()
убираем из конструкции

Если ПризнВозврата = 0 Тогда
    Объект.Sale();
Иначе
    Объект.ReturnSale();
КонецЕсли;

вместо в начале чека вставляем
Если ПризнВозврата = 0 Тогда
Объект.CheckType= 0; // «0» - продажа, «1» - покупка, «2» - возврат продажи, «3» - возврат покупки.
Иначе
Объект.CheckType= 2;
КонецЕсли;
рез=Объект.OpenCheck();    

Если рез<>0 Тогда
    Сообщить("НапечататьЧек, ошибка открытия нового чека: "+Объект.ResultCodeDescription);
    рКодОшибки=Объект.ResultCode;
        
КонецЕсли;

потом

Если ПустоеЗначение(СокрЛП(СписотТоваров.Маркировка)) = 0 Тогда
            КМ = СокрЛП(СписотТоваров.Маркировка);
            GTIN = Сред(КМ, 3, 14);                            
            SerialNumber = Сред(КМ, 19, 13);
            
            Объект.Пароль = Пароль;  
            Объект.MarkingType         = 17485//  Это "444D"    

            Объект.GTIN             = GTIN;
            Объект.SerialNumber     = SerialNumber;
            Объект.FNSendItemCodeData();// отправка тега маркировки

        КонецЕсли;
Объект.FNOperation();
18 Mafiozaa
 
23.10.20
09:18
(17) Хорошо, щас буду пробовать, вперед сделаю, отпишусь, но если вдруг ты скорее, отпишись, будь любезен)
19 Kigo_Kigo
 
23.10.20
09:28
(18) у меня точка только в 11 откроется, тоже буду пробовать
20 Mafiozaa
 
23.10.20
09:31
(19) А скинь ссылку где вычитал, пошарю
21 Mafiozaa
 
23.10.20
09:32
(19) У меня в ваши 11, моя уже закрывается))
22 Mafiozaa
 
23.10.20
09:35
(19) Нашел вот такую ссылку Поделитесь кодом печати чеков на ШТРИХ-М
вы там скидываете код, и у вас закоменченный FNOperation там есть
23 Kigo_Kigo
 
23.10.20
09:44
(22) уже все перерабатываю, там я пишу что у меня нигде этот код не появляется, но та ветка в основном о получении и подготовки маркировки, так как у меня не горит, по этому разбираюсь по ходу и не спеша, вот и ваша ветка стала мне полезна

про Объект.FNOperation();
тут http://catalog.mista.ru/1c/articles/617491/
код из 17 можете смело пробовать, только в таблицу СписокТоваров не забудьте добавить "Маркировка", в Чеке в ТЧ колонку "Маркировку", куда загоняйте данные с СканераШК, как разобрать код вы знаете
24 Kigo_Kigo
 
23.10.20
09:45
А вот еще по теме
Отправка кода через ККТ
25 Mafiozaa
 
23.10.20
09:50
(23) Ну у меня как, когда оформляю чекккм есть реквизит тч кодмаркировки, в него залетает весь код со сканера и там же обрезается все лишнее, в обработку печати приходят уже готовые данные для отправки
26 Kigo_Kigo
 
23.10.20
09:53
код из 17 сам подготавливает и обрезает, ну как хотите, тогда в печать чека надо передававть 2 параметра плюсом GTIN;  и SerialNumber;
27 Mafiozaa
 
23.10.20
09:55
(26) Это я вижу что он у вас в обработке уже режет, но почему FNOperation после всех процедур, хотя везде пишут что он должен быть до
28 Kigo_Kigo
 
23.10.20
10:03
(27) FNOperation() это операция регистрации одной строки одного товара чека

вначале чека

Если ПризнВозврата = 0 Тогда
Объект.CheckType= 0;// «0» - продажа, «1» - покупка, «2» - возврат продажи, «3» - возврат покупки.

Иначе
Объект.CheckType= 2;
КонецЕсли;
рез=Объект.OpenCheck();    

Если рез<>0 Тогда
    Сообщить("НапечататьЧек, ошибка открытия нового чека: "+Объект.ResultCodeDescription);
    рКодОшибки=Объект.ResultCode;
        
КонецЕсли;
//*************************************
код регистрации товара
//************************************

Если НДСЕсть = 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 Тогда
            КМ = СокрЛП(СписотТоваров.Маркировка);
            GTIN = Сред(КМ, 3, 14);                            
            SerialNumber = Сред(КМ, 19, 13);
            
            Объект.Пароль = Пароль;  
            Объект.MarkingType         = 1748//  Это "444D"    


            Объект.GTIN             = GTIN;
            Объект.SerialNumber     = SerialNumber;
            Объект.FNSendItemCodeData()// отправка тега маркировки


        КонецЕсли;
Объект.FNOperation();

потом конец цикла
потоом закрываем чек

Объект.FNCloseCheckEx();
    Объект.CloseCheck();
29 Kigo_Kigo
 
23.10.20
10:06
(27) в 23 посмотрите там код выкладывали, где он должен быть

Процедура ФнОперация(ТипЧека,Цена,Количество,Налог,Сумма, ПризнакСпособаРасчета, ПризнакПредметаРасчета, Наименование)
    FR2.CheckType = ТипЧека;
    FR2.Price = Цена;
    FR2.Quantity = Количество;
    FR2.Tax1 = Налог;
    FR2.Department = 1;
    FR2.Summ1 = Сумма;
    FR2.PaymentTypeSign = ПризнакСпособаРасчета;
    FR2.PaymentItemSign = ПризнакПредметаРасчета;
    FR2.StringForPrinting = Наименование;  
    FR2.FNOperation();  
КонецПроцедуры
30 Kigo_Kigo
 
23.10.20
10:36
Попробовал с FR2.FNOperation(); не прокатилов в ОФД маркировка не появилась, грусть печаль
31 Mafiozaa
 
23.10.20
10:43
(30) Я не смог до конца проверить, точка работает, не могу свободно поиграться, а скажи пожалуйста, какая версия драйвера у тебя 4.15 ... 829?
Если вдруг добьешь,чирикни
32 Kigo_Kigo
 
23.10.20
10:54
не, драйвер DrvFR_4_15_821, что то я не нашел 829 на офф сайте штриха
33 Mafiozaa
 
23.10.20
10:56
34 Kigo_Kigo
 
23.10.20
11:03
(33) Посмотрел на точке 829 стоит, ссори, эт у меня на лок машине для тестов 821
35 lodger
 
23.10.20
11:11
(28) а где FNSendItemCodeData()?
36 Kigo_Kigo
 
23.10.20
11:27
(35) А повнимательнее посмотреть?
37 Kigo_Kigo
 
23.10.20
11:34
Вот полный код, что я делаю не так?


Функция ПечататьЧек(Объект, Пароль, СписокТоваров, Получено1, Скидка, ПризнВозврата, НомерСекции, НомерЧека,ТипНалогов)
    
    Если ПризнВозврата = 0 Тогда
        Объект.CheckType= 0// «0» - продажа, «1» - покупка, «2» - возврат продажи, «3» - возврат покупки.
        
        
    Иначе
        Объект.CheckType= 2;
    КонецЕсли;
    рез=Объект.OpenCheck();    
    
    Если рез<>0 Тогда
        Сообщить("НапечататьЧек, ошибка открытия нового чека: "+Объект.ResultCodeDescription);
        рКодОшибки=Объект.ResultCode;
        
    КонецЕсли;
    
    
    // регистрация товаров
    Объект.TaxType = ТипНалогов;
    РезРегистрация = 1;
    Получено1 = 0;  
    КорректноКудаОтправитьЧек = -1;//-1 не ввден, 1- корректно,0 не корректно
    
    Если ПустоеЗначение(КудаОтправитьЧек) = 0 Тогда
        Если Найти(СокрЛП(КудаОтправитьЧек),"@") <> 0 Тогда
            КорректноКудаОтправитьЧек = 1;
        ИначеЕсли Лев(СокрЛП(КудаОтправитьЧек),2) = "+7" Тогда
            КорректноКудаОтправитьЧек = 1;
        Иначе
            КорректноКудаОтправитьЧек = 0;
            Если Вопрос("Не корректно введен email или номер телефона клиента, пробить обычный чек?",4) = 6 Тогда
                КорректноКудаОтправитьЧек = -1;
            Иначе
                Предупреждение("Проверте  email или номер телефона клиента, номер телефона должен начинаться на +7");
                Возврат 0;    
            КонецЕсли;
            
        КонецЕсли;
    КонецЕсли;
    Объект.Password          = Пароль;
    Если СокрЛП(Продавец.ИНН) <> "" Тогда
        Объект.TagNumber  = 1203;
        Объект.TagType = 7;
        
        Объект.TagValueStr = СокрЛП(Продавец.ИНН);
        Объект.FNSendTag();
    КонецЕсли;
    СуммаСкидкиНаЧек = 0;
    
    СписокТоваров.ВыбратьСтроки();
    
    Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
        СтрокаДляПечати = СписокТоваров.ТовНаим;
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
        
        Если СуммаСкидки = 0 Тогда
            Объект.Price       = СписокТоваров.Цена;
            Получено1 = Получено1+ СписокТоваров.Цена * СписокТоваров.Количество;
            
        Иначе
            СуммаСкидкиНаЧек  =СуммаСкидкиНаЧек +(СписокТоваров.Цена * СписокТоваров.Количество - СписокТоваров.Сумма);
            ЦенаЦены =Окр(СписокТоваров.Сумма/СписокТоваров.Количество,2);
            Объект.Price             = ЦенаЦены;
            Получено1 = Получено1+ ЦенаЦены * СписокТоваров.Количество;
        КонецЕсли;
        Объект.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;
            ДлинаСтроки = 36;
        Иначе
            ДлинаСтроки = 0;
        КонецЕсли;
        Если ПустоеЗначение(СокрЛП(СписокТоваров.Маркировка)) = 0 Тогда
            КМ = СокрЛП(СписокТоваров.Маркировка);
            GTIN = Сред(КМ, 3, 14);                            
            SerialNumber = Сред(КМ, 19, 13);
            
            Объект.Пароль = Пароль;  
            Объект.MarkingType         = 17485;//  Это "444D"    
            Объект.GTIN             = GTIN;
            Объект.SerialNumber     = SerialNumber;
            Объект.FNSendItemCodeData(); // отправка тега маркировки
        КонецЕсли;
        Объект.FNOperation();
        Если Объект.ResultCode <> 0 Тогда
            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
            АннулированиеЧека(Объект, Пароль);
            Сообщить(ОписаниеРезультата);
            Возврат 0;
        КонецЕсли;
        
    КонецЦикла;
    Если константа.ПисатьСуммуСкидкиВЧеке = 1 тогда
        
        СтрокаДляПечати = "Сумма скидки на чек:" + Строка(глФРМ(СуммаСкидкиНаЧек,Валюта,1));
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
    Иначе
        СтрокаДляПечати = "__________________________"; //+ Строка(глФРМ(СуммаСкидки,Валюта,1));
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
        
    КонецЕсли;
    
    Объект.Password = Пароль;
    Если ВидПлатежа = перечисление.ВидыПлатежа.Нал тогда
        Объект.Summ1    = Получено1;
        Объект.Summ2 = 0;
    Иначе
        Объект.Summ1    = 0;
        Объект.Summ2    = Получено1;
        
        
    КонецЕсли;
    Объект.Summ3    = 0;
    Объект.Summ4    = 0;
    Объект.FNCloseCheckEx();
    Объект.CloseCheck();
    
    Если Объект.ResultCode <> 0 Тогда
        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
        АннулированиеЧека(Объект, Пароль);
        ОтрезатьЧек(Объект, Пароль);
        Сообщить(ОписаниеРезультата);
        Возврат 0;
    КонецЕсли;
    
    Объект.Password = Пароль;
    Объект.GetECRStatus();
    
    Если Объект.ResultCode <> 0 Тогда
        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
        Сообщить(ОписаниеРезультата);
        Возврат 0;
    КонецЕсли;
    
    НомерЧека = Объект.OpenDocumentNumber+?(Объект.ECRAdvancedMode=5,1,0);
КонецФункции
38 lodger
 
23.10.20
11:43
(37) а. я его после FNOperation искал.
39 Kigo_Kigo
 
23.10.20
13:07
подниму тему, может кто то что то подскажет?
40 victuan1
 
23.10.20
17:59
(39) Сколько времени уже потеряно, может проще готовое решение взять?
http://catalog.mista.ru/public/603118/
41 lodger
 
24.10.20
11:23
(39) из Руководство программиста:
FNSendItemCodeData
ФНОтправитьКТН
Отправляет тег 1162 (Код товарной номенклатуры), привязанный к операции.
Метод должен вызываться только после метода FNOperation.
42 Kigo_Kigo
 
24.10.20
15:29
(41) ТО есть вот так?
Если ПустоеЗначение(СокрЛП(СписокТоваров.Маркировка)) = 0 Тогда
            КМ = СокрЛП(СписокТоваров.Маркировка);
            GTIN = Сред(КМ, 3, 14);                            
            SerialNumber = Сред(КМ, 19, 13);
            
            Объект.Пароль = Пароль;  
            Объект.MarkingType         = 17485//  Это "444D"    

            Объект.GTIN             = GTIN;
            Объект.SerialNumber     = SerialNumber;
            Объект.FNOperation();
            Объект.FNSendItemCodeData();// отправка тега маркировки

        КонецЕсли;
43 lodger
 
24.10.20
15:41
Объект.FNOperation();

перед

Если ПустоеЗначение(СокрЛП(СписокТоваров.Маркировка)) = 0 Тогда
44 Mafiozaa
 
26.10.20
04:55
(42) Приветствую, ну что разобрался? Сижу кручу верчу обработку, у тебя не получилось?
45 Mafiozaa
 
26.10.20
05:26
(42) Вот нашел такое
Заменить Sale() на FNOperation()
Заменить CloseCheck() на CloseCheckEX()
После этих манипуляций стало ругаться на Неверное значение свойства GTIN. возможно в типах данных что то не то, попробую,отпишусь
46 victuan1
 
26.10.20
05:48
(45) Ну-ну. Про FNOperation написано еще в (6).
Заменять CloseCheck() на CloseCheckEX() необязательно.
PS. Побежал за покорном))
47 Mafiozaa
 
26.10.20
05:49
(46) (42)  Привет, было написано да, вот только куда толкать его пришлось искать, ну вручную строкой вбил код, все ушло все четко, щас передам переменную текстом, и все, домучаю)
48 Mafiozaa
 
26.10.20
05:50
(46) И за твое содействие спасибо, я сегодня думал если не добью, буду тебе в личку строчить, но слава богу не дошло)
49 victuan1
 
26.10.20
22:19
(48) Ну и отлично, что решилось. Удачи!
50 Pavlik56
 
14.01.21
19:00
Здравствуйте!
Пожалуйста выложите итоговую версию. Что у Вас получилось. НЕ могу сложить пазл. Задолбала ошибка 55. Где то что-то пропускаю.
С самого начала обращения к драйверу.
51 victuan1
 
15.01.21
07:18
(50) Давно выложена итоговая версия http://catalog.mista.ru/public/603118/
52 victuan1
 
15.01.21
07:18
(50) Там есть бесплатная Демо.
53 Mafiozaa
 
15.01.21
08:08
(50) Штрих? Версия прошивки?
54 Pavlik56
 
15.01.21
09:55
Прошивка у меня 2018 года. Вот жду очереди на прошивку 2020.
Заработало. Оказывается ошибка вылазила на эмуляторе. На реальной кассе заработало.
Но всё равно интересно посмотреть на чужой код. У меня еще нет отправки инн кассира и емейла покупателя.

Я имел ввиду не программу итоговую. А код работы с кассой.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.