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


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Штрих-М с 1С 7.7 и ФФД 1.05

v7: Штрих-М с 1С 7.7 и ФФД 1.05
Я
   LevaV
 
07.01.19 - 13:20
Добрый день!
Понимаю что тема избитая но форуме, но подскажите или ткните носом, просмотрел много тем так и не нашел конкретного ответа.
1) Какие параметры нужно передавать в ФФД 1.05? ИНН продавца? Если да то какой командой? У меня по одному продавцу на кассу - они не меняются, можно настроить это через Тест Драйвера?
2) Способ расчета добавляется (у меня только - полный расчет) ?
3) Признак предмета расчёта (у меня услуги - 4) ?
4) С-ма налогообложения? (наверное прошили сразу в ЦТО - на каждом чеке пишется внизу).
5) Какой признак что я что-то запрограммирую не так? Фискальный чек напечатается?  Дело в том что фискальные чеки у меня печатаются, печатаются сразу и без ошибок, а вот в ОФД не отправляются.

ФР - Штрих-М -02Ф - бывший Штрих-ПТК
Небольшой кусок программы который отвечает за печать чека (да прога старая, но работает исключительно надежно и менять её особо желания нет ))) что-то по мелочи дописываю). ФФД 1.05 - это 3-и строки которые я добавил к каждому чеку. Все предыдущие изменения были сделаны для ФФД 1.00 - вроде работало.

Процедура Открыть()     
    FR.Password=Password; 
    FR.CheckType = 0;
    FR.OpenCheck();    
КонецПроцедуры//Открыть()       


//*****************************

Процедура Операция()
    FR.Password=Password;         
    FR.Quantity = 1;
       FR.Price = Сумма ;
       FR.Department = 2; 
            FR.PaymentTypeSign = 4;//ФФД 1.05

           FR.PaymentItemSign = 4;//ФФД 1.05

           FR.TaxType = 2;        //ФФД 1.05

    FR.Sale();
КонецПроцедуры//Операция()   


//*****************************    

Процедура Закрыть()
    FR.Password=Password; 
    FR.Summ1 = Сумма;   
    FR.CloseCheck();
КонецПроцедуры//Закрыть()
 
 
   Garykom
 
1 - 07.01.19 - 13:38
OpenCheck и CloseCheck - deprecated
   MWWRuza
 
2 - 07.01.19 - 14:11
(0)Дело в том что фискальные чеки у меня печатаются, печатаются сразу и без ошибок, а вот в ОФД не отправляются.

Так не бывает! :) Точнее, бывает, но, 1С, команды которые она посылает в ККТ и прочее, здесь не при чем... Отправкой чеков в ОФД занимается сам ККТ. Ищите ошибку в настройках. Проверьте доскупность сервера ОФД из драйвера ККТ, правильность настроек адреса и порта ОФД. Активность самого ККТ в ОФД(может там банально тугрики закончились)...
Не возможно из 1С заставить ККТ печатать нормально чек, не отправляя в ОФД, даже если очень захотеть! Если бы такое было возможно, представьте какая лафа была-бы для жуликов! :)))) Хотя, я могу допустить, что такое возможно с какими-нибудь спец. прошивками/дровами...
   Garykom
 
3 - 07.01.19 - 14:26
(2) >Не возможно из 1С заставить ККТ печатать нормально чек, не отправляя в ОФД

Настройки канала связи с ОФД из 1С вполне можно испортить и чеки отправляться не будут.
А еще можно подменить их на свой "сервер" и чеки типа будут отправляться но немного не туда )) это чтобы ККТ не блокировалась. Тут конечно есть некоторые сложности но это вполне реально.

Так что ваше утверждение не верно!
   Kigo_Kigo
 
4 - 07.01.19 - 14:31
Вот вам код, разбирайтесь
Функция ПечататьЧек(Объект, Пароль, СписокТоваров, СуммаЧека, Получено, Скидка, ПризнВозврата, НомерСекции, НомерЧека, ДлинаСтроки,ИннПродавца)
    
//    Если ПустоеЗначение(Объект) = 1 Тогда

//        ОписаниеРезультата = "устройство не подключено";
//        Возврат 0;

//    ИначеЕсли ПодключитьсяКФР(Объект) = 0 Тогда
//        Возврат 0;

//    КонецЕсли;
//    

//    //Объект.Mode = 1; // режим регистрации чеков

//    Объект.Password = Пароль;// пароль на режим регистрации

//    //Объект.SetMode();

//    //Объект.GetStatus();

//    Объект.TaxType = ТипНалогов;
//

//    //Если Объект.СостояниеЧека <> 0 Тогда        

//    //    Попытка

//    //        Объект.CancelCheck();

//    //    Исключение

//    //    КонецПопытки;

//    //КонецЕсли;

//    //

//    //Если Объект.Результат <> 0 Тогда

//    //    Попытка

//    //        Объект.CancelCheck();

//    //    Исключение

//    //    КонецПопытки;

//    //    ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);

//    //    ОтключитьсяОтФР(Объект, 0);

//    //    Возврат 0;

//    //КонецЕсли;

//    
//    // регистрация товаров

//    РезРегистрация = 1;
//    СписокТоваров.ВыбратьСтроки();

//            
//    ДлинаНаименования =48;//Объект.ДлинаСтрокиСимволов; // зависит от модели ФР

//    Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл 
//        //СтрокаДляПечати = СписокТоваров.ТовНаим;

//        //Объект.Password          = Пароль;

//        //Объект.StringForPrinting = Лев(СтрокаДляПечати,48);

//
//        

//        
//        

//        //Проверка наличия колонки "НДС" в таблице значений.

//        НДСЕсть = "";
//        Попытка

//            НДС = СписокТоваров.НДС;
//            НДСЕсть = 1;

//        Исключение
//            НДСЕсть = 0;

//        КонецПопытки;
//            

//        //Если НДСЕсть = 1 Тогда

//        //    Объект.Name       = "";

//        //Иначе

//        //    Объект.Name       = Лев(СписокТоваров.ТовНаим, ДлинаНаименования);

//        //КонецЕсли;

//                СтрокаДляПечати = СписокТоваров.ТовНаим;
//        Объект.Password          = Пароль;

//        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
//        

//        Объект.Price      = Окр(СписокТоваров.Цена,2,1);
//        Объект.Quantity   = СписокТоваров.Количество;                

//
//        Если ПризнВозврата = 0 Тогда            

//            
//            Если НДСЕсть = 1 Тогда//Печатаем НДС

//                
//                // В настройках ФР надо настроить ставки:

//                // Налог 1 = 18% - НДС 18%

//                // Налог 2 = 10% - НДС 10%

//                // Налог 3 = 20% - НДС 20%

//                // Налог 4 =  0% - без НДС

//                // и Тип налога = 2 (Налог на каждую продажу)

//        
//                Если СписокТоваров.НДС = 18 Тогда

//                    Объект.Department = 1;
//                ИначеЕсли СписокТоваров.НДС = 10 Тогда

//                    Объект.Department = 2;
//                ИначеЕсли СписокТоваров.НДС = 20 Тогда

//                    Объект.Department = 3;
//                Иначе

//                    Объект.Department = 4;
//                КонецЕсли;

//            Иначе
//                Объект.Department = 4;

//            КонецЕсли;
//                

//        //Если ПризнВозврата = 0 Тогда

//            Объект.Sale();
//        Иначе

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

//
//        Если Объект.Результат <> 0 Тогда

//            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
//            Попытка

//                Объект.CancelCheck();
//            Исключение

//            КонецПопытки;
//            ОтключитьсяОтФР(Объект, 0);

//            Возврат 0;
//        КонецЕсли;

//        
//        Если НДСЕсть = 1 Тогда

//            СтрокаДляПечати = СписокТоваров.ТовНаим;
//            Пока СтрДлина(СтрокаДляПечати)>0 Цикл

//                Объект.Caption = Лев(СтрокаДляПечати,ДлинаНаименования);
//                Объект.PrintString();

//                СтрокаДляПечати = СокрЛП(Сред(СтрокаДляПечати,ДлинаНаименования+1));
//            КонецЦикла;

//        КонецЕсли;
//        

//        Если Объект.Результат <> 0 Тогда
//            ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);

//            Попытка
//                Объект.CancelCheck();

//            Исключение
//            КонецПопытки;

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

//        КонецЕсли;
//        

//    КонецЦикла;
//        

//    Если ПустоеЗначение(Скидка) = 0 Тогда
//        Если Скидка < 0 Тогда

//            // надбавка

//            Объект.Percents = -Скидка;
//            Объект.ПроцентнаяНадбавка();

//        Иначе
//            // Скидка

//            Объект.Percents = Скидка;
//            Объект.ПроцентнаяСкидка();

//        КонецЕсли;
//                

//    КонецЕсли;
//    

//    Если Объект.Результат <> 0 Тогда
//        Объект.Percents    = 0;

//        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
//        Попытка

//            Объект.CancelCheck();
//        Исключение

//        КонецПопытки;
//        ОтключитьсяОтФР(Объект, 0);

//        Возврат 0;
//    КонецЕсли;

//    
//    Объект.Department = НомерСекции;

//    
//    НомерЧека = Объект.НомерЧека;

//    Объект.Summ1 = Окр(Получено, 2, 1);
//    

//    Объект.FNCloseCheckEx();
//    

//    Объект.ЗакрытьЧек();
//    

//    
//    //Если (Получено > 0) И (Получено > СуммаЧека) Тогда

//    //    Объект.Summ = Окр(Получено, 2, 1);

//    //    Объект.ОплатаСоСдачей();

//    //Иначе 

//    //    Объект.FNCloseCheckEx();

//    //    

//    //    Объект.ЗакрытьЧек();

//    //КонецЕсли;

//    
//    Если Объект.Результат <> 0 Тогда

//        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
//        Попытка

//            Объект.CancelCheck();
//        Исключение

//        КонецПопытки;
//        ОтключитьсяОтФР(Объект, 0);

//        Возврат 0;
//    КонецЕсли;            

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

    //Если ПустоеЗначение(Объект) = 1 Тогда

    //    ОписаниеРезультата = "устройство не подключено";

    //    Возврат 0;

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

    //    Возврат 0;

    //КонецЕсли;

    
    // регистрация товаров

    КорректноКудаОтправитьЧек = -1//-1 не ввден, 1- корректно,0 не корректно

    Если ПустоеЗначение(КудаОтправитьЧек) = 0 Тогда 
        Если Найти(СокрЛП(КудаОтправитьЧек),"@") <> 0 Тогда
            КорректноКудаОтправитьЧек = 1;
        ИначеЕсли Лев(СокрЛП(КудаОтправитьЧек),2) = "+7" Тогда
            КорректноКудаОтправитьЧек = 1;
        Иначе
            КорректноКудаОтправитьЧек = 0;
            Если Вопрос("Не корректно введен email или номер телефона клиента, пробить обычный чек?",4) = 6 Тогда
                КорректноКудаОтправитьЧек = -1;
            Иначе
                Предупреждение("Проверте  email или номер телефона клиента, номер телефона должен начинаться на +7");
                Возврат 0;    
            КонецЕсли;
            
        КонецЕсли;
    КонецЕсли;
    
    
    
    
    
    
    
    Объект.TaxType = ТипНалогов;
    РезРегистрация = 1;
    //    СписокТоваров.ВыбратьСтроки();

    Получено1 = 0;  
    //    Если СуммаСкидки <> 0 Тогда

    //        СуммаВсего1 = СписокТоваров.Итог("Сумма");

    //        СписокТоваров.ВыбратьСтроки();

    //        Пока СписокТоваров.ПолучитьСтроку() = 1  Цикл

    //            СписокТоваров.Сумма = СписокТоваров.Сумма - СписокТоваров.Сумма/СуммаВсего1*100 * СуммаСкидки/100;

    //        КонецЦикла;

    //    КонецЕсли;

    //

    СуммаСкидкиНаЧек = СписокТоваров.Итог("СуммаСкидки");
    Если СокрЛП(ИННПродавца) <> "" Тогда
        Объект.TagNumber  = 1203;
        Объект.TagType = 7;
        
        Объект.TagValueStr = СокрЛП(ИННПродавца);
        Объект.FNSendTag();
    КонецЕсли;
    
    //    СписокТоваров.НоваяКолонка("ПолнСумма","Число",15,2);

//    СписокТоваров.НоваяКолонка("СуммаСкидки","Число",15,2);
//

//    
//    

//    СписокТоваров.ВыбратьСтроки();
//    

//    Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
//        СписокТоваров.ПолнСумма = СписокТоваров.Цена*СписокТоваров.Количество;

//        СписокТоваров.СуммаСкидки = СписокТоваров.ПолнСумма-СписокТоваров.Сумма;
//

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

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

            
            //ЦенаЦены =  СписокТоваров.Сумма/СписокТоваров.Количество;

            //ЦенаЦены =Окр(СписокТоваров.Сумма/СписокТоваров.Количество,2);

            Объект.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 тогда 
        
        СтрокаДляПечати = "Сумма скидки на чек:" + Строка(глФРМ(СуммаСкидкиНаЧек));
        Объект.Password          = Пароль;
        Объект.StringForPrinting = Лев(СтрокаДляПечати,48);
    Иначе 
        СтрокаДляПечати = "__________________________";//+ Строка(глФРМ(СуммаСкидки,Валюта,1));

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

            //    

        КонецЕсли;
    Иначе
        Объект.Summ1    = Получено1;
        Объект.Summ2    = 0; 
        
        
    КонецЕсли; 
    //Объект.Summ2    = 0; 

    Объект.Summ3    = 0; 
    Объект.Summ4    = 0; 
    //Объект.StringForPrinting="Масло";

    //Объект.DiscountOnCheck=Скидка;

    //Объект.FNOperation();

    Если ПустоеЗначение(КудаОтправитьЧек) = 0 Тогда
        Объект.CustomerEmail  = СокрЛП(КудаОтправитьЧек);
        Объект.FNSendCustomerEmail();
        
    КонецЕсли;
    
    
    
    
    Объект.FNCloseCheckEx();
    //Объект.CloseCheck();

    
    Если Объект.ResultCode <> 0 Тогда 
        //Сообщить(Объект.ResultCode);

        ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
        АннулированиеЧека(Объект, Пароль);
        //ОтключитьсяОтФР(Объект, Пароль, 0);

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

        Возврат 0;
    КонецЕсли;
    
    НомерЧека = Объект.OpenDocumentNumber+?(Объект.ECRAdvancedMode=5,1,0);
    
    
    Возврат ОтключитьсяОтФР(Объект, Пароль);
    
КонецФункции


   Kigo_Kigo
 
5 - 07.01.19 - 14:32
И настройте RNDIS, что бы чеки отправлялись
   LevaV
 
6 - 07.01.19 - 14:58
(2) Спасибо огромное всем за ответы, не ожидал если честно такого количества ответов.
Настройками передачи - займется ЦТО, после того как перешли с ПТК на 02Ф - тоже целый месяц ничего не отправлялось. Они как люди творческие почему-то не любят настраивать всё сразу и у себя, а предпочитают потом выезжать ко мне )))
В 1С - передача данных никак не настраивается, это всё уже касса сама.
   MWWRuza
 
7 - 07.01.19 - 14:58
(3)А еще можно подменить их на свой "сервер" и чеки типа будут отправляться но немного не туда )) это чтобы ККТ не блокировалась. Тут конечно есть некоторые сложности но это вполне реально.

Так - да. Но, это еще извратиться надо, "свой" сервер должен вернуть правильный ответ, который ФН расшифрует... А это надо знать ключи шифрования и т.д... Там же не просто в открытом виде инфа передается... Просто так, изменив настройки, это не получится. А если просто подменить адрес или порт, то сообщения будут копиться в ФН, и отправятся при первой возможности. Или не отправятся, если возможность не появится, и через месяц ККТ заблокируется.
   LevaV
 
8 - 07.01.19 - 15:03
(4) Спасибо огромное.
Правильно ли я понял что ИНН продавца передавать надо и отвечает за это вот эта часть порограммы? И это к каждому чеку надо прикрепить?
У меня прога старая и я подгружаю только DrvFR.dll для подгрузки тагов я так подозреваю мне нужна другая библиотека?
Если да и чтоб особо не заморачиваться и не переписывать 1С можно ИНН продавца внести в таблицы ФР в тест драйвера?
Если СокрЛП(ИННПродавца) <> "" Тогда
        Объект.TagNumber  = 1203;
        Объект.TagType = 7;
        
        Объект.TagValueStr = СокрЛП(ИННПродавца);
        Объект.FNSendTag();
    КонецЕсли;
   Garykom
 
9 - 07.01.19 - 15:10
(7) Ну ты же понимаешь что шифрование с ключом 10 цифр это просто смешно нынче?
   Garykom
 
10 - 07.01.19 - 15:12
(8) Тебе и нужна только штатная "DrvFR.dll" а прочие выкинь нафуй
 
 Рекламное место пустует
   LevaV
 
11 - 07.01.19 - 15:13
(5) Настройки передачи данных настраиваются в таблицах с помощью Теста Драйвера.
Да я понимаю что все немного через одно место, и эту прогу надо менять но пока так как есть (может работать всего осталось 1-2 месяца а может и расширятся будем х.з. не от меня зависит хоть я типа и рулю этой маленькой компанией)
   LevaV
 
12 - 07.01.19 - 15:15
(10) Спасибо.
Просто добавляю туда часть про ИНН ?

FR.TagNumber  = 1203;
       FR.TagType = 7;
        
        FR.TagValueStr = СокрЛП(ИННПродавца);
        FR.FNSendTag();
   Garykom
 
13 - 07.01.19 - 15:17
(12) Попробуй но там у штриха куча заморочек в каком месте/порядке должны быть команды.

ИНН кассира не помню надо обязательно в начале чека перед позициями или в конце или в середине хз
   LevaV
 
14 - 07.01.19 - 15:18
(10) Вот эти параметры тоже оставляю?

FR.PaymentTypeSign = 4//ФФД 1.05

FR.PaymentItemSign = 4//ФФД 1.05

FR.TaxType = 2;        //ФФД 1.05


FR.TaxType - тоже нужно в каждый чек ? Внизу каждого чека и так пишется СНО: УСН доход - я так понял что это программировалось когда переходили на 1.05
   LevaV
 
15 - 07.01.19 - 15:19
(13) Ок. Спасибо буду пробовать. ФР - рядом. Никуда ехать и идти не нужно )
   Garykom
 
16 - 07.01.19 - 15:28
(14) >Внизу каждого чека и так пишется СНО: УСН доход

СНО по умолчанию используется если самому не указать какая.

Тут жирными коды которые в чеках можно
http://xn----8sbem0a3bea4g.xn--p1ai/drajver-kkm-fr/143-numeracziya-kodov-sistem-nalogooblozheniya-v-kkt-primenyaemye-vbivaemye-vvodimye-v-kkm-kkt-onlajn-kassax-shtrix-atol.html
При фискализации ККТ можно же указать несколько разных СНО а не указывать по умолчанию.
   Kigo_Kigo
 
17 - 07.01.19 - 15:38
(8) В (4) полный рабочий код допиленный под 1,05 в обработке comm_fr.ert c дровами штриха 4.16, надо дописать передачу недостающих параметров из глобальника, и соответственно принять в обработке ПриОткрытии
   LevaV
 
18 - 07.01.19 - 15:54
(17) Я к сожалению не такой хороший программер как вы. Есть где-то тема с этим более подробно?
1) comm_fr.ert - тоже надо подгружать?
2) Именно поэтому у меня 1С ругается на FR.SendTag() - поле агрегатного объекта не обнаружено?
   LevaV
 
19 - 07.01.19 - 16:02
(13)  К сожалению 1С ругается на FR.SendTag() - поле агрегатного объекта не обнаружено. Наверное нет его в штатном наборе DrvFR.dll
   Pit0n_08
 
20 - 07.01.19 - 16:08
(4) Аж голова закружилась от закомментенных строк...
   Kigo_Kigo
 
21 - 07.01.19 - 16:12
(19) дрова обновите на 4.14, делов то 5 мин скачать, установить, в каталог иб закинуть длл-ки
(20) это код разработки, пока с бубнами плясал, что бы все заработало как надо, у клиента вылизанный стоит, а так что то можно включить, что то выключить, короче набор команд
   Pit0n_08
 
22 - 07.01.19 - 16:13
(0) Если многие параметры постоянны, типа кассир (и его ИНН), тип реализации (товар, услуга и т.д.), способ оплаты, режим налогообложения - то их можно задать через "Тест драйвера ККМ" в таблицах ККМ.
   LevaV
 
23 - 07.01.19 - 16:13
(20) ))) Да у меня тоже голова кругом идёт ))) Вроде и не сложно и в то же время какая-то фигня )))
   Kigo_Kigo
 
24 - 07.01.19 - 16:13
(21) + точнее закинуть все файлы(без папок) из
C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin
   LevaV
 
25 - 07.01.19 - 16:18
(22) Да в том то и дело что всё постоянно. ИНН, налог (его нет), тип реализации.
По Тесту драйвера и таблицам вроде шарюсь немного. В тесте драйвера в 11.ФН - вроде всё выставил. Может от этого работает может от другого. Но чеки иногда сразу напечатает иногда пискнет перед этим.
Я так особо не переживаю - немного парит что чеки не отправляются в ОФД но с этим уже ЦТО шники пусть разбираются, немного переживаю что потом скажут - ты ИНН не вбил, ты тип налогообложения не вбил - фсёфсемукапец и ФН под замену ))))
   LevaV
 
26 - 07.01.19 - 16:20
(24) Я всё сделал. Прошу прощения. Сделал орфографическую ошибку в команде - вот и ругалась 1С на  FR.SendTag() т.к надо было написать  FR.FNSendTag()
Прошу простить - дебильная ошибка, но если не занимаешься этим (программированием) каждый день то вот такие ситуации происходят.
   Kigo_Kigo
 
27 - 07.01.19 - 16:24
(22) А где это можно инн кассира вбить в таблицах?
что то я такого не нашел
(25) Настраивать в ОФД надо конкретно и ККТ и компьютер, в таблицах ККТ в сетевых настройках RNDIS "1" стоит? тип подключения USB ?
   Pit0n_08
 
28 - 07.01.19 - 16:28
(27) Может и попутал с Атол-овскими таблицами - там поля "Кассир" и "ИНН" точно есть.
   LevaV
 
29 - 07.01.19 - 16:37
(28) В таблице поля ИНН - нет. Есть в Тест драйвере но в таблицах их точно нет.
   Kigo_Kigo
 
30 - 07.01.19 - 16:38
(28) Вот именно что в штрихе нет, и надо программно на каждый чек его передавать
   LevaV
 
31 - 07.01.19 - 16:39
(27) Согласен - нет ИНН в таблицах только в Тест драйвера.
Тип подключения - COM
RNDis - стоит 0
   LevaV
 
32 - 07.01.19 - 16:42
(30) Заодно тупой вопрос можно? Даже неудобно за него но "куй железо не отходя от кассы"

FR.TagValueStr = СокрЛП(ИННПродавца); здесь я сразу вбиваю ИНН продавца т.к. он у меня один и тот же за этой кассой.

Значение надо брать в кавычки или без?  
FR.TagValueStr = 502222222
   Kigo_Kigo
 
33 - 07.01.19 - 16:42
(31) Вот тут вся и загвоздка
Тип подлючения реальный com или эмуляция USB-com?
 
 
   Kigo_Kigo
 
34 - 07.01.19 - 16:43
(32) Да в ковычки, это не числовое поле
   Kigo_Kigo
 
35 - 07.01.19 - 16:43
по крайней мере я его передаю как текст
   LevaV
 
36 - 07.01.19 - 16:44
(35) Ок спасибо!
   LevaV
 
37 - 07.01.19 - 16:46
(33) Реальный COM, СОМ - порт, СОМ-шнур и находит его на порту СОМ1.
USB - подглючивал иногда.

RNDis - поставил 1. Данные остались. Не отправляются.
   Kigo_Kigo
 
38 - 07.01.19 - 16:50
(37) подключай по usb в сетевых настройках ставь dhcp = 0
ip 192.168.137.111 маска 255.255.255.0 шлюз 192.168.137.1 днс 8.8.8.8, на компе появится новое подключение по сети, заходишь с свойства основной сети, и ставиш галку разрешить подключение к итернету через эту сеть
   Kigo_Kigo
 
39 - 07.01.19 - 16:52
   Kigo_Kigo
 
40 - 07.01.19 - 16:58
Да будет работать по 2 шнуркам, с 1с-ой будешь работать через компорт, данные будут улетать по ЮСБ, это нормально
   MWWRuza
 
41 - 07.01.19 - 20:27
А у самого Штриха на борту сетевой платы нет? У многих штрихов есть, тогда он вообще аппаратно данные отправляет, без всех RNDis и т.п...
   LevaV
 
42 - 08.01.19 - 00:33
(38) Так у кассы сзади шнур Etherneta торчит. Она у меня напрямую в модем подключается. Я надеюсь что мне ЦТО настроит передачу данных (при перепрошивке на 1.05 послетали данные из таблиц)

Везде где есть печать чека добавил. Строки.

FR.PaymentTypeSign = 4;
FR.PaymentItemSign = 4;
           FR.TaxType = 2;         
           FR.TagNumber = 1203;
           FR.TagType = 7;
           FR.TagValueStr ="502********";
           FR.FNSendTag();

Но при печати чека раздается "бип" как когда лезешь в таблицы. Чёт ФР пытается мне этим что-то сказать?
   LevaV
 
43 - 08.01.19 - 00:42
(42) Кстати без этих строк (тип налога, метод расчета, ИНН продавца) тоже печатаются фискальные чеки. И писка нет при печати чека.
Что же я навертел такого в программе? )))))
   LevaV
 
44 - 08.01.19 - 01:16
(43) Нашел где в Штрих-М установить ИНН-кассира в таблицы, вдруг кому пригодиться.
Таблицы: 18 Fiscal storage, поле 23 - Инн кассира. Устанавливается при закрытой смене.
ФИО оператора тоже есть.
Поле TaxSystem (TaxType) - тоже есть, т.е. в каждый чек на печать (в моем случае) требуется: способ расчета и признак предмета расчета. Всё остальное думается мне ФР берет из таблицы, но точно об этом будет известно только после 9.01
   Kigo_Kigo
 
45 - 08.01.19 - 11:25
(42) Тогда DHCP ставь "1"- должно все само передаваться, или жестко пропиши не занятый ip для роутера?
rndis  в "0"


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