Продается подарочный сертификат, формируется чек на аванс.
При этом 1с ставит ставку 5% (первая картинка).

Чек пробивается, выглядит так:

```1c
    ПРИХОД
    13.01.2025 19:56
    ------------------------------------------
    Подарочныйсертификат25000руб.
    1.000х25000.00=25000.00
    БЕЗ НДС
    ПЛАТЕЖ
    АВАНС
    ------------------------------------------
    ИТОГ=25000.00
    ------------------------------------------
    ОПЛАТА
    БЕЗНАЛИЧНЫМИ=25000.00
    СНО:УСНдоход
    СУММА БЕЗ НДС25000.00
    КАССИР: Вячеслав
    ПОДПИСЬ:__________________________________
    СПАСИБОЗАПОКУПКУ!
    ==========================================
```

В XML это выглядит так:

```1c
    <Positions>
    <FiscalString Name="Подарочный сертификат 25000 руб."
    Quantity="1"
    PriceWithDiscount="25000"
    AmountWithDiscount="25000"
    DiscountAmount="0"
    Department="1"
    VATRate="none"
    PaymentMethod="3"
    CalculationSubject="10">
    <AgentData/>
    <VendorData/>
    <IndustryAttribute/>
    </FiscalString>
    </Positions>
    <Payments Cash="0"
    ElectronicPayment="25000"
    PrePayment="0"
    PostPayment="0"
    Barter="0"/>
```

Почему ставка НДС 5% из чека заменяется на "Без НДС"? И как таки пробить с НДС?
---
Разобрался (путем долгой отладки, конечно же): https://geniy1s.ru/ispolzovanie-printera-chekov-dlya-otladki-chekov-unf-3-0/
Косяк 1С в УНФ 3.0.10.178
У кого есть более свежий релиз, проверьте поправили или нет.

Решение - исправляем патчем модуля УправлениеНебольшойФирмойПовтИсп:

```1c
    &Вместо("ПолучитьЗначениеСтавкиНДСДляККТ")
    Функция дор_ПолучитьЗначениеСтавкиНДСДляККТ(СтавкаНДС, ЭтоАванс)

    //Исправляем в 1С не учитываются 5% на аванс

    Результат = ПродолжитьВызов(СтавкаНДС, ЭтоАванс);

    Если Результат = Неопределено И
    ЗначениеЗаполнено(СтавкаНДС) И Не СтавкаНДС.НеОблагается И ЭтоАванс Тогда
    Если СтавкаНДС.Ставка = 5 Тогда
    Результат = 105;
    ИначеЕсли СтавкаНДС.Ставка = 7 Тогда
    Результат = 107;
    КонецЕсли;
    КонецЕсли;

    Возврат Результат;

    КонецФункции
```

А типовой код бракоделов из 1С на картинке.
---
Выглядит как ошибка. Обращались в поддержку по адресу v8@1c.ru?
---
нет возможности обратиться в 1С.
---
Вышла 3.0.10.210, где эта ошибка уже исправлена.
---
ну, слава богу. Косяк мейкеры
---
Для начала нужно задаться вопросом - все ли обновлено до последней версии (Прошивка ККТ, 1С Конфигурация, Драйвер ККТ, 1С Компонента ККТ)?

Если что-то не обновлено, может возникнуть подобная ошибка.
---
УНФ последняя. Видно, что в чек передается "Без НДС". Драйве Атола в 1С последний, чеки с 5% печатаются нормально. Ну а по XML видно, что уже тут ошибка, так что кассу можно исключить.
---
Но если понятно, что дело в 1С конфигурации, то можно пройтись отладчиком по процедуре печати чека и выяснить на каком этапе получается ставка "Без НДС" (это должно происходить при формировании структуры чека для ККТ).
---
да, это в планах. Но учитывая, какой ужасный и запутанный код типовых, хочется сперва попробовать решить задачу на методологическом уровне.
---
Кто не хочет мучить отладчик, вот тут можно поправить обработкой логики и передать на ККТ правильную ставку. Подключаем расширение, код подмены ставки комментируем, добавляем свою.
Хотя правильно разобраться по методологии 1с УНФ, почему так происходит (проверяем номенклатуру, документ Касса банк, проверяем ставки пониженная УСН 5%, ставки в уп организации, у меня были ошибки с тем, что документы были заведены до обновления, приходилось заказы на авансы распроводить полностью, проводить текущей датой, атол стал бить правильно и в офд отправлять).
---
спасибо, хороший ход, но я все же решил поискать ошибку 1с и нашел.
---
https://its.1c.ru/db/kkt/content/186/hdoc

Вот тут указано, что при предоплате должна быть указана ставка НДС.
---
Разобрался (путем долгой отладки, конечно же): https://geniy1s.ru/ispolzovanie-printera-chekov-dlya-otladki-chekov-unf-3-0/
Косяк 1С в УНФ 3.0.10.178
У кого есть более свежий релиз, проверьте поправили или нет.

Решение - исправляем патчем модуля УправлениеНебольшойФирмойПовтИсп:

```1c
    &Вместо("ПолучитьЗначениеСтавкиНДСДляККТ")
    Функция дор_ПолучитьЗначениеСтавкиНДСДляККТ(СтавкаНДС, ЭтоАванс)

    //Исправляем в 1С не учитываются 5% на аванс

    Результат = ПродолжитьВызов(СтавкаНДС, ЭтоАванс);

    Если Результат = Неопределено И
    ЗначениеЗаполнено(СтавкаНДС) И Не СтавкаНДС.НеОблагается И ЭтоАванс Тогда
    Если СтавкаНДС.Ставка = 5 Тогда
    Результат = 105;
    ИначеЕсли СтавкаНДС.Ставка = 7 Тогда
    Результат = 107;
    КонецЕсли;
    КонецЕсли;

    Возврат Результат;

    КонецФункции
```

А типовой код бракоделов из 1С на картинке.
---
Для УНФ 3.0.10.178 вышел патч EF_00_00696780: Если в РМК принимать аванс на УСН5/7 ставка НДС будет БезНДС, хотя должна быть 105/107