Фискальный признак документа (ФПД)

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Фискальный признак документа (ФПД), Получение ФПД для отправки чека в электронном виде.
 
Подскажите пожалуйста есть ли возможность получить реквизит ФПД чека с кассы (Штрих - М) , он необходим для отправки ссылки на чек для клиентов которые оплачивают безналом через банк из др. регионов? В стандартных реквизитах документа я не нашел, будет ли обновление в котором он появиться?

Конфигурация "Альфа-Авто:Автосервис+Автозапчасти Проф, редакция 5"  5.1.14.05
 
Добрый день, Сергей, ФПД выдает сам аппарат, а не Альфа-Авто, это настройка самого ККТ. по данному вопросу Вам нужно обратиться в компанию, которая обслуживает Вас по фискальному регистратору.
 
Цитата
Светлана Сулименко написал:
Добрый день, Сергей, ФПД выдает сам аппарат, а не Альфа-Авто, это настройка самого ККТ. по данному вопросу Вам нужно обратиться в компанию, которая обслуживает Вас по фискальному регистратору.
Это я понимаю, вопрос не много в другом. После печати чека, Альфа запросом получает от ККТ последние реквизиты чека (Номер, дату, смену) возможно ли в этом месте кода получать и ФПД, и будет ли это реализовано?
 
Думаю Сергей Прав.
Это может пригодиться не только ему.
ФР отдает эти данные, и если они могут понадобиться, то можно их получать и хранить в базе.
 
Цитата
Сергей Степченков написал:
Цитата
Светлана Сулименко  написал:
Добрый день, Сергей, ФПД выдает сам аппарат, а не Альфа-Авто, это настройка самого ККТ. по данному вопросу Вам нужно обратиться в компанию, которая обслуживает Вас по фискальному регистратору.
Это я понимаю, вопрос не много в другом. После печати чека, Альфа запросом получает от ККТ последние реквизиты чека (Номер, дату, смену) возможно ли в этом месте кода получать и ФПД, и будет ли это реализовано?
Сергей, такая реализация не планируется.
 
Светлана, здравствуйте.

Реализация просьбы Сергея не требует много усилий.
Почему бы Вам не передать разработчикам, что есть такая необходимость?

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

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

// Вернуть параметры чека
Процедура ВернутьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека,НомерФПД)   //+МВ 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
КонецПроцедуры // ВернутьПараметрыЧека
Далее добавил в документ ЧекНаОплату и обработку ФронтКассира реквизит НомерФПД (тип Строка 10) - Фискальный признак документа. И дописал https://rarus.ru/forum/forum7/topic12988/#message82204 в выше упомянутый код ФронтКассира следующее:
Код
Попытка
   КоличествоСтрок=0; КоличествоСтолбцов=0;
   SafeArrayПараметрыЧека.GetBounds(КоличествоСтрок,КоличествоСтолбцов);
   НомерСмены=Число(SafeArrayПараметрыЧека.GetValue(0,0));
   НомерЧека=Число(SafeArrayПараметрыЧека.GetValue(1,0));
   ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'");
   НомерДокумента=Число(SafeArrayПараметрыЧека.GetValue(2,0));
   НомерФПД = "";   //+МВ 27.03.2019  
   Если КоличествоСтрок > 4 Тогда
      НомерФПД = СокрЛП(SafeArrayПараметрыЧека.GetValue(4,0));
   КонецЕсли;
   СтруктураВозвратныхПараметров = Новый Структура("ДатаФР,НомерЧека,НомерДокумента,НомерСмены,НомерФПД",ДатаФР,НомерЧека,НомерДокумента,НомерСмены,НомерФПД);   //-МВ
Исключение
   ТекстОшибки="Ошибка получения фискальных реквизитов пробитого чека: "+ОписаниеОшибки();
КонецПопытки;
А в функцию ЗаписатьЧек():
Код
Функция ЗаписатьЧек(ФлагПроведения,СообщениеОбОшибке,ПраваДополнительно=НЕОПРЕДЕЛЕНО, КПопыток=-1, ПроверитьКорректность=ЛОЖЬ) Экспорт
   Результат=ЛОЖЬ;
   
   // Сформируем и заполним объект для записи в БД
   Если ХозОперация=Справочники.ХозОперации.ПриходныйКассовыйОрдер ИЛИ (НЕ УстановленРежим("РКО") И ХозОперация=Справочники.ХозОперации.РасходныйКассовыйОрдер) Тогда
      ДокументОбъект = Ссылка.ПолучитьОбъект();
      ЗаполнитьЗначенияСвойств(ДокументОбъект, ЭтотОбъект, "НомерЧека,ДатаФР,НомерДокумента,НомерСмены,ФР,КассаККМ,СкладКомпании");
   ИначеЕсли ХозОперация=Справочники.ХозОперации.ЧекНаОплату И (НЕ Ссылка.Пустая()) Тогда
      ДокументОбъект = Ссылка.ПолучитьОбъект();
      ДокументОбъект.Оплаты.Загрузить(Оплаты.Выгрузить()); 
      ЗаполнитьЗначенияСвойств(ДокументОбъект, ЭтотОбъект, "НомерЧека,ДатаФР,НомерДокумента,НомерСмены,ФР,КассаККМ,СкладКомпании,ПолученоНал,ПолученоБезНал,НомерФПД");   //+МВ 27.03.2019
      Попытка ДокументОбъект.АвтоЗакрытиеСделок = ЭтотОбъект.ДоговорВзаиморасчетов.АвтоЗакрытиеСделок; Исключение КонецПопытки;
      ДокументОбъект.Дата=ТекущаяДата();
В форме документа ЧекНаОплату реквизит НомерФПД расположил на вкладке Фискальные реквизиты в виде гиперссылки, при нажатии на которую открывается чек на сайте ОФД:
Код
// Открыть чек на сайте ОФД Такском-Касса
//+МВ 29.03.2019
Процедура НомерФПДНажатие(Элемент)
   Если ПустаяСтрока(НомерФПД) Тогда   Возврат;   КонецЕсли;
   ЗапуститьПриложение("https://receipt.taxcom.ru/v01/show?fp=" + СокрЛП(НомерФПД) + "&s=" + Формат(СуммаДокумента,"ЧГ=0") + "&sf=False&sfn=False");
КонецПроцедуры
Таким образом всегда можно убедиться ушел ли чек в ОФД.
Изменено: Михаил Волков - 30.03.2019 15:20:46 (Добавление текста)
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С