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


1С:Предприятие :: 1С:Предприятие 8 общая

ИНН кассира не передаётся в ОФД

ИНН кассира не передаётся в ОФД
Я
   kobayoshi
 
03.11.18 - 12:38
Добрый день.
Вопрос наверное даже не столько по 1С. Я обслуживаю несколько организаций. В каждой разные ККМ (Штрих, Атол, ВикиПринт, даже одна MStrar650tk), разные 1С (правда в основном ТиС и УТ 10.3). Есть даже одна свежая Розница 2.2, в которой вроде бы всё должно работать из коробки. Но нигде я не видел в личном кабинете ОФД, что бы отображался ИНН кассира.
ОФД в основном Такском. И парочка Первый ОФД. Касса не ругается, тег 1203 передаёт. А техподдержка ОФД утверждает, что этот тег им не передавался.
Кому-нибудь удавалось передать ИНН кассира? Какая у вас конфигурация и ККМ? Желательно, конечно, узнать мнение людей, которые сами писали обработку. И в случае удачной передачи ИНН, где я могу его увидеть в личном кабинете?
 
 
   NorthWind
 
1 - 03.11.18 - 13:06
https://onlain-kassy.ru/normativ/kom/rekvizity-kassovogo-cheka.html - в ФФД 1.05 атрибут "ИНН кассира" не является ни обязательным, ни даже рекомендуемым для включения в чек. Чисто на усмотрение владельца кассы - может включать, а может и не включать. Надо полагать, что и ОФД не обязан его поддерживать и передавать.
   pablo_escobar
 
2 - 03.11.18 - 13:54
(0) Есть кассы в первом ОФД, ИНН кассира показывается. Кассы точно на ФФД 1.05?
   kobayoshi
 
3 - 03.11.18 - 14:20
(2) Кассы точно на 1.05. Это видно в личном кабинете. На первом ОФД у меня 2 кассы Штрих, которые работают на самописных обработках, одна под 1С 7.7 ТиС, другая под УТ 10.3 (Используют обычный DrvFR.dll, не DrvFR1C). И ещё одна MStar, которая работает в Розница 2.2 (там обработка уже зашита в конфигурацию)
А какая у Вас учётная программа и касса?
   karpik666
 
4 - 03.11.18 - 14:56
Посмотрите здесь, вот описание требований к драйверам 1с https://its.1c.ru/db/metod8dev/content/4829/hdoc
   d4rkmesa
 
5 - 03.11.18 - 15:45
(0) ИНН должен показываться, если нет - значит что-то не так. У меня такое было с Атол, когда обработка обслуживания(для УТ10/УПП/КА1) устаревшая была и, соответственно, интеграционная компонента 1С тоже.
   ColonelAp4u
 
6 - 03.11.18 - 17:43
в кассах штрих м при фискализации задается ИНН кассира, и хранится в таблице 18 fiscal storage.
   kobayoshi
 
7 - 04.11.18 - 09:55
А если не цепляться за 1С. Кассы же не только для него созданы. Я передаю тег 1203 с ИНН кассира. Таким же образом я передаю тег с его именем. Имя то приходит в ОФД. А вот ИНН похоже нет... А в каком месте в ОФД его должно быть видно? Можно скрин? Я хочу хоть где-нибудь его увидеть)
   NorthWind
 
8 - 04.11.18 - 09:58
(7) может быть даже смешнее - он может в ОФД и приходить, но где написано, что ОФД обязан его как-то обрабатывать, показывать и передавать дальше?
   kobayoshi
 
9 - 04.11.18 - 10:03
(6) Обычно я при регистрации ИНН не указываю. А бывает мне уже зарегистрированные кассы дают. Но не так давно при регистрации ВикиПринт я ИНН вводил. Только что проверил, и в ОФД такскома ни слова про ИНН кассира: https://yadi.sk/i/A2kUv4m6G0JUxw
   Лефмихалыч
 
10 - 04.11.18 - 10:04
Может речь про ИНН организации-продавца? Кассир - это физлицо, у которого может и не быть ИНН.
От кассира в чеке должны быть только "должность и фамилия лица, осуществившего расчет с покупателем". Да и то, - только, если там было лицо в расчетах.
 
 Рекламное место пустует
   MWWRuza
 
11 - 04.11.18 - 11:44
Несколько конфигураций, моих, самописки. 1-ОФД. Кассы АТОЛ Ф-Принт-22 и Спарк-115-Ф. Под АТОЛ работают "на прямую", под Спарк - через XML по технологии 1C. Если ФФД 1.05(соответственно драйвера касс и сама конфа под требования к разработке драйверов 2.4 доработаны), то ИНН передается, и ФИО кассира тоже. В 1-ОФД отображается в верхней части чека, под "Кассовый чек приход", так и пишет:
"Кассир: ФИО
"ИНН кассира: ИНН".
Есть несколько конфигураций под восьмерку, но, там я пока их на ФФД 1.05 не переводил, и соответственно с этим не заморачивался. Сами конфигурации подготовлены, работают, но с эмулятором ФН, в тестовом режиме, по этому, не знаю, что он там передает...
   Aleksey
 
12 - 04.11.18 - 12:49
(8) Более того ИНН кассира - это тэг для электронного чека, его вообще в бумажном не должно быть. А значит ОФД и не обязана выводить и показывать его
   pablo_escobar
 
13 - 04.11.18 - 13:01
(3) Кассы штрих online и ритейл 01, УТ 10.3. Используется DrvFR1C. Когда переводил кассы на ффд 1.05 была ситуация: кассу перерегистрировал на 1.05, в 1-ом ОФД в чеке написано Версия ФФД: 1.05. Но ИНН кассира не было, и не было в строках признака предмета расчета. Выяснилось, что использовал smDrvFR1CLib.dll, а уже нужно было smDrvFR1CLib20.dll. С последней все стало отображаться.
Но что и как с DrvFR.dll не подскажу.
   MWWRuza
 
14 - 05.11.18 - 00:51
Почитайте внимательнее описание формата. Многие теги - не обязательны. Но, это не значит, что их передавать не надо. В данном случае - "не обязательные", значит только то, что данные без них будут валидны. Но, если захотят проверяющие органы дое***, то будет повод. Лучше, пока есть время до обязательного применения ФФД 1.05 - отладить передачу всех необходимых реквизитов. А вообще, ИНН у кассира может и не быть, поэтому и передавать будет нечего.

PS Как я понимаю, задумка этого - контроль, что сотры оформлены как положено, а не гастробайтеры с улицы... Хотя, конечно, контроль так-себе...

PSS В чеке бумажном, ИНН кассира по любому печататься не должен, но в ОФД должен передаваться. Это сам софт кассы должен контролировать, наше дело - передать правильно тэг, а дальше касса+драйвер сами разберутся, что передавать и что печатать. Естественно, прошивка и драйвер должны актуальные быть.
   NorthWind
 
15 - 05.11.18 - 09:11
(14) да никто никому ничего не должен. Еще раз - тег не обязательный и даже не относится к рекомендуемым, передается исключительно по желанию владельца кассы. Ссылка в (1). Там несколько градаций нужности тегов есть, у этого 7 - самая низкая.
   kobayoshi
 
16 - 05.11.18 - 10:53
(11) Спасибо за ответ. У меня Атоллы сейчас под драйвером 8.16.1. Может поэтому не отправляет? Но с другой стороны, какая разница? Теги то этот драйвер передёт. А не поделитесь обработкой для Атол? Под какой драйвер он у Вас работает?
Странно, что в Штрихе тоже не передаёт, там то драйвер последний. И прошивки все старше 20.12.17
Я конечно понимаю, что этот реквизит может и необязательный, но лучше позаботиться заранее о его передаче. Так что давайте не уходить в обсуждения надо-не надо... Хотелось бы понять, что я могу делать не так.
   MWWRuza
 
17 - 05.11.18 - 14:36
(16) Да нет у меня никакой отдельной обработки. Все в составе конфигурации, в бухгалтерии 7.7. Вот фрагмент кода, который передает Имя кассира и ИНН:
    ECR.AttrNumber = 1021;
    ECR.AttrValue = СокрЛП(глПользователь.Наименование);
    ECR.WriteAttribute();
    
    Если СокрЛП(глПользователь.ИНН) <> "" Тогда
        ECR.AttrNumber = 1203;
        ECR.AttrValue = СокрЛП(глПользователь.ИНН);
        ECR.WriteAttribute();
    КонецЕсли;

Драйвер 8.16, последний, который на тот момент, когда ставил, был, кажется 8.16.3
Вчера, специально заглянул в ОФД именно этого клиента(1-ОФД), есть ИНН в каждом чеке. Естественно, касса печатает на бумагу только ФИО кассира.
   MWWRuza
 
18 - 05.11.18 - 14:42
Вот, если нужно, целиком процедура печати чека:

Процедура ПечатьЧека() 
    Ошибка = 0;
    
    ТЧ             = Форма.Параметр.ПолучитьЗначение(3);
    Пар            = Форма.Параметр.ПолучитьЗначение(4);
    СуммаОтПок    = Форма.Параметр.ПолучитьЗначение(5);
    EmailPhone    = Форма.Параметр.ПолучитьЗначение(6);
    // занимаем порт

    ECR.DeviceEnabled = 1;
    Если ECR.ResultCode <> 0 Тогда
        Сообщить("Не удается занятьпорт!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    // получаем состояние ККМ

    Если ECR.GetStatus() <> 0 Тогда
        Сообщить("Не удается получить состояние ККТ!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    
    // если есть открытый чек, то отменяем его

    Если ECR.CheckState <> 0 Тогда
        Если ECR.CancelCheck() <> 0 Тогда
            Сообщить("Не удается отменить предыдущий чек!");
            Ошибка = 1;
            Возврат;
        КонецЕсли;
    КонецЕсли;

      // входим в режим регистрации

    // устанавливаем пароль кассира

    ECR.Password     = "1";
    // входим в режим регистрации

    ECR.Mode         = 1;
    Если ECR.SetMode() <> 0 Тогда
        Сообщить("Не удается установить режим регистрации!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    
    ECR.AttrNumber     = 1055;
    // Применяемая система налогооблажения в чеке:

    //     ОСН - 1

    //     УСН доход - 2

    //     УСН доход-расход - 4

    //     ЕНВД - 8

    //     ЕСН - 16

    //     ПСН - 32

    ECR.AttrValue     = 8;
    ECR.WriteAttribute();

    ECR.AttrNumber = 1021;
    ECR.AttrValue = СокрЛП(глПользователь.Наименование);
    ECR.WriteAttribute();
    
    Если СокрЛП(глПользователь.ИНН) <> "" Тогда
        ECR.AttrNumber = 1203;
        ECR.AttrValue = СокрЛП(глПользователь.ИНН);
        ECR.WriteAttribute();
    КонецЕсли;

    Если СокрЛП(EmailPhone) <> "" Тогда
        ECR.AttrNumber    = 1008;
        ECR.AttrValue     = СокрЛП(EmailPhone);
        ECR.WriteAttribute();
    Конецесли;    
    
    ТЧ.ВыбратьСтроки();
    Пока ТЧ.ПолучитьСтроку() = 1 Цикл
        ECR.Name        = Строка(СокрЛП(ТЧ.Номенклатура.Наименование));
        ECR.Price         = ТЧ.Цена;
        ECR.Quantity     = ТЧ.Количество;
        ECR.Department = 1; 
         // TaxTypeNumber - Номер налога:

        //     0 - Налог из секции

        //     1 - НДС 0%

        //     2 - НДС 10%

        //     3 - НДС 18%

        //     4 - НДС не облагается

        //     5 - НДС с расчётной ставкой 10%

        //     6 - НДС с расчётной ставкой 18%

        ECR.TaxTypeNumber = 4;

        Если ECR.Registration() <> 0 тогда
             Сообщить("Ошибка продажи по накладной ");
                  Если ECR.OutOfPaper = 0 Тогда
                      Предупреждение("В ККМ закончилась бумага!");
                      Ошибка = 1;
                  КонецЕсли;
                  Если ECR.GetCurrentMode() <> 0 Тогда
                      Ошибка = 1;
                     Возврат;
                КонецЕсли;     
            Возврат;
        КонецЕсли;        
    КонецЦикла;
    ИтогЧека    = ТЧ.Итог("Сумма");
    Если Пар = 1 Тогда
        Если СуммаОтПок > ИтогЧека Тогда
            ECR.TypeClose         = 0;
            ECR.Summ             = СуммаОтПок;
            Если ECR.Delivery() <> 0 Тогда
                Ошибка = 1;
                Возврат;
            КонецЕсли;             
        Иначе
            ECR.TypeClose = 0;
              Если ECR.CloseCheck() <> 0 тогда 
                  Сообщить("Ошибка продажи по накладной ");
                  Ошибка = 1;
                Если ECR.OutOfPaper = 0 Тогда
                      Предупреждение("В ККМ закончилась бумага!");
                  КонецЕсли;
                  Если ECR.GetCurrentMode() <> 0 Тогда
                     Возврат;
                КонецЕсли;
                Возврат;
              КонецЕсли;        
        КонецЕсли;
    Иначе
        ECR.TypeClose = 5;// В новых прошивках соответствует платежной карте

          Если ECR.CloseCheck() <> 0 тогда 
              Сообщить("Ошибка продажи по накладной ");
              Ошибка = 1;
            Если ECR.OutOfPaper = 0 Тогда
                  Предупреждение("В ККМ закончилась бумага!");
              КонецЕсли;
              Если ECR.GetCurrentMode() <> 0 Тогда
                 Возврат;
            КонецЕсли; 
            Возврат;
          КонецЕсли;        
    КонецЕсли;
КонецПроцедуры
   d4rkmesa
 
19 - 05.11.18 - 16:53
(18) Интересно, на 8.1 взлетит?
   MWWRuza
 
20 - 05.11.18 - 17:16
(19) А какая разница? Если напишете правильно, то взлетит на чем угодно... Но, только надо понимать, что в (18) одна только процедура печати чека... Надо еще загрузить драйвер, создать из ВК объект ECR для ее работы, ну и нужны еще несколько процедур - Z-отчет, X-отчет, внесение, выплата и т.п. В моем случае - это совершенно с нуля самописка, без применения чего-то типового. Если Вы имеете в виду под 8.1 что-то из типовых конфигураций, то скорее всего нет... Я думаю, 1С вряд-ли поддержала в конфах для 8.1 работу с ККТ. А сами можете сделать чего угодно, если драйвер работает с 7.7, то уж под 8.1 он взлетит по любому...
   MWWRuza
 
21 - 05.11.18 - 17:24
Если уж зашла речь за работу драйвера в "старых" системах, то вот еще фрагменты кода:
В глобальном модуле, при начале работы системы - 
    // установка текущего пользователя

    Спр=СоздатьОбъект("Справочник.Пользователи");
    Если ПустоеЗначение(ИмяПользователя())=0 Тогда
        Если Спр.НайтиПоКоду(ИмяПользователя())=0  Тогда
            Спр.Новый();
            Спр.Код=ИмяПользователя();
            Спр.Наименование=ИмяПользователя();
            Спр.Записать();
            Сообщить("Пользователь зарегистрирован в справочнике пользователей.", ".");
        КонецЕсли;
    Иначе 
        // При неизвестном пользователе позволяем работать только с интерфейсом Администратора

        Если НазваниеИнтерфейса() = "Администратор" Тогда
            Предупреждение("Пользователь системы не определен!", 60);
            Сообщить("Пользователь системы не определен!", "!");
            Если Спр.НайтиПоКоду("НеАвторизован")=0  Тогда
                Спр.Новый();
                Спр.Код          = "НеАвторизован";
                Спр.Наименование = "Не авторизован";
                Спр.Записать();
            КонецЕсли;
        Иначе
            Предупреждение("Пользователь системы не определен!
            |Обратитесь к администратору системы.");
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;
    глПользователь=Спр.ТекущийЭлемент();    
    
    Если Константа.РаботаСФР = Перечисление.Булево.Да Тогда
        Сз = СоздатьОбъект("СписокЗначений");
        Сз.ДобавитьЗначение("Подключить");
        Сз.ДобавитьЗначение(0);
        Спр = СоздатьОбъект("Справочник.ККМ");
        Спр.ВыбратьЭлементы();
        Пока Спр.Получитьэлемент() = 1 Цикл
            Если (Спр.Активна = 1) И (СокрЛП(Спр.ИмяКомпа) = ИмяКомпьютера()) Тогда
                ОткрытьФормуМодально("Обработка.ОбслуживаниеККМ",Сз);
                Прервать;
            КонецЕсли;    
        КонецЦикла;    
    КонецЕсли;    

В обработке обслуживания ККТ:

Процедура Подключить()
    Ошибка = 0;
    Попытка
        ECR = СоздатьОбъект("AddIn.FprnM45");
    Исключение
        Предупреждение("Ошибка при создании объекта AddIn.FprnM45");
        ЗавершитьРаботуСистемы();
    Конецпопытки;
    // занимаем порт

    ECR.DeviceEnabled = 1;
    Если ECR.ResultCode <> 0 Тогда
        Сообщить("Не удалось подключить ККМ!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    // получаем состояние ККМ

    Если ECR.GetStatus() <> 0 Тогда
        Сообщить("Не удалось подключить ККМ!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    //    Сообщить("ККМ подключена!");

КонецПроцедуры

В документе, откуда вызывается печать чека:

Процедура НапечататьЧекККМ()
    Если Выбран() = 0 Тогда
        Предупреждение("Перед печатью кассового чека, документ необходимо записать!",3);
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    Если КоличествоСтрок() = 0 Тогда
        Предупреждение("Таблица документа пустая, печать чека не возможна!",3);
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;    
    Тз = СоздатьОбъект("ТаблицаЗначений");
    Сз = СоздатьОбъект("СписокЗначений");
    ВыгрузитьТабличнуюЧасть(Тз);
    Сз.ДобавитьЗначение("ПечатьЧека");
    Сз.ДобавитьЗначение(0);// Результат операции печати чека

    Сз.ДобавитьЗначение(Тз);
    ИтогоСумма     = Тз.Итог("Сумма");
    СзОпл        = СоздатьОбъект("СписокЗначений");
    СзОпл.ДобавитьЗначение(ИтогоСумма);
    ОткрытьФормуМодально("Обработка.Оплата",СзОпл);
    Если СзОпл.РазмерСписка() < 4 Тогда
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    ТипОплаты     = СзОпл.ПолучитьЗначение(2);    
    Сз.ДобавитьЗначение(ТипОплаты);
    Сз.ДобавитьЗначение(СзОпл.ПолучитьЗначение(3));
    Сз.ДобавитьЗначение(СзОпл.ПолучитьЗначение(4));
    ОткрытьФормуМодально("Обработка.ОбслуживаниеККМ",Сз);
    Результат     = Сз.ПолучитьЗначение(2);
    Если Результат = 0 Тогда
        ЧекНапечатан = 1;
        Попытка
            Записать();
        Исключение
            
        КонецПопытки;    
    КонецЕсли;    
КонецПроцедуры

Я думаю, этого достаточно, что-бы написать самим под что-угодно...
   MWWRuza
 
22 - 05.11.18 - 17:28
А... Ну, еще, в глобальном модуле не забудьте объявить глобальные переменные:

Перем ECR Экспорт;
// Глобальная переменная текущего пользователя

Перем глПользователь    Экспорт;

Ну, и справочник "Пользователи", с одним единственным реквизитом "ИНН" строка, 12 символов, не забудьте создать.

И все взлетит :-)
   Сияющий в темноте
 
23 - 05.11.18 - 18:28
У штрих м полезно посмотреть таблицу региональных настроек,там есть флаги для управления реквизитами.

суть оптимизации в том,что тег переданный один раз считается действующим на последующие чеки,пока не будет передано другое значение,но,видимо,ОФД показывают только то,что явно передано в чеке.

опять же,по логике функционирования,инн и фио кассира должны передаваться вместе,чтобы не было ситуации,когда фио поменялось,а инн остался старый-у штрих именно так и бывает.
   MWWRuza
 
24 - 05.11.18 - 18:35
(23) А... Понятно, может по этому у ТС и не передается. Я в каждый чек передаю.
   kobayoshi
 
25 - 06.11.18 - 15:10
(18) У меня всё аналогично...
Значит всё таки что-то не так с прошивкой или драйвером. А так как ставлю я везде одно и то же, поэтому наверное и не взлетает. Пора наверное перестать мучить 1С и поиграться с драйверами. По результатам отпишусь...
Спасибо за советы!
   kobayoshi
 
26 - 07.11.18 - 09:47
Умные люди подсказали посмотреть, есть ли информация о ИНН в тесте драйвера (раздел ФН, запросить данные по номеру документа). И он там есть! По крайней мере у Штриха, в Атоле я не знаю, как получить эту информацию... Значит дело точно не в ПО.
   kobayoshi
 
27 - 08.11.18 - 17:48
Я получил официальный ответ от ОФД Такском, если вкратце, то ИНН кассира передаётся в налоговую, если присутствует в структуре чека.
Для Штриха я знаю как это посмотреть. Может для Атола кто-нибудь подскажет, как увидеть структуру пробитого чека?
   Сияющий в темноте
 
28 - 08.11.18 - 19:44
(27) как вариант,распечатать документ по номеру ФД через драйвер.
   MWWRuza
 
29 - 09.11.18 - 19:14
Ха... Перехвастался я похоже...
Сегодня у того клиента, где все нормально работало и ИНН кассира вместе с ФИО передавался, перестало работать...
Что поменялось:
Клиент продает компьютерные железки, и попутно оказывает услуги, ну, та ксерокопия, ремонты компов и т.д. После перевода го на ФФД 1.05, ничего с предметом расчета не делал - соответственно он передавал всегда "Товар".
НЕПОРЯДОК!!! Решил доработать. Просто передача параметра "ItemType" ничего не дала... Стал разбираться... Оказывается, для формирования строк чека я использовал по старинке метод "Registration". А вот фиг там, он не передает новые реквизиты 1.05, в частности "Предмет расчета"-!
Надо теперь использовать два метода:
Сначала, начинаем позицию: "BeginItem",
потом передаем все параметры, 
и завершаем позицию: "EndItem".
Дальше, все как и ранее.
Все заработало, предмет расчета стал попадать нормально - когда надо - "Товар", когда надо - "Услуга".
Вот только после этой доработки вместо ФИО кассира, стал передавать "Кассир 01", и ИНН кассира пропал!!!
Вот такая фигня... Надо разбираться, как это взаимосвязано. Ничего больше не менял точно, данные кассира как передавались, так и передаются :(
   Garykom
 
30 - 09.11.18 - 19:18
(29) Попробуй порядок поменять, ИНН кассира в конец или наоборот в начало относительно BeginItem..EndItem
   MWWRuza
 
31 - 09.11.18 - 19:23
(30)Сейчас в начале, перед циклом по строкам... Завтра(ну, или в понедельник, если завтра не получится), попробую после цикла поставить, перед оплатой и закрытием чека. Тогда отпишусь о результате...

PS Прикольно... Зашел в ОФД и там прямо видно, когда пол дня работал кассир с ФИО, а с пол дня стал "Кассир 01". Смена одна и та-же.
   MWWRuza
 
32 - 09.11.18 - 19:42
В общем, проанализировал еще раз пример от АТОЛ, и кажется понял, в чем дело... Вот их код:
// ---------- Чек прихода без отправки электронного чека покупателю ---------- //

//// // // // // // // // // // // // // // // // // // // // // // // // // // // // // 


// Mode - Режим:

//     0 - Выбора
//     1 - Регистрации

//     2 - Отчётов без гашения
//     3 - Отчётов с гашением

driver.Mode = 1;
driver.SetMode();

driver.NewDocument();

// Записать должность и ФИО кассира

driver.AttrNumber = 1021;
driver.AttrValue = "Старший кассир Иванов И.И.";
driver.WriteAttribute();

// CheckType - Тип чека:

//     1 - Приход
//     2 - Возврат прихода

//     4 - Расход
//     5 - Возврат расхода

//     7 - Коррекция прихода
//     9 - Коррекция расхода

driver.CheckType = 1;
// CheckMode - Режим формирования чека:

//     0 - только в электронном виде без печати на чековой ленте
//     1 - печатать на чековой ленте

driver.CheckMode = 1;
driver.OpenCheck();

driver.AttrNumber = 1055;
// Применяемая система налогооблажения в чеке:

//     ОСН - 1
//     УСН доход - 2

//     УСН доход-расход - 4
//     ЕНВД - 8

//     ЕСН - 16
//     ПСН - 32

driver.AttrValue = 8;
driver.WriteAttribute();

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

driver.Name = "Молоко 3.2%";
driver.Price = 50.33;
driver.Quantity = 2;
driver.Department = 0;
// TaxTypeNumber - Номер налога:

//     0 - Налог из секции
//     1 - НДС 0%

//     2 - НДС 10%
//     3 - НДС 18%

//     4 - НДС не облагается
//     5 - НДС с расчётной ставкой 10%

//     6 - НДС с расчётной ставкой 18%
driver.TaxTypeNumber = 4;
// рекомендуется рассчитывать в кассовом ПО цену со скидкой, а информацию по начисленным скидкам печатать нефискальной печатью и не передавать скидку в ККМ, поэтому код для начисления скидки закомментирован

// driver.DiscountValue = 10;
// // DiscountType - Тип скидки:

////     0 - суммовая

////     1 - процентная

// driver.DiscountType = 0;
driver.Registration();
driver.Caption = "В том числе скидка: 4.67\nЦена без скидки: 55.00";
driver.PrintString();

// Отброс копеек (округление чека без распределения по позициям). Скидка на чек доступна только для его округления до рубля. Таким образом недоступны: надбавки, назначение "на позицию", процентные значения.  SummCharge(), PercentsCharge(), PercentsDiscount () и ResetChargeDiscount () более недоступны

// Destination - Назначение скидки:
//     0 - на чек

//     1 - на позицию (недоступно)
driver.Destination = 0;
driver.Summ = 0.66;
driver.SummDiscount();

// Нефискальная печать с информацией по скидкам чека

driver.Caption = "--Скидки по чеку--";
driver.PrintString();
driver.Caption = "Сумма чека без скидок 110.00";
driver.PrintString();
driver.Caption = "Скидки по карте: 9.34";
driver.PrintString();
driver.Caption = "Округление: 0.66";
driver.PrintString();

// Оплата и закрытие чека

// TypeClose - Тип оплаты:
//     0 - Наличными

//     1 - Электронными средствами платежа
driver.TypeClose = 0;
driver.Summ = 500.00;
driver.Payment();
driver.CloseCheck();

А вот мой:

        Сообщить("Не удается занятьпорт!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    // получаем состояние ККМ

    Если ECR.GetStatus() <> 0 Тогда
        Сообщить("Не удается получить состояние ККТ!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    
    // если есть открытый чек, то отменяем его

    Если ECR.CheckState <> 0 Тогда
        Если ECR.CancelCheck() <> 0 Тогда
            Сообщить("Не удается отменить предыдущий чек!");
            Ошибка = 1;
            Возврат;
        КонецЕсли;
    КонецЕсли;

      // входим в режим регистрации

    // устанавливаем пароль кассира

    ECR.Password     = "1";
    // входим в режим регистрации

    ECR.Mode         = 1;
    Если ECR.SetMode() <> 0 Тогда
        Сообщить("Не удается установить режим регистрации!");
        Ошибка = 1;
        Возврат;
    КонецЕсли;
    
    ECR.AttrNumber     = 1055;
    // Применяемая система налогооблажения в чеке:

    //     ОСН - 1

    //     УСН доход - 2

    //     УСН доход-расход - 4

    //     ЕНВД - 8

    //     ЕСН - 16

    //     ПСН - 32

    ECR.AttrValue     = 8;
    ECR.WriteAttribute();

    ECR.AttrNumber = 1021;
    ECR.AttrValue = СокрЛП(глПользователь.Наименование);
    ECR.WriteAttribute();
    
    Если СокрЛП(глПользователь.ИНН) <> "" Тогда
        ECR.AttrNumber = 1203;
        ECR.AttrValue = СокрЛП(глПользователь.ИНН);
        ECR.WriteAttribute();
    КонецЕсли;

    Если СокрЛП(EmailPhone) <> "" Тогда
        ECR.AttrNumber    = 1008;
        ECR.AttrValue     = СокрЛП(EmailPhone);
        ECR.WriteAttribute();
    Конецесли;    
    
    ТЧ.ВыбратьСтроки();
    Пока ТЧ.ПолучитьСтроку() = 1 Цикл
        
        ECR.BeginItem();
        
        ECR.Name        = Строка(СокрЛП(ТЧ.Номенклатура.Наименование));
        
        ECR.ItemType    = ВернПризПредмРасч(ТЧ.Номенклатура.ТипНоменклатуры);// 08.11.2018

        
        ECR.Price         = ТЧ.Цена;
        ECR.Quantity     = ТЧ.Количество;
        
        ECR.Summ         = ТЧ.Сумма;
        
        ECR.Department = 1; 


Ну, и так далее...
У меня нет оператора "NewDocument" в самом начале! Но, все работало и без него прекрасно, пока сегодня не вмешался и не поменял способ формирования строк чека...
Думаю, дело в этом. Попробую - отпишусь.

PS Но, вообще, мне больше по душе новый способ работы с дровами по технологии 1С, через XML. Сформировал "правильную" XMLку, пихнул в драйвер,. и пусть он сам с ней разбирается... Если что не так - это уже не наши проблемы, пусть производители дров разбираются :-))))
   Aleksey
 
33 - 09.11.18 - 21:04
(32) ТОлько 1С в этом случе кивает на писателей драйверов, типа у нас все правильно, это драйвера неправильно обрабатывают. А писатели кивают на 1С, типа у нас все хорошо это не наши драйвера а спец заказ от 1С, все вопросы к ним.
Крайних нет
 
 
   MWWRuza
 
34 - 10.11.18 - 01:25
(33)Крайних нет
Да так то оно так... Но, тут хотя-бы есть вот это: https://its.1c.ru/db/metod8dev#content:4829:hdoc:chapter270
Соответствует ХМЛка требованием, должно работать. Не работает - косяк драйвера, идите в ж.... А в случае прямого, "старого" способа работы с драйвером, тут нюансов куча, как в моем случае...
   Aleksey
 
35 - 10.11.18 - 01:57
(34) Так то оно так, на ври на форуме Атол все сводиться к тому что производитель не хочет признавать проблемы если используется компонента от 1С.
   MWWRuza
 
36 - 12.11.18 - 14:13
Победил... Отчитываюсь:
добавление "NewDocument" - ничего не поменяло. Стал смотреть внимательнее...
Оказывается еще есть команда "OpenCheck" уже после записи атрибутов кассира... Ее у меня тоже не было(пережиток старого драйвера, писалось все это когда еще об онлайне речи не было)... Добавил, и все взлетело! В чеке печатается ФИО кассира, в ОФД так-же передается ФИО и ИНН!

Непонятно, как раньше, до изменения способа печати строк, оно работало... Но, тем не менее - "факт на лицо" :-)
   MWWRuza
 
37 - 12.11.18 - 14:51
+(36) В закрытие чека, даже если он "по карточке", надо принудительно сумму передавать - иначе все работает, но опять "Кассир 01" и без ИНН передается. Раньше, когда строки печатались методом "регистрация", работало и без суммы...


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