Печать чека ККМ. Ошибка конфигурации УТ 11.4.11.106
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Конфигурация УТ 11.4.11.106
Платформа 8.3.17.1496
Тестирование проводилось на эмуляторе ККМ версии 3.2 от компании Модуль (//infostart.ru/public/1129950/)
Сейчас конфигурация УТ при печати чека формирует документ CheckPackage в котором оставляет незаполненным атрибут VATAmount (Сумма НДС), не смотря на то, что атрибут может иметь только числовое значение. Пример неправильного документа:
<CheckPackage>
<Parameters CashierName="Администратор" OperationType="1" TaxationSystem="3" CustomerEmail="" CustomerPhone="">
<AgentData/>
<VendorData/>
</Parameters>
<Positions>
<FiscalString Name="Морковь" Quantity="1" PriceWithDiscount="48.6" AmountWithDiscount="48.6" DiscountAmount="1.4" Department="1" VATRate="none" VATAmount="" PaymentMethod="4" CalculationSubject="1">
<GoodCodeData MarkingCode="AAA="/>
<AgentData/>
<VendorData/>
</FiscalString>
</Positions>
<Payments Cash="50" ElectronicPayment="0" PrePayment="0" PostPayment="0" Barter="0"/>
</CheckPackage>"
Передача такого документа на ККМ может вызвать ошибку:

Как написано выше для атрибута VATAmount допустимо только числовое значение. В случае, когда товарная позиция продается со ставкой НДС Без НДС (VATRate="none") атрибут VATAmount не добавляется в документ CheckPackage. Пример правильного документа:
<CheckPackage>
<Parameters CashierName="Администратор" OperationType="1" TaxationSystem="3" CustomerEmail="" CustomerPhone="">
<AgentData/>
<VendorData/>
</Parameters>
<Positions>
<FiscalString Name="Морковь" Quantity="1" PriceWithDiscount="48.6" AmountWithDiscount="48.6" DiscountAmount="1.4" Department="1" VATRate="none" PaymentMethod="4" CalculationSubject="1">
<GoodCodeData MarkingCode="AAA="/>
<AgentData/>
<VendorData/>
</FiscalString>
</Positions>
<Payments Cash="50" ElectronicPayment="0" PrePayment="0" PostPayment="0" Barter="0"/>
</CheckPackage>"
В методе общего модуля МенеджерОборудованияВызовСервера.СформироватьXMLПакетДляФискализацияЧека для данного СуммаНДС отсутствует проверка на пустое значение и как следствие пустые значения попадают в XML документ .
Ошибку можно исправить заменив фрагмент кода данного метода:
// { PEN 09.06.2020 #1222 $ Атрибут VATAmount должен быть заполнен
Если ТекущаяПозиция.Свойство("СуммаНДС") И НЕ ПустаяСтрока(ТекущаяПозиция.СуммаНДС) Тогда
ЗаписьXML.ЗаписатьАтрибут("VATAmount", XMLСтрока(ТекущаяПозиция.СуммаНДС));
КонецЕсли;
// PEN }
или установить расширение.
Вступайте в нашу телеграмм-группу Инфостарт