Печать чека с построчной суммой НДС

27.09.18

Задачи пользователя - Адаптация типовых решений

Печать чека с построчной суммой НДС (для УТ11/ERP/KA/...)

Последнее время я стал натыкаться на вопросы о выводе какой-либо дополнительной информации в чек.

Эта мини-статья для экономии времени по реализации сей "хотелки" - построчного вывода суммы НДС.

Напомню, что эта доработка носит рекомендательный характер: https://its.1c.ru/db/kkt#content:56:hdoc

Для полноты добавлю и требования к новым образцам чеков: https://its.1c.ru/db/kkt#content:54:hdoc@16d201e1

 

Итак, начнем.

1. Для начала необходимо получить сами данные "СуммаНДС" из табличных частей документ-оснований.

Идём в ДенежныеСредстваСервер.ЗаполнитьПозицииИТаблицуОплатЧека().

После инициализации запроса получения позиций в чеке изменим его текст, добавив нужное нам поле:

...
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = ТекстЗапросаОплаченныеПозицииНоменклатуры();

//++
Запрос.Текст = СтрЗаменить(Запрос.Текст, 
	"ТаблицаДокумента.СтавкаНДС              КАК СтавкаНДС,", 
	"ТаблицаДокумента.СтавкаНДС              КАК СтавкаНДС, ТаблицаДокумента.СуммаНДС,");
Запрос.Текст = СтрЗаменить(Запрос.Текст, 
	"ТаблицаНоменклатуры.СтавкаНДС              КАК СтавкаНДС,", 
	"ТаблицаНоменклатуры.СтавкаНДС              КАК СтавкаНДС, ТаблицаНоменклатуры.СуммаНДС,");
//--
...

2. Далее следуем в МенеджерОборудованияВызовСервера.ПолучитьXMLПакетДляФискализацияЧека().

Здесь формируется XML строка для передачи в ККТ. После элемента "FiscalString" добавим нашу сумму НДС:

...
ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString");
ЗаписьXML.ЗаписатьАтрибут("Name"             , XMLСтрока(ТекущаяПозиция.Наименование));
ЗаписьXML.ЗаписатьАтрибут("Quantity"         , XMLСтрока(ТекущаяПозиция.Количество));
ЗаписьXML.ЗаписатьАтрибут("PriceWithDiscount", XMLСтрока(ЦенаСоСкидками));
ЗаписьXML.ЗаписатьАтрибут("SumWithDiscount"  , XMLСтрока(ТекущаяПозиция.Сумма));
ЗаписьXML.ЗаписатьАтрибут("DiscountSum"      , XMLСтрока(ТекущаяПозиция.СуммаСкидок));
ЗаписьXML.ЗаписатьАтрибут("Department"       , XMLСтрока(ТекущаяПозиция.НомерСекции));

Если НЕ ПустаяСтрока(ТекущаяПозиция.СтавкаНДС) Тогда 
	Если ТекущаяПозиция.СтавкаНДС = 118 Тогда
		ЗначениеСтавкаНДС = "18/118";
	ИначеЕсли ТекущаяПозиция.СтавкаНДС = 110 Тогда
		ЗначениеСтавкаНДС = "10/110";
	Иначе
		ЗначениеСтавкаНДС = ТекущаяПозиция.СтавкаНДС;
	КонецЕсли;
Иначе
	ЗначениеСтавкаНДС = "none";
КонецЕсли;

ЗаписьXML.ЗаписатьАтрибут("Tax", XMLСтрока(ЗначениеСтавкаНДС));

Если ТекущаяПозиция.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакСпособаРасчета) Тогда
	ПризнакСпособаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакСпособаРасчета(ТекущаяПозиция.ПризнакСпособаРасчета);
	ЗаписьXML.ЗаписатьАтрибут("SignMethodCalculation", XMLСтрока(ПризнакСпособаРасчета));
КонецЕсли;
Если ТекущаяПозиция.Свойство("ПризнакПредметаРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакПредметаРасчета) Тогда
	ПризнакПредметаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакаПредметаРасчета(ТекущаяПозиция.ПризнакПредметаРасчета);
	ЗаписьXML.ЗаписатьАтрибут("SignCalculationObject", XMLСтрока(ПризнакПредметаРасчета));
КонецЕсли;

Если ТекущаяПозиция.Свойство("СуммаНДС") И НЕ ПустаяСтрока(ТекущаяПозиция.СуммаНДС) Тогда
	ЗаписьXML.ЗаписатьАтрибут("TaxSum", XMLСтрока(ТекущаяПозиция.СуммаНДС));
КонецЕсли;

Если ТекущаяПозиция.Свойство("ПризнакАгентаПоПредметуРасчета") И НЕ ПустаяСтрока(ТекущаяПозиция.ПризнакАгентаПоПредметуРасчета) Тогда
	ПризнакАгентаПоПредметуРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакаАгента(ТекущаяПозиция.ПризнакАгентаПоПредметуРасчета);
	ЗаписьXML.ЗаписатьАтрибут("SignSubjectCalculationAgent", XMLСтрока(ПризнакАгентаПоПредметуРасчета));
КонецЕсли;

Если ТекущаяПозиция.Свойство("ЕдиницаИзмеренияПредметаРасчета") И ТекущаяПозиция.ЕдиницаИзмеренияПредметаРасчета <> Неопределено Тогда
	ЗаписьXML.ЗаписатьАтрибут("MeasurementUnit"   , XMLСтрока(ТекущаяПозиция.ЕдиницаИзмеренияПредметаРасчета));
КонецЕсли;

ЗаписатьДанныеАгента(ЗаписьXML, ТекущаяПозиция.ДанныеАгента);
ЗаписатьДанныеПоставщика(ЗаписьXML, ТекущаяПозиция.ДанныеПоставщика);
ЗаписатьДанныеКодаТоварнойНоменклатуры(ЗаписьXML, ТекущаяПозиция.ДанныеКодаТоварнойНоменклатуры);

ЗаписьXML.ЗаписатьКонецЭлемента();

//++
Если ТекущаяПозиция.Свойство("СуммаНДС") Тогда  													 
	ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");										 
	ЗаписьXML.ЗаписатьАтрибут("Text", "Сумма НДС: " + XMLСтрока(ТекущаяПозиция.СуммаНДС)); 										 
	ЗаписьXML.ЗаписатьКонецЭлемента(); 													 
КонецЕсли;
//--
...

Отмечу, что добавить вывод прямо в "FiscalString" у меня не получилось,  т.к. ККТ напрочь игнорирует необязательные поля в этой секции. 

Надеюсь, что кому-то пригодится. 

Вступайте в нашу телеграмм-группу Инфостарт

Доработка печати чека построчный вывод суммы НДС

См. также

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    11562    34    15    

41

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

5500 руб.

07.02.2023    12425    116    20    

71

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    7114    2    2    

6

Адаптация типовых решений 1С 8.3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Беларусь Россия Платные (руб)

Расширение "Дополнительные документы" предназначено для создания дополнительных документов различного назначения, как форм для внесения данных так и печатных форм в расширяемой конфигурации пользовательскими средствами, без работы в конфигураторе и внесения изменений в структуру данных. Тестировалось для "1С:БП", "1С:УНФ","1С:КА"

21859 руб.

29.12.2025    1006    1    8    

2

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9760 руб.

17.06.2025    3008    8    0    

8

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9150 руб.

02.08.2023    7816    25    5    

41

Адаптация типовых решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    1019    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. FloNes 16 01.11.18 08:26 Сейчас в теме
Стандартными средствами в настройках кассы (ККТ РР-02ф) вывести НДС в каждой строке не получилось. Воспользовался вашей допиской, все сработало. Спс

//++
Если ТекущаяПозиция.Свойство("СуммаНДС") Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");
ЗаписьXML.ЗаписатьАтрибут("Text", "Сумма НДС: " + XMLСтрока(ТекущаяПозиция.СуммаНДС));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
//--
2. triviumfan 101 01.11.18 09:23 Сейчас в теме
(1) Рад, что кому-то помогла статья)
3. FloNes 16 06.11.18 04:56 Сейчас в теме
Дело может быть не в ККТ, а в обработке обслуживания. На старых версия обработки обслуживания строка не выводиться, на новых все работает...
Прикрепленные файлы:
4. triviumfan 101 06.11.18 09:37 Сейчас в теме
(3) В моем случае дело не в обработке обслуживания. У меня при получении данных нету суммы ндс вовсе, мне пришлось запрос менять.
Для отправки сообщения требуется регистрация/авторизация