|   |   | 
| 
 | Получить данные чека когда он пробит в ККМ | ☑ | ||
|---|---|---|---|---|
| 0
    
        mishaPH 19.03.19✎ 09:06 | 
        Коллеги. А возможно ли кроме номера чека ККМ получить при удачном пробитии оного другие параметры.
 Есть некие номера ФН ФД ФП и дату время которая пошла на чек (с таймера самого ККМ) Атоловские драйвера | |||
| 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)+ 
 
 | |||
| 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=260491entry260491 После 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 | 
        (34) Есть обработка ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы фискальных регистраторов + Эмулятор вроде и для Альфа-Авто тоже...     | |||
| 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" или "sergey@milkopt.ru" Объект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 | ||||
| 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) Только так, без вариантов?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |