Имя: Пароль:
1C
1C 7.7
v7: Прикручиваю кассу(онлайн) к 7.7, есть маленькая заковырка, смена системы налогообложения
,
0 Kigo_Kigo
 
29.11.17
11:26
Никак не могу найти команду для смены налогооблажения на кассе, надо в зависимости от номенклатуры менять УСН на ЕНВД
Да, драйвер штриха DrvFR.DLL, поделка для 1с 7.7 smDrvFR1CLib20.dll и ХМЛ не подходит, потому что ФР сетевой, и он упорно не хочет к нему коннектится, вываливает с ошибкой 8h, без объяснения причины, читал, что дело в несовпадении налогов-это не налоги 100%, потому что вываливается на команде Объект.Подключить(глИдУстройства);
1 LienXo
 
29.11.17
11:30
AddIn какой используете?
2 Kigo_Kigo
 
29.11.17
11:33
(1)
DrvFR.DLL - DrvFR
smDrvFR1CLib20.dll -SMDrvFR1C20
3 Kigo_Kigo
 
29.11.17
11:42
Функция ПодключитьсяКФР(Объект)
    Рез = 0;
    
    //Если ПустаяСтрока(глФРИДУстройства) = 0 Тогда
    //    Рез = 1;
    //Иначе
        
        //ЗначениеПараметра = глФРPortNumber;
        //Объект.УстановитьПараметр("Port", ЗначениеПараметра);
        //
        //ЗначениеПараметра = глФРBaudRate;
        //Объект.УстановитьПараметр("Baudrate", ЗначениеПараметра);
        
        ЗначениеПараметра = глФРПарольАдминистратора;
        Объект.УстановитьПараметр("AdminPassword", ЗначениеПараметра);
        
        ЗначениеПараметра = глФРПарольПользователя;
        Объект.УстановитьПараметр("UserPassword", ЗначениеПараметра);
        
        
        //ЗначениеПараметра = 18;
        //Объект.УстановитьПараметр("Tax1", ЗначениеПараметра);
        //
        //ЗначениеПараметра = 10;
        //Объект.УстановитьПараметр("Tax2", ЗначениеПараметра);
        //
        //ЗначениеПараметра = 0;
        //Объект.УстановитьПараметр("Tax3", ЗначениеПараметра);
        //
        //ЗначениеПараметра = 0;
        //Объект.УстановитьПараметр("Tax4", ЗначениеПараметра);
        
        глФРИДУстройства ="";
        Объект.Подключить(глФРИДУстройства);
        
        ОписаниеПоследнейОшибки = "";
        КодПоследнейОшибки = Объект.GetLastError(ОписаниеПоследнейОшибки);
        
        Если (СтрЧислоВхождений(ОписаниеПоследнейОшибки,"Ошибок нет") > 0)  или
            (СтрЧислоВхождений(ОписаниеПоследнейОшибки, "00h") > 0) Тогда
               Рез = 1;
        Иначе    
            ОписаниеРезультата = ОписаниеПоследнейОшибки;
        КонецЕсли;
      
//    КонецЕсли;
    
    Возврат Рез;
КонецФункции
Я строки вообще заремарил, то есть по умолчанию Длл-ка должна брать настройки дравера из драйвера, 8h и все тут,пробовал прописать руками тип протокола -6, Ип- адрес,порт, таймаут и так далее все равно 8h, а через DrvFR.DLL все работает прекрасно и кассиров по поролям распределил, остало одно - команда на смену системы налогооблажения, нигде найти не могу
4 LienXo
 
29.11.17
11:42
TaxType
5 Pit0n_08
 
29.11.17
11:43
Объект.AttrNumber = 1055;
    Объект.AttrValue = СистемаНалогообложения;// Применяемая система налогообложения в чеке:ОСН - 1;УСН доход - 2;УСН доход-расход - 4;ЕНВД - 8;ЕСН - 16;ПСН - 32;
    Объект.WriteAttribute();
но номер атрибута надо искать в руководстве для ККМ и в таблицах драйвера ККМ уточнить номера систем налогообложения
6 aka AMIGO
 
29.11.17
11:44
(3) как ищешь? если по твоему тексту, то в слове налогооблажения у тебя ошибка.
7 Kigo_Kigo
 
29.11.17
11:45
(6) Да ладно уж придираться то, гугл поправит если шо :)
8 aka AMIGO
 
29.11.17
11:46
(7) Да я не придираюсь, это просто совет :) дружеский :)
9 LienXo
 
29.11.17
11:48
(5) AttrNumber вроде от FprnM45 если не ошибаюсь.
10 Kigo_Kigo
 
29.11.17
11:48
(5) Вот это скорее всего то что надо, я так понимаю он этот атрибут по номеру в таблицах поправит?
(4) с этим какие то заморочки, не уверен что это оно
ФР.CheckType = 0; //приход, продажа
ФР.StringForPrinting    =  Товар;
ФР.Price        = Цена;
ФР.Quantity    = Количество;
ФР.Tax1 = 4;  
ФР.FNOperation();

ФР.CustomerEmail = АбАдрес;  //В качестве параметра можно передавать или телефон (+7хххххххххх) или e-mail: [email protected]  
ФР.FNSendCustomerEmail();

ФР.Tax1=4;

ФР.TaxType = 4;  // 2 - УСН Доход,  4 - УСН Доход-Расход, 8 - ЕНВД

ФР.Summ1 = ОплатаНалом;
ФР.Summ4 = ОплатаКартой;
ФР.FNCloseCheckEx();
11 LienXo
 
29.11.17
11:50
(10) пара помарок есть, но теоретически вроде похоже. Комп чужой сверить не могу
12 LienXo
 
29.11.17
11:51
а так перед closeCheck нужно StringForPrinting и CustomerEmail  чистить
13 Kigo_Kigo
 
29.11.17
11:53
ФР.FNOperation();
ФР.FNCloseCheckEx();
Смущают вот эти 2 операции, для цикла по товарам
14 Kigo_Kigo
 
29.11.17
11:55
еще есть вот такой способ, каждый раз переписывать непосредственно в таблице ККТ систему, но тоже както кривовато?
Объект.Пароль = Пароль;
    Объект.TableNumber = 18;
    Объект.RowNumber = 1;
    Объект.FieldNumber = 5;
    Объект.ValueofFieldInteger = ПараметрыККТ.КодНалогооблажения;
    Объект.GetFieldStruct();
    Объект.WriteTable();
    Если Объект.Результат <> 0 Тогда
        Результат = Объект.ОписаниеРезультата;
        Возврат Результат;
    КонецЕсли;
15 LienXo
 
29.11.17
11:57
ФР.FNCloseCheckEx() не в цикле же надеюсь, как и все что относится к шапке. Цикл только по таблице товаров. Я не использовал ФР.FNOperation() использовал стандартный Buy
16 LienXo
 
29.11.17
11:59
А в таблицы вообще лишний раз лазить не комильфо, тем более в 18-ю. Таблица кассиров - еще куда ни шло, остальные ну их лесом. Тем более что штрих их регулярно переделывает
17 Kigo_Kigo
 
29.11.17
12:04
Это должно выглядеть так ?
Функция ПечататьЧек(Объект, Пароль, СписокТоваров, Получено, Скидка, ПризнВозврата, НомерСекции, НомерЧека)
    
    Если ПустоеЗначение(Объект) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
        Возврат 0;
    ИначеЕсли ПодключитьсяКФР(Объект, Пароль) = 0 Тогда
        Возврат 0;
    КонецЕсли;
    
    // регистрация товаров
    РезРегистрация = 1;
        Объект.TaxType = 4;  // 2 - УСН Доход,  4 - УСН Доход-Расход, 8 - ЕНВД
    СписокТоваров.ВыбратьСтроки();
            
    Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
    Бла бла бла по товарам    
    КонецЦикла;
        
    Объект.Password = Пароль;
    Объект.Summ1    = Получено;
    Объект.Summ2    = 0;
    Объект.Summ3    = 0;
    Объект.Summ4    = 0;
    Объект.StringForPrinting=" ";
    Объект.DiscountOnCheck=Скидка;
        Объект.FNCloseCheckEx();
    Объект.CloseCheck();

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

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

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

    Возврат ОтключитьсяОтФР(Объект, Пароль);
    
КонецФункции
18 Kigo_Kigo
 
29.11.17
12:07
Мне просто понять в какой последовательности и куда вставлять эти операции
19 LienXo
 
29.11.17
12:09
ФР.CheckType = 0;//приход, продажа

// цикл по товарам
ФР.StringForPrinting    =  Товар;
ФР.Price        = Цена;
ФР.Quantity    = Количество;
ФР.Tax1 = 4;  
ФР.FNOperation(); // я бы все таки поменял на FN.Buy()
// конец цикла

ФР.CustomerEmail = АбАдрес;
20 Pit0n_08
 
29.11.17
12:11
Для меня непонятно можно ли в одном чеке пробивать товары подпадающие под разные системы налогообложения? Или лучше разбить покупку на два чека?
21 Aleksey
 
29.11.17
12:12
(20) А текущий формат чека это позволяет?
22 LienXo
 
29.11.17
12:15
(20) под разные - нельзя. Один чек - одна СНО. Ставки НДС - можно
23 Kigo_Kigo
 
29.11.17
12:36
(20) Нельзя, как я понимаю, потому что на самих сайтах ОФД этого разделения не предусмотренно, только по чеку полностью
24 piter3
 
29.11.17
12:38
(20) Нельзя однозначно.Не лучше,а правильно
25 piter3
 
29.11.17
12:38
(23) по закону
26 Kigo_Kigo
 
29.11.17
12:39
ФР.FNOperation();


ФР.TaxType = 4;  // 2 - УСН Доход,  4 - УСН Доход-Расход, 8 - ЕНВД
ФР.FNCloseCheckEx();
Ребят, ну вот прям чуть осталось, куда писать эти строки, до перебора товара?
В переборе товара?
Перед закрытием чека?
и что это ФР.Tax1=4; - это налоговая ставка ндс, как я понимаю
27 LienXo
 
29.11.17
13:17
в (19) я указал что должно быть в цикле. Все остальное - по барабану. Можешь до цикла, можешь после него. Что касается Tax1 - да, это НДС, код строки таблицы и разумеется ставка
28 Kigo_Kigo
 
29.11.17
13:25
(27)
Понял, огромное спасибо, поеду мучать ККТ :)
29 LienXo
 
29.11.17
13:31
(28) ты это на боевом ФН-е собрался тестить???
30 Kigo_Kigo
 
29.11.17
13:49
(29) Да что там тестить, 3 операции по рублю провести, чеки то он пробивает кассиров меняет, осталось только УСН ЕНВБ менять и что бы это все прилетало в ОФД, как тут без боевого ФН?
31 Kigo_Kigo
 
29.11.17
18:03
Все зафуричило как надо
32 Kigo_Kigo
 
12.12.17
11:45
Как выяснилось в ОФД уходят данные без наименований товаров, подскажите какой командой надо отправить наименование ?
33 Масянька
 
12.12.17
11:56
(29) Странный вопрос...
Вообще, очень (мягко говоря) странно, что нет тестирования.
34 Umga2002
 
12.12.17
12:03
Решение о налогообложении надо решать в конфе.....

При формировании чека.
35 Kigo_Kigo
 
12.12.17
12:20
(34) Это решено, система меняется, теперь вот наименования товаров в ОФД не уходят
36 Kigo_Kigo
 
12.12.17
12:45
Апну, может кто что подскажет?
37 Kigo_Kigo
 
12.12.17
20:28
Короче, танцы с бубном показали, что
ФР.FNCloseCheckEx(); вообще не надо

в обработке обслуживания драйвера идет, скачало фиксация цены и количества- потом уже наименование товара, этот порядок надо изменить, сначало наименование товара, потом цена количество, в ОФД только после этого товар стал приходить с наименованием
38 Злопчинский
 
12.12.17
20:36
купи за 3000 руб и не мучайся
http://catalog.mista.ru/public/603118/
39 Kigo_Kigo
 
12.12.17
20:53
(38) Ее прикручивать, такой же геморрой, потому там конфа, мягко сказать старая, осталось решить последнее, как делать скидку суммой
40 Злопчинский
 
12.12.17
22:21
(39) скидка суммой по 54-ФЗ - такого нет.
41 Злопчинский
 
12.12.17
22:21
(39) (38) и на старые конфы становится
42 Kigo_Kigo
 
12.12.17
23:40
(40) Однако никто не мешает уменьшить цену*количество на сумму скидки , в зависимости от % участия от суммы в чеке, и отдельно напечатать - сумму скидки суммой, это где то написано?
цену я могу ставить какую хочу...
43 Сияющий в темноте
 
13.12.17
00:06
(40) А как же FnDiscountOperation ?
Понятно, что уменьшить сумму на сумму скидки по ФФД 1.05 нельзя, но указать-то её можно.
А ФФД 1.0 позволяют даже вычитать сумму скидки из итога позиции.

У штрих-м система налогообложения задана в таблице 18 поле Tax System - выставляем перед началом чека нужное значение (точно также как и имя кассира выставляется в таблице пароли операторов).

И всё.

Какие ещё вопросы остались ?
P.S. интерфейс 1С просто в топку - это пародия на то, как надо делать - перегонять сначала чек в Xml, чтобы потом драйвер фигачил его командами в Фр и не видеть, на чём произошёл затык - это прям по одинэсовски.
44 LienXo
 
13.12.17
01:07
(43) FnDiscountOperation - это отбрасывание копеек а не скидка на чек в нормальном понимании.
Зачем лезть в таблицу для смены СНО если есть функция смены.
45 Mikhail Volkov
 
13.12.17
05:29
(0) > надо в зависимости от номенклатуры менять УСН на ЕНВД
В одном чеке? Для ФФД 1.0 - точно не получится.
(26) > ФР.TaxType = 4;  // 2 - УСН Доход,  4 - УСН Доход-Расход, 8 - ЕНВД
Дополню: 16 - ЕСХН, 32 - ПСН Онлайн касса и НДС
46 Kigo_Kigo
 
13.12.17
10:07
(43)
P.S. интерфейс 1С просто в топку - это пародия на то, как надо делать - перегонять сначала чек в Xml, чтобы потом драйвер фигачил его командами в Фр и не видеть, на чём произошёл затык - это прям по одинэсовски.


Вот это точно, убивает, что надо указывать параметры связи, в сервис -параметры - Драйвер ККТ закладка не появляется, что там и как происходит -хз, с драйвером штриха, настроил драйвер, вызываешь ДЛЛ-ку, там уже все настроено, тока отправляй чеки и снимай x/z отчеты, ну и связь с ККТ проверить
2 + 2 = 3.9999999999999999999999999999999...