Имя: Пароль:
1C
 
Получить данные чека когда он пробит в ККМ
0 mishaPH
 
19.03.19
09:06
Коллеги. А возможно ли кроме номера чека ККМ получить при удачном пробитии оного другие параметры.
Есть некие номера ФН ФД ФП и дату время которая пошла на чек (с таймера самого ККМ)

Атоловские драйвера
1 Cyberhawk
 
19.03.19
09:23
Конечно
2 mishaPH
 
модератор
19.03.19
09:26
о. а описание этого есть где-то?
3 Cyberhawk
 
19.03.19
09:28
В ПДФ-файлике с описанием АПИ драйвера
4 serpentt
 
19.03.19
09:35
ОбъектECR.RegisterNumber = 51;
ОбъектECR.GetRegister();
НомерЧека = ОбъектECR.НомерДокумента;
НомерФД   = ОбъектECR.ФискальныйПризнак;
5 serpentt
 
19.03.19
09:37
51 регистр
Данные по последнему фискальному
чеку (DocNumber,
LastCheckType, Summ, Day,
Month, Year, Minute, Hour,
FiscalSign)
6 mishaPH
 
модератор
19.03.19
09:42
(4) мерси.

вот определились. надо получить параметр с чека ФН и ФД
НомерЧека это ФД? иди Номер ФД у вас это поле ФПД.

нам надо чек из налоговой полученный через контроль чеков точно опознать с пробитым в магазине. по идее ФН_ФД как раз уникальный для данного ККМ номер чека.
7 serpentt
 
19.03.19
09:45
DocNumber ФД
FiscalSign ФПД
8 mishaPH
 
модератор
19.03.19
09:47
(7) еще раз для меня тупого. ФН и ФД как вызвать у атола. ФПД не надо.
9 serpentt
 
19.03.19
09:49
ФПД(абривеатуры) у Атола уже нет давно

DocNumber ФД
FiscalSign ФП
10 PaulBC
 
19.03.19
09:50
еще можно в личном кабинете ОФД посмотреть
11 Aleksey
 
19.03.19
09:52
Для 10-ки смотри описание протокола страница 39

Таблица 5. Описание пакета ответа с результатами обработки документа

payload Реквизиты фискализации документа. -
∟fiscal_receipt_number integer Номер чека в смене. 1042
∟shift_number integer Номер смены. 1038
∟receipt_datetime string Дата и время документа из ФН. 1012
∟total number Итоговая сумма документа в рублях с
заданным в CMS округлением:
 целая часть не более 8 знаков;
 дробная часть не более 2
знаков.
При регистрации в ККТ происходит
расчёт фактической суммы:
суммирование значений sum позиций.
1020
∟fn_number string Номер ФН. 1041
∟ecr_registration_number string Регистрационный номер ККТ. 1037
∟fiscal_document_number integer Фискальный номер документа. 1040
∟fiscal_document_attribute integer Фискальный признак документа. 1077
∟fns_site string Адрес сайта ФНС. 1060
12 mishaPH
 
модератор
19.03.19
09:52
(9) большое спасибо. попробую.
ОбъектECR.RegisterNumber = 51;
ОбъектECR.GetRegister();

это обязательно вызывать или уже у Объекта после пробития чека все уже известно?
сейчас работает конструкция еще с бог знает каких времен     
НомерЧека = Объект.НомерЧека;
13 mishaPH
 
модератор
19.03.19
09:53
(10) да тут как раз лазить туда долго. да и в ЛК еще может быть не передано

все эти параметры для точного опознавания чека в будущем надо при пробитии в док запомнить
14 serpentt
 
19.03.19
09:53
(12) обращение к регистру ОБЯЗАТЕЛЬНО
15 serpentt
 
19.03.19
09:54
Я эти реквизиты запоминаю в Документе и сразу могу сравнить с ОФД
16 mishaPH
 
модератор
19.03.19
09:56
(14) ок. (15) ну вот как раз для этого и делаем
17 Garykom
 
гуру
19.03.19
10:35
(0) Практически все можно, изучай http://integration.atol.ru/?pascal#c6464ee6ea
18 Garykom
 
гуру
19.03.19
10:41
(17)+

Процедура ПроверкаСвязиККТ(КассирФИО, КассирИНН)
    
    ОбъектДрайвера = Новый COMобъект("AddIn.Fptr10");
    
    // Подключение по порту USB
    ОбъектДрайвера.setSingleSetting(ОбъектДрайвера.LIBFPTR_SETTING_PORT, Строка(ОбъектДрайвера.LIBFPTR_PORT_USB));
    ОбъектДрайвера.applySingleSettings();
    ОбъектДрайвера.open();
    
    ОбъектДрайвера.setParam(1021, СокрЛП(КассирФИО));
    ОбъектДрайвера.setParam(1203, СокрЛП(КассирИНН));
    ОбъектДрайвера.operatorLogin();
    
    ОбъектДрайвера.setParam(ОбъектДрайвера.LIBFPTR_PARAM_FN_DATA_TYPE, ОбъектДрайвера.LIBFPTR_FNDT_OFD_EXCHANGE_STATUS);
    ОбъектДрайвера.fnQueryData();
    
    ОшибкаТО = ОбъектДрайвера.errorDescription();
    Если ОшибкаТО = "Ошибок нет" Тогда
        СтатусОбмена = ОбъектДрайвера.getParamInt(ОбъектДрайвера.LIBFPTR_PARAM_OFD_EXCHANGE_STATUS);
        КоличествоНеотправленных = ОбъектДрайвера.getParamInt(ОбъектДрайвера.LIBFPTR_PARAM_DOCUMENTS_COUNT);
        НомерПервогоНеотправленного = ОбъектДрайвера.getParamInt(ОбъектДрайвера.LIBFPTR_PARAM_DOCUMENT_NUMBER);
        ДатаВремяПервогоНеотправленного = ОбъектДрайвера.getParamDateTime(ОбъектДрайвера.LIBFPTR_PARAM_DATE_TIME);
        ЕстьСообщенияДляОФД = ОбъектДрайвера.getParamBool(ОбъектДрайвера.LIBFPTR_PARAM_OFD_MESSAGE_READ);
        
        Сообщить("Кол-во неотправленных "+КоличествоНеотправленных);
        Сообщить("Есть сообщения для ОФД: "+ЕстьСообщенияДляОФД+" (Статус обмена: "+СтатусОбмена+")");
        Сообщить("Первый неотправленный № "+НомерПервогоНеотправленного+" от "+ДатаВремяПервогоНеотправленного);
    Иначе
        Сообщить(""+ОшибкаТО);
    КонецЕсли;
    
    ОбъектДрайвера.setParam(ОбъектДрайвера.LIBFPTR_PARAM_DATA_TYPE, ОбъектДрайвера.LIBFPTR_DT_LAST_SENT_OFD_DOCUMENT_DATE_TIME);
    ОбъектДрайвера.queryData();
    
    ОшибкаТО = ОбъектДрайвера.errorDescription();
    Если ОшибкаТО = "Ошибок нет" Тогда
        ДатаВремяСвязиСОФД = ОбъектДрайвера.getParamDateTime(ОбъектДрайвера.LIBFPTR_PARAM_DATE_TIME);
        Сообщить("Последняя связь с ОФД "+ДатаВремяСвязиСОФД);
    Иначе
        Сообщить(""+ОшибкаТО);
    КонецЕсли;
    
    // Состояние смены
    ОбъектДрайвера.setParam(ОбъектДрайвера.LIBFPTR_PARAM_DATA_TYPE, ОбъектДрайвера.LIBFPTR_DT_SHIFT_STATE);
    ОбъектДрайвера.queryData();
    
    ОшибкаТО = ОбъектДрайвера.errorDescription();
    Если ОшибкаТО = "Ошибок нет" Тогда
        ОбъектДрайвера_СостояниеСмены = ОбъектДрайвера.getParamInt(ОбъектДрайвера.LIBFPTR_PARAM_SHIFT_STATE);
        Если ОбъектДрайвера_СостояниеСмены = ОбъектДрайвера.LIBFPTR_SS_CLOSED Тогда
            Сообщить("Кассовая смена закрыта.");
        ИначеЕсли ОбъектДрайвера_СостояниеСмены = ОбъектДрайвера.LIBFPTR_SS_OPENED Тогда
            Сообщить("Кассовая смена открыта.");
        ИначеЕсли ОбъектДрайвера_СостояниеСмены = ОбъектДрайвера.LIBFPTR_SS_EXPIRED Тогда
            Сообщить("Кассовая смена истекла!");
        Иначе
            Сообщить("Не смогли получить состояние кассовой смены!");
        КонецЕсли;
    Иначе
        Сообщить(""+ОшибкаТО);
    КонецЕсли;
    
    ОбъектДрайвера.close();
    ОбъектДрайвера = Неопределено;
    
КонецПроцедуры
19 mishaPH
 
модератор
20.03.19
10:24
(4) кстати а к регистру обращаться уже после закрытия чека перед коммандо отключится от фр?
20 Garykom
 
гуру
20.03.19
10:26
(19) Это неужели еще через 8-й драйвер пытаешься?
Забей и перепиши уже все через 10-е.
21 Garykom
 
гуру
20.03.19
10:27
(20)+ Могу примеры кода пробивки и прочего дать готовые для 1С и подсказать если что не получится.
22 mishaPH
 
модератор
20.03.19
10:34
(20) я не могу в 200 магазинах менять драйвера ккм. это вообще не мое дело
23 mishaPH
 
модератор
20.03.19
10:35
надо из имеющегося вытащить или послать тех кому это надо из за невозможности
24 Garykom
 
гуру
20.03.19
11:07
(22) Так один хрен скоро менять придется вынужденно в спешке и с матами.
25 mishaPH
 
модератор
20.03.19
11:08
(24) зачем и когда? с этого года вроде итак новый формат
26 mishaPH
 
модератор
20.03.19
12:22
ОбъектECR.RegisterNumber = 51;
ОбъектECR.GetRegister();
НомерЧека = ОбъектECR.НомерДокумента;
НомерФД   = ОбъектECR.ФискальныйПризнак;

конструкция на 8х драйверах работает. но
DocNumber ФД  верный
FiscalSign ФП есть но номер не тот что на чеке потом.

а ФН вообще в Объекте не нашел.

Кстати на чеке 2 номера ккт ЗН и РН
ЗН заводской наверное и виден в Объекте
а если чек получить через прогу налоговую с шк то там один номер и подозреваю не заводской.

нужен ФН и ФД тогда точно чтобы получить чек из налоговой и точно его найти в 1с
27 mishaPH
 
модератор
21.03.19
09:09
как ФН получить так что то нигде найти не могу. Может там кроме 51 регистра еще какие есть и данные там?
28 Mikhail Volkov
 
21.03.19
10:03
Когда нет возможность вручить отбитый чек клиенту в руки отправляем его по e-mail. Хотелось бы отправлять Фискальный признак, чтобы клиент мог его открыть на сайте ОФД. Но в Альфа-Авто нет такой (26) возможности, отбитие чека выполняется ВыполнитьКомандуОборудования("ФР",GUID_ФР,"ПробитьЧек",SafeArrayПараметрыЧека,ТаймаутФР,ТекстОшибки), а получение фискальных реквизитов:
    КоличествоСтрок=0; КоличествоСтолбцов=0;
    SafeArrayПараметрыЧека.GetBounds(КоличествоСтрок,КоличествоСтолбцов);
    НомерСмены=Число(SafeArrayПараметрыЧека.GetValue(0,0));
    НомерЧека=Число(SafeArrayПараметрыЧека.GetValue(1,0));
    ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'");
    НомерДокумента=Число(SafeArrayПараметрыЧека.GetValue(2,0));
    СтруктураВозвратныхПараметров=Новый Структура("ДатаФР,НомерЧека,НомерДокумента,НомерСмены",ДатаФР,НомерЧека,НомерДокумента,НомерСмены);
Или все же возможно получить Фискальный признак чека?
29 Garykom
 
гуру
21.03.19
10:51
(28) Когда уже снимешь нафуй защиту с этой древней альфы и переделаешь работу с ККТ нормально?
30 Garykom
 
гуру
21.03.19
11:12
Хм понимаешь же что в один прекрасный момент 8-й драйвер атола всё.
А кто будет переписывать эту систему защиты на 10-й драйвер это большой вопрос, очень сомневаюсь ибо конфа устарела.
31 mishaPH
 
модератор
21.03.19
12:39
(30) когда и почему?
32 НаборДанных
 
21.03.19
13:08
(30)Альфа так-то до сих пор не работает с драйверами выше 8.16.5, и так всё, что требуется на сегодняшний день согласно формата 1.05 реализовано
33 Garykom
 
гуру
21.03.19
13:09
(31) https://www.atol.ru/company/news/o-perekhode-na-dkkt-10-i-prekrashchenii-razvitiya-i-podderzhki-dkkt-8-i-9-/
http://forum.atol.ru/index.php?showtopic=35965&st=0&p=260491&#entry260491

После 2019 года поддержки для 8-й и 9-й версий атол сказал не будет, новые версии уже не выпускают с 2018, но патчи для старых делают еще.
34 Garykom
 
гуру
21.03.19
13:12
Ну маркировка для автошин и возможно расширят до 2024 перечень что еще.
Если есть планы менять альфу 4 в ближайшие 5 лет надо или придется много ее пилить.
35 Mikhail Volkov
 
21.03.19
13:21
(30) Фрагмент (28) взял из Альфа-Авто 4.1, но в 5.1.15.10 он не изменился. По поводу драйверов АТОЛ 1С-Рарус задавался вопрос: https://rarus.ru/forum/messages/forum7/topic11493/message81010/#message81010 Ответ в (32).
36 mishaPH
 
модератор
21.03.19
14:04
(33) понятно.. а из 8й то можно вытянуть поле ФН чека? пока с этим разбираемся
37 serpentt
 
21.03.19
14:05
(26)
У меня все ТО и из регистра и на чеке...
Обращение к регистру сразу после закрытия чека

ОбъектECR.CloseCheck();
    
Если ЕстьОшибкаККМ(ОбъектECR,10) = 1 Тогда
    Возврат 0;
КонецЕсли;
    
//Получаем Номера
ОбъектECR.RegisterNumber = 51;
ОбъектECR.GetRegister();
НомерЧека = ОбъектECR.НомерДокумента;
НомерФД   = ОбъектECR.ФискальныйПризнак;
СуммаЧека = ОбъектECR.Сумма;
38 mishaPH
 
модератор
21.03.19
14:26
(37) а фискальный признак он вообще что такое? он уникален ? в каких рамках?
39 Garykom
 
гуру
21.03.19
14:52
(38) Нет он не уникален а "криптографичен".
Короче хеш-функция некая, зависящая от кучи параметров (номер ккт, номер чека и т.д.)
40 Mikhail Volkov
 
21.03.19
17:35
41 Garykom
 
гуру
21.03.19
18:58
(40) платная
42 Mikhail Volkov
 
22.03.19
06:47
(39) Число?
(41) Да мне только эмулятор нужен, чтобы провериль. Есть в ФР Альфа-Авто Учебный/ЕНВД, неизвестно формирует ли фискальный признак?
43 Mikhail Volkov
 
22.03.19
10:22
(37) Этот фрагмент из какой конфигурации?
44 mishaPH
 
модератор
22.03.19
10:31
(43) тис обычная наверное
45 Mikhail Volkov
 
22.03.19
13:07
(44) Скачал ТиС 7.70.999, сделал Поиск во всех текстах строки "ОбъектECR". Не найдены!?
46 Garykom
 
гуру
22.03.19
13:10
(45) "ОбъектECR" это чье то изобретение, в примерах от атол просто ECR
47 mishaPH
 
модератор
22.03.19
13:10
(46) в старых атоловских идет просто Объект.
48 mishaPH
 
модератор
22.03.19
13:11
(45) все это в fr_comm.ert в папке еквип
49 mishaPH
 
модератор
22.03.19
13:11
(45) вообще это просто под себя ктото так мог назвать
50 Garykom
 
гуру
22.03.19
13:11
(42) Да просто число. Суть в том чтобы не смогли подделать этот ФП без настоящего ФН.
51 Garykom
 
гуру
22.03.19
13:14
Я бы все же рекомендовал на 10-е дрова перейти, там все логичнее и больше возможностей.
52 Garykom
 
гуру
22.03.19
13:15
Например можно пробивать нормально НДС 20% без покупки КЗ10 ))
53 Сияющий в темноте
 
22.03.19
13:32
В восьмом драйвере есть возможность посылки низкоуровнего пакета на фр
восьмая версия драйвера работает через службу,что позволяет ставить службу нп одном компе,а работать с другой.
девятый так не умеет,а в десятом службу зпменили на вебсервис,но прозрачного проброса так и нет.
еще одна из проблеи в том,что у раруса своя служба управления оборудованием,и она работает под системно учеткой,насколько я помню,9 и 10 драйвер так не умеет он окна на экран кидает.
54 serpentt
 
22.03.19
13:37
(52) а кто Вам сказал что КЗ10 надо покупать?

Все аппараты продаваемые с января 2019 года имеют КЗ10
55 Garykom
 
гуру
22.03.19
13:40
(54) Т.е. вместо покупки КЗ10 ты предлагаешь новую ККТ купить а старую выкинуть?
56 Garykom
 
гуру
22.03.19
13:41
(55)+ Хотя интересный момент.
А сайт ФНС позволит две ККТ с одним заводским номером зарегать?
57 serpentt
 
22.03.19
13:41
(43) Это своя внешняя обработка обслуживания ККТ
вот функция пробития чека

Функция ПечататьЧекФЗ54_105(ОбъектECR,Пароль,ВыбДокумент,ТипЧека,НомерЧека,НомерФД,ДлинаСтроки,ЗаводскойНомККМ,МайлТелефон="",
                        КодТоргПред="",НомерПечДока,ПакетнаяПечать=0,ТипКоррекции="",СпособРасчета=1,ДатаДокОсн="")
    
    Если ПустоеЗначение(ОбъектECR) = 1 Тогда
        ОписаниеРезультата = "устройство не подключено";
        Возврат 0;
    Иначе
        Если ПодключитьсяКФР(ОбъектECR) = 0 Тогда
            Возврат 0;
        КонецЕсли;
    КонецЕсли;
    
    //Сверим на всякий случай Серийный номер ККМ
    Если Строка(Прав(ОбъектECR.SerialNumber,10)) <> ЗаводскойНомККМ Тогда
        ОписаниеРезультата = "Не совпадают Номера в кассе и на ККМ";
        Возврат 0;
    КонецЕсли;
    
    //{ Mode - Режим:
    //     0 - Выбора
    //     1 - Регистрации
    //     2 - Отчётов без гашения
    //     3 - Отчётов с гашением
    ОбъектECR.Mode = 1;
    //}
    
    ОбъектECR.Password = Пароль; // пароль на режим регистрации
    
    //Данные  метод  является  сервисным  и  представляет  собой  логическое  сочетание  нескольких кассовых операций
    // (Запросы, GetStatus (), SetMode (), CancelCheck () и т.д.).
    ОбъектECR.NewDocument();
    
    //ОбъектECR.SetMode();
    Если ЕстьОшибкаККМ(ОбъектECR,6) = 1 Тогда
        Возврат 0;
    КонецЕсли;
    
    //{ "1021" Записать должность и ФИО кассира
    ОбъектECR.AttrNumber = 1021;
    ОбъектECR.AttrValue  = СокрЛП(глПользователь.Наименование);//"Старший кассир Иванов И.И."
    ОбъектECR.WriteAttribute();
    //}
    
    //{ "1203" Записать ИНН кассира
    ИННКассира = СокрЛП(глПользователь.я_Сотрудник.ФизЛицо.ИНН);
    Если ПустоеЗначение(ИННКассира) = 0 Тогда
        ОбъектECR.AttrNumber = 1203;
        ОбъектECR.AttrValue  = ИННКассира;
        ОбъектECR.WriteAttribute();
        Если ЕстьОшибкаККМ(ОбъектECR,7) = 1 Тогда
            Возврат 0;
        КонецЕсли;
    КонецЕсли;
    //}[+]_
    
    //{ CheckType - Тип чека:
    //     1 - Приход
    //     2 - Возврат прихода
    //     4 - Расход
    //     5 - Возврат расхода
    //     7 - Коррекция прихода
    //     9 - Коррекция расхода
    ОбъектECR.CheckType = ТипЧека;
    //}
    
    //{ CheckMode - Режим формирования чека:
    //     0 - только в электронном виде без печати на чековой ленте
    //     1 - печатать на чековой ленте
    ЭлектронныйЧек = 0;
    Если МайлТелефон <> "" Тогда
        ОбъектECR.CheckMode = 0;
        ЭлектронныйЧек = 1;
    Иначе
        ОбъектECR.CheckMode = 1;
    КонецЕсли;
    //}
    
    ОбъектECR.OpenCheck();
    
    //{ "1008" Запись контакта покупателя для отправки электронного чека
    ОбъектECR.AttrNumber = 1008;
    ОбъектECR.AttrValue  = МайлТелефон;//"+79091235566" или "[email protected]"
    ОбъектECR.WriteAttribute();
    //}
    
    //{ "1055" Применяемая система налогооблажения в чеке:
    //     ОСН - 1
    //     УСН доход - 2
    //     УСН доход-расход - 4
    //     ЕНВД - 8
    //     ЕСН - 16
    //     ПСН - 32
    ОбъектECR.AttrNumber = 1055;
    ОбъектECR.AttrValue  = 1;
    ОбъектECR.WriteAttribute();
    //}
    
    //ОбъектECR.AdvancedRegistration = TRUE;//РасширеннаяРегистрация Наименование печатается вместе с ценой и количеством //[-]serpent, 26.04.2017
    
    ВыбДокумент.ВыбратьСтроки();
    Пока ВыбДокумент.ПолучитьСтроку() = 1 Цикл
        
        ТекНоменклатура = ВыбДокумент.Номенклатура;
        Если ТипЗначенияСтр(ТекНоменклатура) = "Справочник" Тогда
            //Т.Е. Гипотетически это строки из Документов(Реализация или ВозвратОтПокупателя)
            
            ПредметРасчета = 1;
            ОригНаименование = СокрЛП(ТекНоменклатура.Наименование);
            СтрНаимТовара    = Мин(ОригНаименование, Сред(ОригНаименование,1,ДлинаСтроки));
            
            //Начало Регистрации товара или услуги
            ОбъектECR.BeginItem();
            
            ОбъектECR.Name       = СтрНаимТовара;
            ОбъектECR.Price      = ВыбДокумент.Цена;
            ОбъектECR.Quantity   = ВыбДокумент.Количество;
            ОбъектECR.Department = 0;
            
            // Если значение |Summ - Price * Quantity| > 0.01 ,
            // то ККТ посчитает, что была скидка и будет при необходимости преобразовывать позицию, разделяя её на 2
            Попытка
                ОбъектECR.Summ = ВыбДокумент.Сумма;
            Исключение
                //[+]serpent, 13.06.2018
                //Это кривой ЧЕК, сумма документа не передается. Сумма=Цена !!!
                //Потом заменить ГРАБЛИ на передачу реквизита "Сумма" из Документа
                ОбъектECR.Summ = ВыбДокумент.Цена;
            КонецПопытки;
            
            //{ Признак предмета расчёта. Свойство ItemType может принимать значения:
            //     1 - товар, за исключением подакцизного товара
            //     2 - подакцизный товар
            //     3 - работа
            //     4 - услуга
            //     5 - приём ставок при деятельность по организации и проведению азартных игр
            //     6 - выплата выигрышей в азартных играх
            //     7 - реализация лотерейных билетов или ставок при деятельность по организации и проведению лотерей
            //     8 - выплата выигрышей в лотереях
            //     9 -  прав на использование результатов интеллектуальной деятельности или средств индивидуализации
            //     10 -  аванс, задаток, предоплата, кредит, взносе в счет оплаты, пени, штраф, вознаграждение, бонус и иной аналогичный предмет расчета
            //     11 -  предмет расчета, состоящий из предметов, каждому из которых может быть присвоено значение от 0 до 10 (набор)
            //     12 -  предмет расчета, не относящийся к предметам расчета, которым может быть присвоено значение от 0 до 11
            ОбъектECR.ItemType = ПредметРасчета;
            //}
            
            //{ Признак способа расчёта. Свойство PaymentMode может принимать значения:
            //     1 - Полная предварительная оплата до момента передачи предмета расчета
            //     2 - Частичная предварительная оплата до момента передачи предмета расчета
            //     3 - Аванс
            //     4 - Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета
            //     5 - Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит
            //     6 - Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит
            //     7 - Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита)
            ОбъектECR.PaymentMode = СпособРасчета;
            //}
            
            //{ TaxTypeNumber - Номер налога:
            //     0 - Налог из секции
            //     1 - НДС 0%
            //     2 - НДС 10%
            //     3 - НДС 18%
            //     4 - НДС не облагается
            //     5 - НДС с расчётной ставкой 10%
            //     6 - НДС с расчётной ставкой 18%
            Если ВыбДокумент.СтавкаНДС = локНДС10 Тогда
                ОбъектECR.TaxTypeNumber = 2;
            ИначеЕсли ВыбДокумент.СтавкаНДС = локНДС18 Тогда
                ОбъектECR.TaxTypeNumber = 3;
            ИначеЕсли ВыбДокумент.СтавкаНДС = локНДС20 Тогда //[+]serpent, 06.12.2018
                ОбъектECR.TaxTypeNumber = 3;    
            ИначеЕсли ВыбДокумент.СтавкаНДС = локБезНДС Тогда    
                ОбъектECR.TaxTypeNumber = 4;
            Иначе
                ОписаниеРезультата = "У товара неопределенная ставка НДС, чек отменен.";
                ОбъектECR.CancelCheck();
                Возврат 0;
            КонецЕсли;    
            //}
            
            //{ ОТКЛЮЧЕНО Способ исчисления суммы налога. Доступные значения TaxMode:
            //     0 - налог расчитывается от суммы позиции
            //     1 - налог расчитывается от цены позиции
            //ОбъектECR.TaxMode = 1;
            //}
            
            //{ Сумма налога TaxSumm. Если передаётся 0, то ККТ считает самостоятельно по TaxTypeNumber и TaxMode.
            // В противном случае в ОФД отправляется переданная сумма, но при значении настройки Т2Р1П114 бит 1 = 1 ККТ  
            // бедет осуществлять контроль переданных данных, при чём контроль в будущем нельзя будет отключить (Русинова).
            Если ДатаДокОсн = "" Тогда
                ОбъектECR.TaxSumm = 0;
            Иначе
                Если ТекущаяДата() < '01.01.2019' Тогда
                    ОбъектECR.TaxSumm = 0;
                Иначе
                    Если ДатаДокОсн < '01.01.2019' Тогда //[+]serpent, 17.12.2018
                        Если ВыбДокумент.СтавкаНДС = локНДС18 Тогда
                            ОбъектECR.TaxMode = 0;
                            ОбъектECR.TaxSumm = ВыбДокумент.СуммаНДС;
                        Иначе
                            ОбъектECR.TaxSumm = 0;
                        КонецЕсли;
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
            //}
            
            //Окончание Регистрации
            ОбъектECR.EndItem();
        Иначе
            //Будем считать что это на основании ПКО введен РКО и теперь мы решили сделать возврат суммы
            
            ОригНаименование = СокрЛП(ТекНоменклатура);
            СтрНаимТовара    = Мин(ОригНаименование, Сред(ОригНаименование,1,ДлинаСтроки));
            
            // Регистрация товара или услуги
            ОбъектECR.BeginItem();
            
            ОбъектECR.Name       = СтрНаимТовара;
            ОбъектECR.Price      = ВыбДокумент.Цена;
            ОбъектECR.Quantity   = ВыбДокумент.Количество;
            ОбъектECR.Department = 0;
            ОбъектECR.TaxTypeNumber = ВыбДокумент.СтавкаНДС;// 1-по умолчанию    
            ОбъектECR.Summ        = ВыбДокумент.Цена*ВыбДокумент.Количество;
            ОбъектECR.ItemType    = 1;
            ОбъектECR.PaymentMode = 1;
            //ОбъектECR.TaxMode   = 1;
            ОбъектECR.TaxSumm     = 0;
            
            ОбъектECR.EndItem();
        КонецЕсли;
        
        
        ////[-]serpent, 26.04.2017
        //Если ЕстьОшибкаККМ(ОбъектECR,8) = 1 Тогда
        //    Возврат 0;
        //КонецЕсли;
        ////[-]_
    КонецЦикла;
    
    // Нефискальная печать с информацией
    //ОбъектECR.Caption = "Можно напечатать все что угодно";
    //ОбъектECR.PrintString();
    
    //{ ОТКЛЮЧЕНО Отброс копеек (округление чека без распределения по позициям). Скидка на чек доступна только для его округления до рубля.
    // Таким образом недоступны: надбавки, назначение "на позицию", процентные значения.  SummCharge(), PercentsCharge(),
    // PercentsDiscount () и ResetChargeDiscount () более недоступны
    // Destination - Назначение скидки:
    //     0 - на чек
    //     1 - на позицию (недоступно)
    //ОбъектECR.Destination = 0;
    //ОбъектECR.Summ = 0.70;
    //ОбъектECR.SummDiscount();
    //}
    
    // Нефискальная печать с информацией о номере документа и Торг.Представителе
    //{
    СтрДопИнформ = "";
    Если КодТоргПред <> "" Тогда
        СтрДопИнформ = СтрДопИнформ + "КОД ТП: "+КодТоргПред;
    КонецЕсли;
    Если НомерПечДока <> "" Тогда
        Добавок = "";
        Если ТипКоррекции = 1 Тогда
            Добавок = " ПКО";
        ИначеЕсли ТипКоррекции = 2 Тогда
            Добавок = " ПКО";
        Иначе
            Добавок = ?(ТипЧека=1," ПКО"," РКО");
        КонецЕсли;
        СтрДопИнформ = СтрДопИнформ +Добавок+" №: "+НомерПечДока;
    КонецЕсли;
    
    
    // ДС- символ «удвоения ширины»
    ОбъектECR.Caption = "--------------"+ДС+"И"+ДС+"н"+ДС+"ф"+ДС+"о"+ДС+"р"+ДС+"м"+ДС+"а"+ДС+"ц"+ДС+"и"+ДС+"я-------------";//не более 48-символов.
    ОбъектECR.PrintString();
    ОбъектECR.Caption = СтрДопИнформ;
    ОбъектECR.PrintString();
    
    ОбъектECR.Caption = "-----------------------------------------------";
    ОбъектECR.PrintString();
    //}
    
    // Нефискальная печать с информацией
    Если (ТипКоррекции=1) или (ТипКоррекции=2)  Тогда
        ОбъектECR.Caption = "ВНИМАНИЕ, чек коррекция!";
        ОбъектECR.PrintString();
    КонецЕсли;    
    
    //{ TypeClose - Тип оплаты:
    //     0 - Наличными
    //     1 - Электронными средствами платежа
    ОбъектECR.TypeClose = 0;//Тип Закрытия чека - НАЛИЧНЫМИ
    //ОбъектECR.Summ = ВыбДокумент.Итог("Сумма");
    //ОбъектECR.Payment();
    
    //Если ЕстьОшибкаККМ(ОбъектECR,9) = 1 Тогда
    //    Возврат 0;
    //КонецЕсли;
    
    //}
    
    ОбъектECR.CloseCheck();
    
    Если ЕстьОшибкаККМ(ОбъектECR,10) = 1 Тогда
        Возврат 0;
    КонецЕсли;
    
    //Получаем Номера
    ОбъектECR.RegisterNumber = 51;
    ОбъектECR.GetRegister();
    НомерЧека = ОбъектECR.НомерДокумента;
    НомерФД   = ОбъектECR.ФискальныйПризнак;
    СуммаЧека = ОбъектECR.Сумма;
    
    //Запишем в реестр номер
    Инфа = "НД: "+СокрЛП(НомерПечДока)+" НЧ: "+СокрЛП(НомерЧека)+" ФД: "+СокрЛП(НомерФД)+" Сумма: "+СокрЛП(СуммаЧека)+?(ЭлектронныйЧек=1," Электронный","");
    глЗаписатьИнфуВЛогФайл(локИмяФайлаЧеки,Инфа);
    
    Возврат 1;
КонецФункции // ПечататьЧекФЗ54_105()
58 serpentt
 
22.03.19
13:42
(56) нет

только с разными ФН
59 Garykom
 
гуру
22.03.19
13:45
(58) Понятно что номера ФН будут разные.
Суть в том что берем новую такую же ККТ, КЗ10 привязан к заводскому номеру.
Делаем клон из старой ККТ прописывая туда данные из новой.
Регаем обе в ФНС под разными регистрационными номерами с разными ФН.

Не прокатит?
60 Garykom
 
гуру
22.03.19
13:47
Суть могут ли быть дубли заводских номеров ККТ, например у разных производителей?
61 Сияющий в темноте
 
22.03.19
13:56
При регистрации заводской номер проверяется в реестре,и дублей быть не может,но после регистрации,заводской номер нигде не используется до замены фн.
62 Mikhail Volkov
 
22.03.19
15:45
(48) В ExtForms\Equip\fr_comm.ert функция ПечататьЧек(). Но ФискальныйПризнак в Альфа-Авто получить фрагментами (26), (37) наверное не получится, если только штатную ВыполнитьКомандуОборудования("ФР",GUID_ФР,"ПробитьЧек",SafeArrayПараметрыЧека,ТаймаутФР,ТекстОшибки) заменить типа (57)?
63 Garykom
 
гуру
22.03.19
15:47
(62) Ты лучше объясни почему еще используете эту кривую работу/пробивку через сервер защиты?
Там переписать дело пары дней.
64 Mikhail Volkov
 
22.03.19
15:50
(63) Особой нужды не было.
65 Garykom
 
гуру
22.03.19
15:51
(64) И нет проблем с хитрыми пробивками? Например делить чеки по СНО или еще что?
66 Сияющий в темноте
 
22.03.19
17:43
вообщн,и у штриха и у атола можно получить весь фискальный документ в виде тлв структур,через любой драйвер от 8 до 10.

система защиты раруса позволяет работать с одной кассой с разных рабочих мест,собственно,это единственный ее плюс.
67 Garykom
 
гуру
22.03.19
17:49
(66) Есть множество способов делать тоже самое и даже через инет пробивать на удаленную ККТ.
В ответ получить слип и вывести его на чековый принтер с верным ФП ))

Жаль что по закону ККТ должна быть именно в месте расчета если наличными платят.
Так бы можно было одну реальную ККТ с ФН использовать на организацию.
68 Mikhail Volkov
 
23.03.19
06:29
(65) Были конечно, но их решил штатными средствами. А ФискальныйПризнак похоже ими не получить, если вместо них не использовать свою функцию подобную (57)?
(66) > система защиты раруса позволяет работать с одной кассой с разных рабочих мест,собственно,это единственный ее плюс.
Для Альфа-Авто даже терминальный режим внештатный.
69 Garykom
 
гуру
23.03.19
13:50
(68) Можно слегка допилить и все будет штатное.
И нет проблем с долгим запуском и тем что "флешка" из usb пропадет на сервере.
70 Mikhail Volkov
 
25.03.19
19:14
На https://forum.infostart.ru/forum28/topic167314/?PAGEN_1=56#message2178573 мне подсказали: когда вызывается команда ВыполнитьКомандуОборудования, то управление переходит в компоненту защиты Рарус, после этого уже компонента вызывает обработку "Торговое оборудование", с его формой, соответствующей функционалу определенного оборудования. В обработке "Торговое оборудование" нашел функцию ОборудованиеПробитьЧек(), в которой из массива входных параметров получают фискальные реквизиты чека:
ПараметрыШапкиЧека=ВходныеПараметры.GetValue(0,0);
флФиск        = ПараметрыШапкиЧека.GetValue(1, 0);
Всего        = ПараметрыШапкиЧека.GetValue(2, 0);
Итог        = ПараметрыШапкиЧека.GetValue(3, 0);
СкидкаНаЧек    = ПараметрыШапкиЧека.GetValue(4, 0);
:
НомерСмены    = ПараметрыШапкиЧека.GetValue(9, 0);
НомерЧека    = ПараметрыШапкиЧека.GetValue(10, 0);
НомерДокумента    = ПараметрыШапкиЧека.GetValue(11, 0);
ДатаЧека    = ПараметрыШапкиЧека.GetValue(12, 0);
:
ВыделятьНалоги    = ПараметрыШапкиЧека.GetValue(18, 0);
ПарольКассираЧека=ПараметрыШапкиЧека.GetValue(19, 0);
СНО        = ПараметрыШапкиЧека.GetValue(23, 0);
Назначение первых 19 и 23 элементов массива расписаны. А в каком элементе массива находится ФискальныйПризнак - нет, и вообще, есть ли такой?
71 Mikhail Volkov
 
26.03.19
07:34
Похоже нет такого элемента массива со значением ФискальныйПризнак. Его сперва нужно получить, типа:

// Получить параметры чека
Функция ПолучитьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека,Фискальный = Истина);

    // Сохраняем номер,дату и время чека
    Устройство.ПолучитьСостояние();
    КодОшибки = РезультатВыполненияДействия(); Если КодОшибки <> 0 Тогда Возврат КодОшибки; КонецЕсли;
    
    ПроверкаПоддержки54ФЗ();
    
    Если Поддерживает54ФЗ Тогда
    
        Устройство.НомерРегистра = 53;
        КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
        Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;
        
        // Получим номер смены
        НомерСмены = -1;
        НомерСмены = Число(Устройство.Смена);
        Если НомерСмены=0 Тогда НомерСмены=-1;  КонецЕсли;
        
        Если Фискальный Тогда
            НомерЧека = Устройство.КоличествоИтераций;
            Если НомерЧека=0 Тогда НомерЧека=-1;  КонецЕсли;
            Устройство.НомерРегистра = 52;
            КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
            Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;
            НомерДок  = Устройство.НомерДокумента;
        Иначе
            НомерДок = Устройство.НомерЧека - 1;
        КонецЕсли;
        
    Иначе
        
        // Сохраняем номер чека
        Устройство.ПолучитьСостояние();
        КодОшибки = РезультатВыполненияДействия(); Если КодОшибки <> 0 Тогда Возврат КодОшибки; КонецЕсли;
            
        Устройство.НомерРегистра = 19;
        КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
        Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;
            
        НомерЧека = Устройство.НомерЧека-1;
        НомерДок  = Устройство.НомерДокумента-1;
                            
        // Получим номер закрытой смены
        НомерСмены = -1;
        Устройство.НомерРегистра = 21; // номер текущей смены
        КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
        Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;
            
        НомерСмены = Число(Устройство.Смена);
        Если НомерСмены=0 Тогда НомерСмены=-1;  КонецЕсли;
        
    КонецЕсли;
    
    // Сохраняем дату и время чека
    ДатаЧека=Формат(Устройство.Год,"ЧЦ=4; ЧВН=; ЧГ=0")+"."+
    Формат(Устройство.Месяц,"ЧЦ=2; ЧВН=; ЧГ=0")+"."+
    Формат(Устройство.День,"ЧЦ=2; ЧВН=; ЧГ=0")+" "+
    Формат(Устройство.Час,"ЧЦ=2; ЧВН=; ЧГ=0")+":"+
    Формат(Устройство.Минута,"ЧЦ=2; ЧВН=; ЧГ=0")+":"+
    Формат(Устройство.Секунда,"ЧЦ=2; ЧВН=; ЧГ=0");
    Возврат 0;
    
КонецФункции

// Вернуть параметры чека
Процедура ВернутьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека)
//    Возвращает данные пробитого на ФР чека
//    .. НомерЧека = Число(<Номер пробитого чека>)
//    .. ДатаЧека     = Дата(<Дата пробитого чека>)
    ПараметрыВозврата=Рарус_Компонента.СоздатьПараметры(4,1);
    ПараметрыВозврата.SetValue(0,0,НомерСмены);
    ПараметрыВозврата.SetValue(1,0,НомерЧека);
    ПараметрыВозврата.SetValue(2,0,НомерДок);
    ПараметрыВозврата.SetValue(3,0,ДатаЧека);
КонецПроцедуры // ВернутьПараметрыЧека

А потом поместить в элемент массива, например, так: ПараметрыВозврата.SetValue(4,0,ФискальныйПризнак); К сожалению этого нет. А как его получить не знаю..?
72 Mikhail Volkov
 
28.03.19
13:18
(38) В моих чеках вроде строка из 10 цифр. 10 - это стандарт, длиннее бывает?
73 Mikhail Volkov
 
28.03.19
15:29
Вроде получилось: в функцию ПолучитьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека,Фискальный = Истина,НомерФПД = "") вставил: НомерФПД = Устройство.ФискальныйПризнак; после Устройство.НомерРегистра = 52; и изменил
// Вернуть параметры чека
Процедура ВернутьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека,НомерФПД)    //+МВ 27.03.2019
//    Возвращает данные пробитого на ФР чека
//    .. НомерЧека = Число(<Номер пробитого чека>)
//    .. ДатаЧека     = Дата(<Дата пробитого чека>)
    ПараметрыВозврата=Рарус_Компонента.СоздатьПараметры(5,1);    //+МВ 27.03.2019
    ПараметрыВозврата.SetValue(0,0,НомерСмены);
    ПараметрыВозврата.SetValue(1,0,НомерЧека);
    ПараметрыВозврата.SetValue(2,0,НомерДок);
    ПараметрыВозврата.SetValue(3,0,ДатаЧека);
    ПараметрыВозврата.SetValue(4,0,НомерФПД);    //+МВ 27.03.2019
КонецПроцедуры // ВернутьПараметрыЧека

а во ФронтКассира добавил:

Попытка
    КоличествоСтрок=0; КоличествоСтолбцов=0;
    SafeArrayПараметрыЧека.GetBounds(КоличествоСтрок,КоличествоСтолбцов);
    НомерСмены=Число(SafeArrayПараметрыЧека.GetValue(0,0));
    НомерЧека=Число(SafeArrayПараметрыЧека.GetValue(1,0));
    ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'");
    НомерДокумента=Число(SafeArrayПараметрыЧека.GetValue(2,0));
    НомерФПД=0;    //+МВ 27.03.2019  
    Если КоличествоСтрок > 4 Тогда
        НомерФПД=Число(SafeArrayПараметрыЧека.GetValue(4,0));
    КонецЕсли;
    СтруктураВозвратныхПараметров=Новый Структура("ДатаФР,НомерЧека,НомерДокумента,НомерСмены,НомерФПД",ДатаФР,НомерЧека,НомерДокумента,НомерСмены,НомерФПД);    //-МВ
Исключение
    ТекстОшибки="Ошибка получения фискальных реквизитов пробитого чека: "+ОписаниеОшибки();
КонецПопытки;

Теперь в чеке имею НомерФПД - Фискальный признак документа. Хочу в форме чека на вкладке Фискальные реквизиты вывести в виде гиперссылки, при ее нажатии выводился чек с сайта ОФД. Как?
74 Mikhail Volkov
 
28.03.19
16:08
На Такском https://receipt.taxcom.ru/ кроме ФПД нужно вводить Итог - сумму расчета, на https://check.ofd.ru/ - еще ФД. А так, чтобы в ссылке указать ФПД, и получить чек - нельзя?
75 Mikhail Volkov
 
28.03.19
17:53
А вот Первый ОФД https://consumer.1-ofd.ru/#/landing имеет Поиск по ссылке: Вставьте ссылку из письма с электронной копией чека или из СМС на вашем телефоне отправленную Вам при покупке в магазине. Как эту ссылку сформировать из известных фискальных реквизитов чека?
76 Garykom
 
гуру
28.03.19
18:00
У ФНС нет какой то штуки/сервиса для проверки чека?
77 Mikhail Volkov
 
28.03.19
19:05
(76) Вроде есть Проверка с помощью мобильного приложения от ФНС https://www.ekam.ru/blogs/pos/proverka-podlinnosti-cheka - сканируешь телефоном штрихкод, и получаешь чек с сайта ОФД. А вот просто по цифровому ФПД...?
78 Garykom
 
гуру
28.03.19
19:31
79 Mikhail Volkov
 
29.03.19
06:17
(78) https://buhguru.com/kass-tekh/api-proverka-chekov-fns.html ...подать заявку непосредственно на подключение к сервису «API Проверка чеков» - да, не все так просто как хотелось.

Вчера, когда отлаживал свои изменения (73), а отлаживал в рабочей базе с реальным ФР АТОЛ (эмуляторы не формируют ФПД), вылезло еще 2 чека. При закрытии кассовой смены вышло предупреждение, что обороты ККМ и ФР не совпадают, т.е. в ОФД по 1-му чеку отправлено всего 3 чека. Смену закрыли, в Альфа-Авто все нормально. Но что делать с 2-я лишними чеками отправленными в ОФД?
80 NorthWind
 
29.03.19
06:46
(31) когда будут очередные новшества в ФФД или когда будет очередная переобувка законодательства, которая коснется ККТ, как это случилось с НДС 20% только что. В зависимости от того что произойдет раньше. Восьмые дрова допиливать не будут под такие новшества, уже сказали.
81 Mikhail Volkov
 
29.03.19
09:22
(79)+ Может в копии базы отбить 2 возвратных чека по 1-му чеку, чтобы в ОФД отослались?
82 mishaPH
 
модератор
29.03.19
10:17
Колелги еще вопрос.
а размер шрифта при печати чего-то в чек ( строки рекламной например ) можно менять? и жирность
83 Garykom
 
гуру
29.03.19
10:19
(81) Если по ЕНВД чеки то забить, иначе да возвраты пробить
84 Garykom
 
гуру
29.03.19
10:20
(82) Можно в пределах то умеет ККТ
85 mishaPH
 
модератор
29.03.19
10:25
(84) а как атоловскому драйверу сказать что эту строку вот так печатать)
86 Mikhail Volkov
 
29.03.19
14:12
(78) Оказывается чек надо открывать на том сайте ОФД, с которым договор. у меня Такском-Касса:
// Открыть чек на сайте ОФД Такском-Касса
//+МВ 29.03.2019
Процедура НомерФПДНажатие(Элемент)
    Если ПустаяСтрока(НомерФПД) Тогда    Возврат;    КонецЕсли;
    ЗапуститьПриложение("https://receipt.taxcom.ru/v01/show?fp="; + СокрЛП(НомерФПД) + "&s=" + Формат(СуммаДокумента,"ЧГ=0") + "&sf=False&sfn=False");
КонецПроцедуры
Правда чеков с копейками пока нет...
87 Garykom
 
гуру
29.03.19
14:15
(85) LIBFPTR_PARAM_FONT для 10-го драйвера и там еще много что есть

fptr.setParam(fptr.LIBFPTR_PARAM_TEXT, "Строка");
fptr.setParam(fptr.LIBFPTR_PARAM_ALIGNMENT, fptr.LIBFPTR_ALIGNMENT_RIGHT);
fptr.setParam(fptr.LIBFPTR_PARAM_FONT, 2);
fptr.setParam(fptr.LIBFPTR_PARAM_FONT_DOUBLE_WIDTH, True);
fptr.setParam(fptr.LIBFPTR_PARAM_FONT_DOUBLE_HEIGHT, True);
fptr.printText();

http://integration.atol.ru/?pascal#da8644ef4c
88 mishaPH
 
модератор
29.03.19
15:27
(87) а для 8го это возможно?
89 Garykom
 
гуру
29.03.19
15:32
(88) PrintField
90 mishaPH
 
модератор
29.03.19
15:48
(89) да понятно что так и печатаем.

http://blog.atol.ru/archives/717

вот нашел.
91 Garykom
 
гуру
29.03.19
16:01
(90) Там ограничение что в одной строке текст разными размерами/стилем только на отдельных моделях ККТ редких.
92 mishaPH
 
модератор
29.03.19
17:33
(91) т.е. построчно разбивать и только в одной строке можно изменять шрифт. для одной строки параметры задаются?
93 Garykom
 
гуру
29.03.19
17:48
(92) угу
94 Garykom
 
гуру
29.03.19
17:49
(93)+ Точнее строка может перенестись и будет тем же шрифтом
95 Mikhail Volkov
 
30.03.19
12:01
(83) Нет, ОСНО. Из-за НДС?
96 Mikhail Volkov
 
31.03.19
06:45
(95)+ А может забить, не делать никаких левых возвратов? Для чего ставятся кассовые аппараты, чтобы контролировать продажи, выручку... В данном случае по одной продажи отбит чек, который трижды ушел в ОФД. Нарушений нет (или есть?). В базе 1С все нормально, на отчетность этот факт никак не повлияет!?
97 Garykom
 
гуру
31.03.19
07:09
(96) НДС с чека трижды заплотите и ок
98 Mikhail Volkov
 
01.04.19
06:15
(97) НДС платится согласно отчетности по базе. А в базе одна продажа, один чек, а не три!?
99 Garykom
 
гуру
01.04.19
06:28
(98) НДС платится по поданной декларации, а ее надо подавать согласно (на основе данных) пробитым чекам или другим первичным документам.

Чек это в рознице первичный документ же.
100 Mikhail Volkov
 
01.04.19
07:01
(99) Но чек один, это в ОФД их три!?
101 Garykom
 
гуру
01.04.19
07:18
(100) Ну посмотрят что в ФН записано при спорах. Если там тоже три то платите за три ))
102 Mikhail Volkov
 
02.04.19
12:22
Ладно, отбил возвратные чеки в копии 1С, на том же ФР, ушли в ОФД...
И вроде есть контроль уже отбитых чеков: Данный документ уже был пробит на фискальном регистраторе. Повторное выполнение операции запрещено.
А как вносятся исправления в отбитый чек? Например, клиент купил товар, ему отбили чек. А ему что то не понравилось, например, модель немного не та. Товар заменили, может и доплачивать не пришлось, но чек надо исправить. Как вносятся исправления в отбитый чек?
103 Garykom
 
гуру
02.04.19
12:33
(102) Возврат + Новый правильный чек
104 Mikhail Volkov
 
02.04.19
12:54
(103) Только так, без вариантов?