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

Декоративное изображение

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

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

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

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

По факту: Добавить реквизит в Чеки, и несколько строк на получение данных и запись в этот реквизит...
Сотрудник 1С-Рарус
Поставлено пожелание разработчикам.
Пользователь ПП
Спасибо)
Пользователь ПП
Цитата
Сергей Степченков написал:
Альфа запросом получает от ККТ последние реквизиты чека (Номер, дату, смену) возможно ли в этом месте кода получать и ФПД, и будет ли это реализовано?
Об этом месте кода речь?
Код
Попытка
   КоличествоСтрок=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");
КонецПроцедуры
Таким образом всегда можно убедиться ушел ли чек в ОФД.
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С