Имя: Пароль:
 
1C
1C 7.7
v7: Штрих-М с 1С 7.7 и ФФД 1.05
0 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();
КонецПроцедуры //Закрыть()
1 Garykom
 
07.01.19
13:38
OpenCheck и CloseCheck - deprecated
2 MWWRuza
 
07.01.19
14:11
(0)Дело в том что фискальные чеки у меня печатаются, печатаются сразу и без ошибок, а вот в ОФД не отправляются.

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

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

Так что ваше утверждение не верно!
4 Kigo_Kigo
 
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);
    
    
    Возврат ОтключитьсяОтФР(Объект, Пароль);
    
КонецФункции

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

Так - да. Но, это еще извратиться надо, "свой" сервер должен вернуть правильный ответ, который ФН расшифрует... А это надо знать ключи шифрования и т.д... Там же не просто в открытом виде инфа передается... Просто так, изменив настройки, это не получится. А если просто подменить адрес или порт, то сообщения будут копиться в ФН, и отправятся при первой возможности. Или не отправятся, если возможность не появится, и через месяц ККТ заблокируется.
8 LevaV
 
07.01.19
15:03
(4) Спасибо огромное.
Правильно ли я понял что ИНН продавца передавать надо и отвечает за это вот эта часть порограммы? И это к каждому чеку надо прикрепить?
У меня прога старая и я подгружаю только DrvFR.dll для подгрузки тагов я так подозреваю мне нужна другая библиотека?
Если да и чтоб особо не заморачиваться и не переписывать 1С можно ИНН продавца внести в таблицы ФР в тест драйвера?

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

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

ИНН кассира не помню надо обязательно в начале чека перед позициями или в конце или в середине хз
14 LevaV
 
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
15 LevaV
 
07.01.19
15:19
(13) Ок. Спасибо буду пробовать. ФР - рядом. Никуда ехать и идти не нужно )
16 Garykom
 
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
При фискализации ККТ можно же указать несколько разных СНО а не указывать по умолчанию.
17 Kigo_Kigo
 
07.01.19
15:38
(8) В (4) полный рабочий код допиленный под 1,05 в обработке comm_fr.ert c дровами штриха 4.16, надо дописать передачу недостающих параметров из глобальника, и соответственно принять в обработке ПриОткрытии
18 LevaV
 
07.01.19
15:54
(17) Я к сожалению не такой хороший программер как вы. Есть где-то тема с этим более подробно?
1) comm_fr.ert - тоже надо подгружать?
2) Именно поэтому у меня 1С ругается на FR.SendTag() - поле агрегатного объекта не обнаружено?
19 LevaV
 
07.01.19
16:02
(13)  К сожалению 1С ругается на FR.SendTag() - поле агрегатного объекта не обнаружено. Наверное нет его в штатном наборе DrvFR.dll
20 Pit0n_08
 
07.01.19
16:08
(4) Аж голова закружилась от закомментенных строк...
21 Kigo_Kigo
 
07.01.19
16:12
(19) дрова обновите на 4.14, делов то 5 мин скачать, установить, в каталог иб закинуть длл-ки
(20) это код разработки, пока с бубнами плясал, что бы все заработало как надо, у клиента вылизанный стоит, а так что то можно включить, что то выключить, короче набор команд
22 Pit0n_08
 
07.01.19
16:13
(0) Если многие параметры постоянны, типа кассир (и его ИНН), тип реализации (товар, услуга и т.д.), способ оплаты, режим налогообложения - то их можно задать через "Тест драйвера ККМ" в таблицах ККМ.
23 LevaV
 
07.01.19
16:13
(20) ))) Да у меня тоже голова кругом идёт ))) Вроде и не сложно и в то же время какая-то фигня )))
24 Kigo_Kigo
 
07.01.19
16:13
(21) + точнее закинуть все файлы(без папок) из
C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin
25 LevaV
 
07.01.19
16:18
(22) Да в том то и дело что всё постоянно. ИНН, налог (его нет), тип реализации.
По Тесту драйвера и таблицам вроде шарюсь немного. В тесте драйвера в 11.ФН - вроде всё выставил. Может от этого работает может от другого. Но чеки иногда сразу напечатает иногда пискнет перед этим.
Я так особо не переживаю - немного парит что чеки не отправляются в ОФД но с этим уже ЦТО шники пусть разбираются, немного переживаю что потом скажут - ты ИНН не вбил, ты тип налогообложения не вбил - фсёфсемукапец и ФН под замену ))))
26 LevaV
 
07.01.19
16:20
(24) Я всё сделал. Прошу прощения. Сделал орфографическую ошибку в команде - вот и ругалась 1С на  FR.SendTag() т.к надо было написать  FR.FNSendTag()
Прошу простить - дебильная ошибка, но если не занимаешься этим (программированием) каждый день то вот такие ситуации происходят.
27 Kigo_Kigo
 
07.01.19
16:24
(22) А где это можно инн кассира вбить в таблицах?
что то я такого не нашел
(25) Настраивать в ОФД надо конкретно и ККТ и компьютер, в таблицах ККТ в сетевых настройках RNDIS "1" стоит? тип подключения USB ?
28 Pit0n_08
 
07.01.19
16:28
(27) Может и попутал с Атол-овскими таблицами - там поля "Кассир" и "ИНН" точно есть.
29 LevaV
 
07.01.19
16:37
(28) В таблице поля ИНН - нет. Есть в Тест драйвере но в таблицах их точно нет.
30 Kigo_Kigo
 
07.01.19
16:38
(28) Вот именно что в штрихе нет, и надо программно на каждый чек его передавать
31 LevaV
 
07.01.19
16:39
(27) Согласен - нет ИНН в таблицах только в Тест драйвера.
Тип подключения - COM
RNDis - стоит 0
32 LevaV
 
07.01.19
16:42
(30) Заодно тупой вопрос можно? Даже неудобно за него но "куй железо не отходя от кассы"

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

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

RNDis - поставил 1. Данные остались. Не отправляются.
38 Kigo_Kigo
 
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, на компе появится новое подключение по сети, заходишь с свойства основной сети, и ставиш галку разрешить подключение к итернету через эту сеть
39 Kigo_Kigo
 
07.01.19
16:52
40 Kigo_Kigo
 
07.01.19
16:58
Да будет работать по 2 шнуркам, с 1с-ой будешь работать через компорт, данные будут улетать по ЮСБ, это нормально
41 MWWRuza
 
07.01.19
20:27
А у самого Штриха на борту сетевой платы нет? У многих штрихов есть, тогда он вообще аппаратно данные отправляет, без всех RNDis и т.п...
42 LevaV
 
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();

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