На основе публикации на сайте налоговой: ФНС России в отдельных случаях не будет штрафовать за отсутствие бумажного чека.
При наличии дефицита кассовой ленты, и при отсутствии требования покупателя предоставить кассовый чек продавец может сформировать электронный чек, с отправкой в ОФД, но без печати на кассовой ленте. Т.к. публикации ФНС не являются нормативно-правовыми актами, то бремя доказывания обоснованности формирования электронного чека лежит на продавце.
Расширение позволяет отправить сформировать электронный чек, просто выбрав вариант отправки чека на эл.почту без заполнения поля. Таким образом кассир при каждом чеке имеет возможность выбора либо печатать чек ККТ, либо сформировать электронно.
Реализация: расширение заполняет значение адреса электронной почты текстом "@" если выбрана отправка на эл.почту, а поле адреса оставлено пустым. Т.е. если в поле адреса эл.почты внести чей-либо адрес, то получатель по-прежнему получит чек на эл.почту (конечно, если ОФД осуществляет такую отправку). Если поле будет заполнено указанным текстом, то 1С пройдет проверку заполненности поля и отправит на ККТ признак электронного чека. Отправка на эл.адрес не произойдет, но при этом ККТ сформирует электронный чек. Для этого в настройках конфигурации нужно включить пункты "Отправлять электронные чеки на e-mail через ОФД" и "Не печатать фискальный чек при отправке электронного чека покупателю".
Требования к разработке драйверов подключаемого оборудования, раздел "3.5. Требования к разработке драйверов для ККТ с функцией передачи в ОФД".
Выбор электронного чека:
Настройка конфигурации для формирования электронных чеков.
Перейти по пунктам меню: "НСИ и администрирование" - "Продажи" - "Розничные продажи" - "Электронные чеки (ФЗ-54)".
Включить пункты "Отправлять электронные чеки на e-mail через ОФД" и "Не печатать фискальный чек при отправке электронного чека покупателю".
- для Управление торговлей 11
- для Комплексная автоматизация 2
Содержимое расширения:
Общий модуль: ФорматноЛогическийКонтрольВызовСервера
- здесь отключаем проверку заполнения адреса эл.почты для электронного чека
(в процедуру передается копия параметров, поэтому заполнение только для проверок)
&Вместо("ВыполненаПроверкаОбязательностиИПравильностиЗаполненияТэгов")
Функция ЭлЧек_ВыполненаПроверкаОбязательностиИПравильностиЗаполненияТэгов(Параметры, ИдентификаторУстройства, ОписаниеОшибки)
// Электронный чек
Электронно = Ложь;
Параметры.Свойство("Электронно", Электронно);
ПокупательEmail = "";
Параметры.Свойство("ПокупательEmail", ПокупательEmail);
ПокупательНомер = "";
Параметры.Свойство("ПокупательНомер", ПокупательНомер);
Если Электронно = Истина
И НЕ ЗначениеЗаполнено(ПокупательEmail)
И НЕ ЗначениеЗаполнено(ПокупательНомер) Тогда
Параметры.Вставить("ПокупательEmail", "@");
КонецЕсли;
Результат = ПродолжитьВызов(Параметры, ИдентификаторУстройства, ОписаниеОшибки);
Возврат Результат;
КонецФункции
Общий модуль: МенеджерОборудованияВызовСервераПереопределяемый
- заполнение после проверок
&Вместо("СформироватьШаблонЧека")
Функция ЭлЧек_СформироватьШаблонЧека(ОбщиеПараметры, ДополнительныйТекст, СтандартнаяОбработка, ТипОборудования)
СтандартнаяОбработка = ЛОЖЬ;
// Электронный чек
Электронно = Ложь;
ОбщиеПараметры.Свойство("Электронно", Электронно);
ПокупательEmail = "";
ОбщиеПараметры.Свойство("ПокупательEmail", ПокупательEmail);
ПокупательНомер = "";
ОбщиеПараметры.Свойство("ПокупательНомер", ПокупательНомер);
Если Электронно = Истина
И НЕ ЗначениеЗаполнено(ПокупательEmail)
И НЕ ЗначениеЗаполнено(ПокупательНомер) Тогда
ОбщиеПараметры.Вставить("ПокупательEmail", "@");
КонецЕсли;
Возврат ОбщиеПараметры;
КонецФункции
Дополнение. В приведенном расширении нет, не протестировано, но можно еще добавить очистку поля эл.почты, удалить вставленный символ, чтобы не передавался в чек.
Общий модуль: МенеджерОборудованияВызовСервера
- очистка поля эл.почты
&Вместо("ПодготовитьДанныеФискализацииЧека")
Функция ЭлЧек_ПодготовитьДанныеФискализацииЧека(ОбщиеПараметры, ПараметрыПодключения)
// Электронный чек
Электронно = Ложь;
ОбщиеПараметры.Свойство("Электронно", Электронно);
ПокупательEmail = "";
ОбщиеПараметры.Свойство("ПокупательEmail", ПокупательEmail);
Если Электронно = Истина
И (ПокупательEmail = "@") Тогда
//очистим наш знак перед отправкой
ОбщиеПараметры.Вставить("ПокупательEmail", "");
КонецЕсли;
// Вставить содержимое метода.
Результат = ПродолжитьВызов(ОбщиеПараметры, ПараметрыПодключения);
Возврат Результат;
КонецФункции
Код расширений для УТ 11 и КА 2 полностью идентичен. И при должной сноровке оба расширения можно подключить к любой из указанных конфигураций.
Тестировалось на 1С:Предприятие 8.3 (8.3.17.1851) в конфигурациях Управление торговлей 11 (11.4.11.84) и Комплексная автоматизация 2 (2.5.7.324).