-
View Larger Image
КАК ИЗМЕНИТЬ МАКЕТ ЧЕКА?
Для печати нестандартного чека ККТ, а также дополнительной информации по чеку используются шаблоны чеков с типом шаблона «Чек ККТ»
Для редактирования или создания нового шаблона чека необходимо выполнить несколько шагов:
- Перейти на вкладку Администрирование, далее выбрать Печатные формы, отчеты и обработки — Шаблоны этикеток, ценников и чеков ККМ;
- Создать, выбрать в поле Объект тип документа, для которого предназначен шаблон, ввести наименование и записать вновь созданный элемент;
- Затем переходим к редактированию, нажав на кнопку Редактировать макет;
- В макет могут быть добавлены текстовые строки или строки с реквизитами объектов конфигурации из списка Доступные поля. В правой части экрана отобразится внешний вид распечатанного по данной форме документа, указанного в качестве образца;
- Пользователь может добавить несколько нефискальных документов с помощью кнопки Добавить нефискальный документ;
- Пользователь может также указать общие параметры печати документа: ширину чековой ленты в печатных символах;
- Помимо загрузки шаблонов, поставляемых с конфигурацией, пользователь может импортировать извне уже настроенный шаблон из внешнего файла или выгрузить в файл подготовленный новый шаблон с помощью команд меню Шаблон;
- При этом обязательные к передаче в ОФД поля содержатся в шаблоне по умолчанию и не редактируются.
Подключив принтер чеков к конфигурации Розница 2. Обнаружил, что шаблон Чека ККМ содержит, много лишней информации. Захотелось сразу изменить шаблоны чека под себя.
Погуглив САБЖ, обнаружил, что, оказывается в конфигурации есть инструмент изменения шаблона чека ККМ. Переходим в раздел Администрирование — Печатные формы, макеты и обработки — Шаблоны этикеток, ценников и чеков ККМ.
Там мы можем создать свой шаблон. Большой минус в том, что там нет возможности, изменить шапку и подвал чека. Да и в строках чека тоже выводится много лишней информации. Другого выхода как лезть, код тут увы не предвидится увы. Сказано сделано, отладчиком нашел место где формируется шаблон чека. Происходит, сие действие в общем модуле МенеджерОборудованияКлиентСервер.
Данный модуль содержит код, который формирует текст выводимый на чек. Так я подключал нефискальный принтер чеков, то нужный мне код находился в функции СформироватьТекстНефискальногоДокумента.
Первоначальный код модуля следующий.
Что делаем далее?
Переносим этот модуль в расширение конфигурации, и переопределяем эту функцию. Я просто закомментировал все лишнее, что не хочу видеть на чеке. Код в особых комментариях не нуждается. Просто выложу, тут может кому пригодится.
// Функция формирует текст нефискального документа по шаблону. // &Вместо("СформироватьТекстНефискальногоДокумента") Функция Расш1_СформироватьТекстНефискальногоДокумента(ТипДокумента, ОбщиеПараметры, ШиринаСтроки = 32, ДополнительныйТекст = Неопределено, ФорматФФД = "1.1") Экспорт ПозицииЧека = ?(ОбщиеПараметры.Свойство("ПозицииЧека"), ОбщиеПараметры.ПозицииЧека, Неопределено); ТаблицаОплат = ?(ОбщиеПараметры.Свойство("ТаблицаОплат"), ОбщиеПараметры.ТаблицаОплат, Неопределено); Если ТипДокумента = 0 Тогда ТипыЧеков = Новый Соответствие(); ТипыЧеков.Вставить(1, НСтр("ru='ПРИХОД'")); // Чек продажи ТипыЧеков.Вставить(2, НСтр("ru='ВОЗВРАТ ПРИХОДА'")); // Чек возврата продажи ТипыЧеков.Вставить(3, НСтр("ru='РАСХОД'")); // Чек покупки ТипыЧеков.Вставить(4, НСтр("ru='ВОЗВРАТ РАСХОДА'")); // Чек возврата покупки ТипЧека = ТипыЧеков.Получить(МенеджерОборудованияКлиентСервер.ПолучитьКодТипаРасчетаДенежнымиСредствами(ОбщиеПараметры.ТипРасчета)) ИначеЕсли ТипДокумента = 1 Тогда ТипЧека = НСтр("ru='ОТКРЫТИЕ СМЕНЫ'"); ИначеЕсли ТипДокумента = 2 Тогда ТипЧека = НСтр("ru='ВНЕСЕНИЕ'"); ИначеЕсли ТипДокумента = 3 Тогда ТипЧека = НСтр("ru='ВЫЕМКА'"); ИначеЕсли ТипДокумента = 4 Тогда ТипЧека = НСтр("ru='ОТЧЕТ БЕЗ ГАШЕНИЯ'"); ИначеЕсли ТипДокумента = 5 Тогда ТипЧека = НСтр("ru='ОТЧЕТ С ГАШЕНИЕМ'"); КонецЕсли; ПечатьКлише = Истина; Разделитель = ПостроитьПоле("", ШиринаСтроки, "=") + Символы.ПС; РазделительВнут = ПостроитьПоле("", ШиринаСтроки, "-") + Символы.ПС; Текст = Разделитель; Если ПечатьКлише Тогда // Сформировать шапку чека. Если ОбщиеПараметры.Свойство("ОрганизацияНазвание") И НЕ ПустаяСтрока(ОбщиеПараметры.ОрганизацияНазвание) Тогда Текст = Текст + ПостроитьПолеПереносом(ОбщиеПараметры.ОрганизацияНазвание, ШиринаСтроки, , Истина) + Символы.ПС; КонецЕсли; //Если ОбщиеПараметры.Свойство("АдресРасчетов") Тогда // АдресРасчетов = ОбщиеПараметры.АдресРасчетов; // Если НЕ ПустаяСтрока(АдресРасчетов) Тогда // Текст = Текст + ПостроитьПолеПереносом(АдресРасчетов, ШиринаСтроки, , Истина) + Символы.ПС; // Если ОбщиеПараметры.Свойство("МестоРасчетов") И НЕ ПустаяСтрока(ОбщиеПараметры.МестоРасчетов) Тогда // Текст = Текст + ПостроитьПолеПереносом(ОбщиеПараметры.МестоРасчетов, ШиринаСтроки, , Истина) + Символы.ПС; // КонецЕсли; // ИначеЕсли ОбщиеПараметры.Свойство("АдресМагазина") И НЕ ПустаяСтрока(ОбщиеПараметры.АдресМагазина) Тогда // Текст = Текст + ПостроитьПолеПереносом(ОбщиеПараметры.АдресМагазина, ШиринаСтроки) + Символы.ПС; // КонецЕсли; //КонецЕсли; // //Если ОбщиеПараметры.Свойство("ТекстШапки") И НЕ ПустаяСтрока(ОбщиеПараметры.ТекстШапки) Тогда // Текст = Текст + ВыстроитьПоля(ОбщиеПараметры.ТекстШапки, , ШиринаСтроки) + Символы.ПС; //КонецЕсли; Если ТипДокумента = 0 Тогда Текст = Текст + ВыстроитьПоля(НСтр("ru='КАССОВЫЙ ЧЕК'"), , ШиринаСтроки) + Символы.ПС; КонецЕсли; ОрганизацияИНН = ?(ОбщиеПараметры.Свойство("ОрганизацияИНН") И НЕ ПустаяСтрока(ОбщиеПараметры.ОрганизацияИНН), НСтр("ru='ИНН'") + Символы.НПП + ОбщиеПараметры.ОрганизацияИНН, ""); НомерЧека = ?(ОбщиеПараметры.Свойство("НомерЧека") И НЕ ПустаяСтрока(ОбщиеПараметры.НомерЧека), НСтр("ru='ЧЕК №'") + ОбщиеПараметры.НомерЧека, ""); Если Не ПустаяСтрока(ОрганизацияИНН) Тогда Текст = Текст + ВыстроитьПоля(ТипЧека, ОрганизацияИНН, ШиринаСтроки) + Символы.ПС; Иначе Текст = Текст + ПостроитьПоле(ТипЧека, ШиринаСтроки) + Символы.ПС; КонецЕсли; ДатаВремя = ?(ОбщиеПараметры.Свойство("ДатаВремя") И НЕ ПустаяСтрока(ОбщиеПараметры.ДатаВремя), ОбщиеПараметры.ДатаВремя, ТекущаяДата()); ДатаВремя = Формат(ДатаВремя, "ДФ=""дд.ММ.гггг ЧЧ:мм"""); Текст = Текст + ВыстроитьПоля(НомерЧека, ДатаВремя, ШиринаСтроки) + Символы.ПС; Текст = Текст + РазделительВнут; КонецЕсли; ФорматЧисла = "ЧРД=.;ЧЦ=12;ЧДЦ=2;ЧН=0.00;ЧГ=0"; СуммаЧека = 0; СуммаНДС0 = 0; СуммаНДС10 = 0; СуммаНДС18 = 0; СуммаНДС110 = 0; СуммаНДС118 = 0; СуммаБезНДС = 0; // Формируем строки чека. Если ПозицииЧека <> Неопределено Тогда Для ИндексМассива = 0 По ПозицииЧека.Количество() - 1 Цикл ПозицияЧека = ПозицииЧека[ИндексМассива]; Если ПозицияЧека.Свойство("ФискальнаяСтрока") Тогда Наименование = ?(ПозицияЧека.Свойство("Наименование"), ПозицияЧека.Наименование, ""); Количество = ?(ПозицияЧека.Свойство("Количество") , ПозицияЧека.Количество , 1); Цена = ?(ПозицияЧека.Свойство("Цена") , ПозицияЧека.Цена , 0); Сумма = ?(ПозицияЧека.Свойство("Сумма") , ПозицияЧека.Сумма , 0); НомерСекции = ?(ПозицияЧека.Свойство("НомерСекции") , ПозицияЧека.НомерСекции , 0); СтавкаНДС = ?(ПозицияЧека.Свойство("СтавкаНДС") , ПозицияЧека.СтавкаНДС , 0); СуммаСкидок = ?(ПозицияЧека.Свойство("СуммаСкидок") , ?(ПустаяСтрока(ПозицияЧека.СуммаСкидок), 0, ПозицияЧека.СуммаСкидок), 0); Если ПозицияЧека.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ПозицияЧека.ПризнакСпособаРасчета) И ФорматФФД = "1.0" Тогда Если НЕ ПозицияЧека.ПризнакСпособаРасчета = ПредопределенноеЗначение("Перечисление.ПризнакиСпособаРасчета.ПередачаСПолнойОплатой") Тогда // Не отображаем для полной оплаты. Наименование = МенеджерОборудованияКлиентСервер.ПолучитьПризнакСпособаРасчетаДляПечати(ПозицияЧека.ПризнакСпособаРасчета) + " " + Наименование; КонецЕсли; КонецЕсли; ТекстСтроки = ПостроитьПолеПереносом(Наименование, ШиринаСтроки) + Символы.ПС; ЦенаДляПечати = Окр(Сумма / Количество , 2); СтрокаТовара = Формат(Количество, "ЧРД=.;ЧЦ=12;ЧДЦ=3;ЧН=0.000;ЧГ=0") + " х " + Формат(ЦенаДляПечати, ФорматЧисла) + " =" + Формат(Сумма, ФорматЧисла); ТекстСтроки = ТекстСтроки + ВыстроитьПоля( , СтрокаТовара, ШиринаСтроки) + Символы.ПС; Если СуммаСкидок > 0 Тогда ТекстСкидки = НСтр("ru='СКИДКА'") + "=" + Формат(СуммаСкидок, ФорматЧисла); ИначеЕсли СуммаСкидок < 0 Тогда ТекстСкидки = НСтр("ru='НАДБАВКА'") + "=" + Формат(СуммаСкидок, ФорматЧисла); Иначе ТекстСкидки = ""; КонецЕсли; ТекстНалога = ""; //Если ПозицияЧека.Свойство("СтавкаНДС") Тогда // Если ПозицияЧека.СтавкаНДС = 10 Тогда // СуммаНДС10 = СуммаНДС10 + Сумма; // ТекстНалога = НСтр("ru='НДС 10%'"); // ИначеЕсли ПозицияЧека.СтавкаНДС = 18 Тогда // СуммаНДС18 = СуммаНДС18 + Сумма; // ТекстНалога = НСтр("ru='НДС 18%'"); // ИначеЕсли ПозицияЧека.СтавкаНДС = 0 Тогда // СуммаНДС0 = СуммаНДС0 + Сумма; // ТекстНалога = НСтр("ru='НДС 0%'"); // ИначеЕсли ПозицияЧека.СтавкаНДС = 110 Тогда // СуммаНДС110 = СуммаНДС110 + Сумма; // ТекстНалога = НСтр("ru='НДС 10/110%'"); // ИначеЕсли ПозицияЧека.СтавкаНДС = 118 Тогда // СуммаНДС118 = СуммаНДС118 + Сумма; // ТекстНалога = НСтр("ru='НДС 18/118%'"); // Иначе // СуммаБезНДС = СуммаБезНДС + Сумма; // ТекстНалога = НСтр("ru='БЕЗ НДС'"); // КонецЕсли; //КонецЕсли; Если ПустаяСтрока(ТекстСкидки) Тогда ТекстСтроки = ТекстСтроки + ПостроитьПоле(" " + ТекстНалога, ШиринаСтроки) + Символы.ПС; Иначе ТекстСтроки = ТекстСтроки + ВыстроитьПоля(" " + ТекстНалога, ТекстСкидки, ШиринаСтроки) + Символы.ПС; КонецЕсли; Текст = Текст + ТекстСтроки; //Если ПозицияЧека.Свойство("ПризнакПредметаРасчета") И НЕ ПустаяСтрока(ПозицияЧека.ПризнакПредметаРасчета) И ФорматФФД = "1.1" Тогда // ПризнакПредметаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакаПредметаРасчета(ПозицияЧека.ПризнакПредметаРасчета); // ПризнакПредметаРасчетаНаименование = МенеджерОборудованияКлиентСервер.ПолучитьНаименованиеПризнакаПредметаРасчета(ПризнакПредметаРасчета); // Текст = Текст + ПостроитьПоле(" " + ПризнакПредметаРасчетаНаименование, ШиринаСтроки) + Символы.ПС; //КонецЕсли; // //Если ПозицияЧека.Свойство("ПризнакСпособаРасчета") И НЕ ПустаяСтрока(ПозицияЧека.ПризнакСпособаРасчета) И ФорматФФД <> "1.0" Тогда // ПризнакСпособаРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодПризнакСпособаРасчета(ПозицияЧека.ПризнакСпособаРасчета); // ПризнакСпособаРасчетаНаименование = МенеджерОборудованияКлиентСервер.ПолучитьНаименованиеПризнакаСпособаРасчета(ПризнакСпособаРасчета); // Текст = Текст + ПостроитьПоле(" " + ПризнакСпособаРасчетаНаименование, ШиринаСтроки) + Символы.ПС; //КонецЕсли; // СуммаЧека = СуммаЧека + Сумма; ИначеЕсли ПозицияЧека.Свойство("ТекстоваяСтрока") Тогда ТекстСтроки = ?(ПозицияЧека.Свойство("Текст"), ПозицияЧека.Текст, ""); Текст = Текст + ТекстСтроки + Символы.ПС; ИначеЕсли ПозицияЧека.Свойство("ШтрихКод") Тогда СтрокаШтрихкода = "|ШтрихКод|" + ПозицияЧека.ТипШтрихкода + "|" + ПозицияЧека.ШтрихКод; Текст = Текст + СтрокаШтрихкода + Символы.ПС; КонецЕсли; КонецЦикла; КонецЕсли; // Формируем подвал чека Если ТаблицаОплат <> Неопределено Тогда СуммаНаличными = 0; СуммаЭлектронными = 0; СуммаПостоплатой = 0; СуммаПредоплатой = 0; СуммаПредоставлением = 0; Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл Если ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.Электронно") Тогда СуммаЭлектронными = СуммаЭлектронными + ТаблицаОплат[ИндексОплаты].Сумма; ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.Предоплата") Тогда СуммаПредоплатой = СуммаПредоплатой + ТаблицаОплат[ИндексОплаты].Сумма; ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.Постоплата") Тогда СуммаПостоплатой = СуммаПостоплатой + ТаблицаОплат[ИндексОплаты].Сумма; ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = ПредопределенноеЗначение("Перечисление.ТипыОплатыККТ.ВстречноеПредоставление") Тогда СуммаПредоставлением = СуммаПредоставлением + ТаблицаОплат[ИндексОплаты].Сумма; Иначе СуммаНаличными = СуммаНаличными + ТаблицаОплат[ИндексОплаты].Сумма; КонецЕсли; КонецЦикла; СуммаОплаты = СуммаНаличными + СуммаЭлектронными + СуммаПостоплатой + СуммаПредоплатой + СуммаПредоставлением; Текст = Текст + РазделительВнут; Текст = Текст + ВыстроитьПоля(НСтр("ru='ИТОГ'"), "=" + Формат(СуммаЧека, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //Текст = Текст + РазделительВнут; // //Текст = Текст + НСтр("ru='ОПЛАТА'") + Символы.ПС; // //Если ФорматФФД = "1.0" Тогда // ФФД 1.0 // Если СуммаНаличными > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='НАЛИЧНЫМИ'"), "=" + Формат(СуммаНаличными, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаЭлектронными > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ЭЛЕКТРОННЫМИ'"), "=" + Формат(СуммаЭлектронными, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаПостоплатой > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ЭЛЕКТРОННЫМИ'"), "=" + Формат(СуммаПостоплатой, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаПредоплатой > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ЭЛЕКТРОННЫМИ'"), "=" + Формат(СуммаПредоплатой, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаПредоставлением > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ЭЛЕКТРОННЫМИ'"), "=" + Формат(СуммаПредоставлением, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; //Иначе // ФФД 1.0.5 & ФФД 1.1 // Если СуммаНаличными > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='НАЛИЧНЫМИ'"), "=" + Формат(СуммаНаличными, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаЭлектронными > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ЭЛЕКТРОННЫМИ'"), "=" + Формат(СуммаЭлектронными, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаПостоплатой > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ПОСТОПЛАТОЙ'"), "=" + Формат(СуммаПостоплатой, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаПредоплатой > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ЗАЧЕТ АВАНСА'"), "=" + Формат(СуммаПредоплатой, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; // Если СуммаПредоставлением > 0 Тогда // Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='ВСТР.ПРЕДОСТ.'"), "=" + Формат(СуммаПредоставлением, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // КонецЕсли; //КонецЕсли; // //Текст = Текст + ВыстроитьПоля(НСтр("ru='ПОЛУЧЕНО'"), "=" + Формат(СуммаОплаты, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //Текст = Текст + ВыстроитьПоля(" " + НСтр("ru='СДАЧА'"), "=" + Формат(СуммаОплаты - СуммаЧека, ФорматЧисла), ШиринаСтроки) + Символы.ПС; // //Если ОбщиеПараметры.Свойство("СистемаНалогообложения") Тогда // СистемаНалогообложенияКод = МенеджерОборудованияКлиентСервер.ПолучитьКодТипаСистемыНалогообложенияККТ(ОбщиеПараметры.СистемаНалогообложения); // СистемаНалогообложения = МенеджерОборудованияКлиентСервер.ПолучитьНаименованиеСистемыНалогообложения(СистемаНалогообложенияКод, Истина); // Текст = Текст + ВыстроитьПоля(НСтр("ru='СНО:'"), СистемаНалогообложения, ШиринаСтроки) + Символы.ПС; //КонецЕсли; // //Если СуммаБезНДС > 0 Тогда // Текст = Текст + ВыстроитьПоля(НСтр("ru=' СУММА БЕЗ НДС'"), "=" + Формат(СуммаБезНДС, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //КонецЕсли; //Если СуммаНДС0 > 0 Тогда // Текст = Текст + ВыстроитьПоля(НСтр("ru=' СУММА C НДС 0%'") , "=" + Формат(СуммаНДС0, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //КонецЕсли; //Если СуммаНДС10 > 0 Тогда // Текст = Текст + ВыстроитьПоля(НСтр("ru=' СУММА НДС 10%'"), "=" + Формат(СуммаНДС10 / 110 * 10, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //КонецЕсли; //Если СуммаНДС18 > 0 Тогда // Текст = Текст + ВыстроитьПоля(НСтр("ru=' СУММА НДС 18%'"), "=" + Формат(СуммаНДС18 / 118 * 18, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //КонецЕсли; //Если СуммаНДС110 > 0 Тогда // Текст = Текст + ВыстроитьПоля(НСтр("ru=' СУММА НДС 10/110%'"), "=" + Формат(СуммаНДС110 / 110 * 10, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //КонецЕсли; //Если СуммаНДС118 > 0 Тогда // Текст = Текст + ВыстроитьПоля(НСтр("ru=' СУММА НДС 18/118%'"), "=" + Формат(СуммаНДС118 / 118 * 18, ФорматЧисла), ШиринаСтроки) + Символы.ПС; //КонецЕсли; // Кассир = ?(ОбщиеПараметры.Свойство("Кассир"), ОбщиеПараметры.Кассир, ""); Текст = Текст + ПостроитьПоле(НСтр("ru='КАССИР'") + ":" + Символы.НПП + Кассир, ШиринаСтроки) + Символы.ПС + Символы.ПС; //Текст = Текст + ПостроитьПоле(НСтр("ru='ПОДПИСЬ'") + ":", ШиринаСтроки, "_") + Символы.ПС; Если ОбщиеПараметры.Свойство("ТекстПодвала") И НЕ ПустаяСтрока(ОбщиеПараметры.ТекстПодвала) Тогда Текст = Текст + ВыстроитьПоля(ОбщиеПараметры.ТекстПодвала, , ШиринаСтроки) + Символы.ПС; КонецЕсли; КонецЕсли; Если НЕ ПустаяСтрока(ДополнительныйТекст) Тогда Текст = Текст + ДополнительныйТекст + Символы.ПС; КонецЕсли; Текст = Текст + Разделитель + Символы.ПС; Возврат Текст; КонецФункции
Современная онлайн-касса обеспечивает возможность работы с шаблонами чеков ККТ. С помощью настройки шаблона чека ККТ можно уменьшить шрифт в чеке и сократить его размер, тем самым обеспечив:
- меньший расход чековой ленты;
- увеличенный ресурс работы печатающего механизма ККТ.
Образцы стандартного и измененного шаблона чека ККТ:
См. также:
- Требования ФНС к наименованию в чеке
- Полное наименование товара в чеке с 01.02.2021
- Справочник Номенклатура
- [01.06.2021 запись] Работа с онлайн-кассой в 2021 году: завершение реформы ККТ и новые штрафы. Практика в 1С
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Оцените публикацию
Загрузка…
karpik666 02.10.2017 at 09:39
Спасибо, стоит уточнить, что ваши примеры в основном для управляемых форм, для обычных подойдет «Второй способ», либо использовать как у меня в публикации https://infostart.ru/public/590993/
Reply ↓
Serj1C 03.10.2017 at 08:38
Я думал тут будет не про фискальную информацию, а как раз про внешний вид фискальных строк.
На сколько я изучал документацию (актуальную на момент внедрения онлайн касс), пользователю было доступно 11 предопроеделенных шаблонов:
https://onedrive.live.com/view.aspx?cid=189c614ed00d4c23&id=documents&resid=189C614ED00D4C23%21128&app=OneNote&authkey=!ABE4IM6eOvPtlrQ&&wd=target%28%2F%2F54-ФЗ.one%7C27377c95-2928-4aa8-8fd7-4b03b801c6ef%2FШаблоны%20чеков%7C10d2aaad-6f33-4074-afb1-e031d581edd4%2F%29
Но, конечно, этого не достаточно. Хотя время идет, может уже больше возможностей. В пятерочке, например, уже научились QR код приживать влево, а справа от него печатать обязательную информацию.
PS: Программно можно менять шаблон так:
Объект.Таблица = 2; Объект.Ряд = 1; Объект.Поле = 111; Объект.ТипПоля = 0; Объект.Строка = 7; // шаблон №7 Объект.УстановитьНастройки();
Reply ↓
tjurikov_ivan 03.10.2017 at 09:26
(2)с помощью редактора шаблонов от атола можно настроить и фискальную часть чека, пол поводу программного изменения я ещё не пробовал, спасибо попробую)
Reply ↓
arcadics 17.04.2018 at 15:52
СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека(«Мой текст», «Центр», Ложь);
Как установить ширину строки для «СтрокаЧека»?
Строки печатаются с шириной меньшей чем лента.
Reply ↓
arcadics 18.04.2018 at 06:57
(4) Вопрос решил.
В обработке обслуживания добавил:
мПараметрыПодключения.Вставить(«ШиринаСтроки», 48);
Функция ФискализироватьЧек(Объект, ПараметрыЧека) Экспорт ПолучитьПараметрыККТ(Объект); мПараметрыПодключения.Вставить(«ПараметрыРегистрации», Объект.ВыходныеПараметры); мПараметрыПодключения.Вставить(«ШиринаСтроки», 48); ………………………………..
Reply ↓
tjurikov_ivan 18.04.2018 at 11:41
(5)На всякий случай, не знаю какая у вас конфигурация, он должен брать ширину чека из настроек ФР, может так будет проще.
Reply ↓
makaorel 09.06.2018 at 14:42
Добрый день, В Розница 2.2.8 в шаблоне ККТ при печати блок фискальных данных выводится на печать два раза- в шапке и подвале чека. Удалить его не получается.Кто -нибудь решал данную проблему?
Reply ↓
tjurikov_ivan 11.06.2018 at 13:17
(7)В кассе по умолчанию есть два шаблона, попробуйте использовать второй, может в первом ошибка. А так похоже на косяк прошивки, у меня подобных случаев еще не было.
Reply ↓
makaorel 13.06.2018 at 08:40
Dimka74 23.06.2018 at 12:37
Слушайте, а кто нибудь знает как вывести данные в Пользовательский тег, добавленный на шаблон Чека?
В программе Редактор шаблонов от Атола добавил в макет Польз. тег Т21: своб стр 1, а вот как в него из 1с вывести данные не могу понять. Я так понимаю нужно указать Атрибут при сеарилизации чека, но вот как он называется для пользовательского тега?
Reply ↓
svk777 07.07.2018 at 14:25
Можно ли в Чеке вместо Наименования товара выводить НаименованиеПолное? Спасибо.
Reply ↓
tjurikov_ivan 08.07.2018 at 20:52
(11) Если у вас Розница 2.2 то вы можете посмотреть это в шаблонах чека ккм, если не то скорее всего только доработкой 1С
Reply ↓
svk777 09.07.2018 at 10:20
в шаблоне то изменить Наименования товара на НаименованиеПолное можно, но при печати чека это изменение игнорируется.
Reply ↓
tjurikov_ivan 09.07.2018 at 20:08
(13)Можете тогда написать расширение к конфигурации, нужная вам строка находится
Модуль менеджера ЧекККМ — процедура ДополнитьТоварамиПараметрыПриПробитииЧека
Если вы ее добвите в расширение с признаком «Вместо» и поменяете строчку
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), » (» + Строка(СтрокаТЧ.Характеристика) + «)», «»);
На
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура.НаименованиеПолное) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), » (» + Строка(СтрокаТЧ.Характеристика) + «)», «»);
то должно сработать.
Reply ↓
svk777 11.07.2018 at 20:44
(14) Большое спасибо за подсказку, на эмуляторе работает. Скоро попробуем на реальной ККТ.
Reply ↓
user689645_gb 02.08.2018 at 13:44
(14) Добрый день. Подскажите, пожалуйста, как доработать фискальный чек в УТ 11.4, чтобы выводились скидки на печать и должность кассира?
Reply ↓
tjurikov_ivan 03.08.2018 at 17:27
(16)На самом деле вывод скидки на сколько я понял зависит от прошивки и шаблона ККТ, но если она сама не выводит скидку и не хочется трогать кассу, то можно немного доработать в ут.
смотрел на редакции 11.4.5.63, но думаю они почти ничем не отличаются.
В Документе чекККМ есть форма «ФормаДокументаРМК», там есть функция «ПараметрыОперацииФискализацииЧека» в ней идет формирование параметров для последующей передачи ККТ
нас интересует цикл по товарам
Для Каждого СтрокаТЧ Из Данные Цикл
перед завершением цикла вы можете добавить текстовые необходимые строки
СуммаСкидки = СтрокаТЧ.СуммаРучнойСкидки+СтрокаТЧ.СуммаАвтоматическоСкидки; Если ЗначениеЗаполнено(СуммаСкидки) Тогда МояСтрокаПослеТовара = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека(); МояСтрокаПослеТовара.Текст = «Скидка: «+Строка(СуммаСкидки); МояСтрокаПослеТовара.ПереносСтроки = Ложь; МояСтрокаПослеТовара.Выравнивание = «Лево»; ПараметрыОперацииФискализацииЧека.ПозицииЧека.Добавить(МояСтрокаПослеТовара); КонецЕсли;
По поводу должности в этой функции так же есть строка
ПараметрыОперацииФискализацииЧека.Кассир = РеквизитыКассира.Наименование;
Думаю что добавить должность получится только в этой строке. и на чеке будет типо:
«Кассир: ст.кассир Иванов И.И.»
либо так же текстовой строкой но до товаров или после.
Reply ↓
user689645_gb 04.08.2018 at 16:21
(17)
Думаю что добавить должность получится только в этой строке. и на чеке будет типо:
«Кассир: ст.кассир Иванов И.И.»
либо так же текстовой строкой но до товаров или после.
Огромное спасибо за ответ!
По поводу должности, у нас разные должности у тех, кто работает на кассе, это может быть и продавец и кассир и бухгалтер в разные дни. Вот как сделать , чтобы должность тоже бралась из ответственного физ.лица?
Reply ↓
tjurikov_ivan 05.08.2018 at 13:46
Shaldryn 07.08.2018 at 15:49
Добрый день! База УНФ
У нас в чеке есть строчка «Получено», необходимо поменять наименование этого поля. Подскажите как это сделать?
В редакторе шаблонов, поле нашел, но не понял как менять наименование этого поля, в инструкции описано только как добавлять или перемещать…
Reply ↓
tjurikov_ivan 08.08.2018 at 10:10
(20) не совсем понял где это поле, можете прислать фото чека?
Reply ↓
Shaldryn 08.08.2018 at 10:32
tjurikov_ivan 08.08.2018 at 11:21
(22)Это стандартное поле, проверил на пару других чеках у всех так выводит.
Думаю если его и можно поменять, то только в редакторе шаблонов от Атол. (если у вас касса Атол). сейчас у меня нет возможности посмотреть шаблон
Reply ↓
Shaldryn 08.08.2018 at 12:03
(23) да, Атол 30Ф, в редакторе шаблонов это поле нашел, но не понял как можно изменить его…
Нашел статью, это формат чека ФФД 1.05, «Здесь указывается полная сумма, хотя получили мы ее лишь частично. (Выручка «получено» суммирует денежный поток и обязательства)» и это ее недочет.
Reply ↓
tjurikov_ivan 08.08.2018 at 14:29
(24)Касса не даст пробить чек если общая сумма оплат меньше суммы Итого по чеку. поэтому он пишет «кредит» т.е. что остальная оплата будет внесена позже.
Reply ↓
Shaldryn 08.08.2018 at 15:29
(25) Я согласен с вами, но я не про «кредит» говорю, а про «Получено»
вот статья https://buh.ru/articles/documents/61310/
в ФФД 1.0+ этот недочет исправлен по полю «Получено», все описано в статье.
Просто мне хотелось наименование поля «Получено» поменять на например как «Общая сумма оплат»
Reply ↓
Shaldryn 09.08.2018 at 12:05
(25) В общем получил ответ от тех.поддержки АТОЛ
«Счётчик «ПОЛУЧЕНО» — не завязан ни на один из фискальных тегов.Счетчик наш, внутренний.
Данные, которые возвращает данный счетчик законодательно не регламентируются.
Работает таким образом для получения визуализации всех фискальных сумм в чеке по всем типам оплат.
На настоящее время изменений логики работы данного счетчика не планируется.»
Reply ↓
tjurikov_ivan 09.08.2018 at 14:12
(27)Спасибо, что вернулись с ответом!
Reply ↓
user689645_gb 13.08.2018 at 17:52
(19)
а где в программе вы храните должности физ. лиц?
Спасибо большое за ответ! В программе должности для физ. лица не предусмотрены. А если создать доп. реквизит к физ лицу «должность». Получится ее вывести в чек?
Reply ↓
tjurikov_ivan 13.08.2018 at 19:23
(29)Ну, да. хоть в поле комментарий пишите (если оно там есть), но достать будет чуть сложнее.
Если прям вообще простой вариант то:
ФизЛицо = КакоеТоФизЛицо(); ДолжностьФизЛица = «»; Для каждого Строка Из ФизЛицо.ДополнительныеРеквизиты Цикл Если Строка(Строка.Свойство) = «Должность» Тогда ДолжностьФизЛица = Строка.Значение; КонецЕсли; КонецЦикла;
Показать
Reply ↓
user689645_gb 13.08.2018 at 21:20
(30) огромное спасибо Вам! Буду пробовать!
Reply ↓
1cprogr_nsk 22.08.2018 at 11:02
Добрый день. Подскажите как добавить «Дополнительный реквизит» номенклатуры, например у нас есть «Пол»? В СКД я добавил временную таблицу с соединением по ссылке номенклатуры
ВЫБРАТЬ Товары.Номенклатура КАК Номенклатура, Товары.Характеристика КАК Характеристика, ВЫБОР КОГДА НоменклатураДополнительныеРеквизиты.Свойство = &свПол ТОГДА НоменклатураДополнительныеРеквизиты.Значение КОНЕЦ КАК Пол ПОМЕСТИТЬ РеквизитыНоменклатуры ИЗ Документ.ЧекККМ.Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты ПО Товары.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка ;
Показать
в таблице «Товары» добавил поле » РеквизитыНоменклатуры.Пол»
соответственно в выбираемых полях есть, а в шаблоне пустое выводится.
П.С. Параметр &свПол задал прямо в СКД в настройках или его программно нужно где-то задать?
Reply ↓
alexandr_astafiev 02.10.2018 at 14:35
Статья очень хорошая, только есть проблема для Розницы 2.2: программа отказывается видеть шаблон чека для ККТ. Оборудование завел, в кассу ККМ прописал и оборудование Атолл-22 и шаблон чека для ККТ. И тем не менее при печати чека шаблон игнорируется. Почитал на форумах: пишут что для ККТ с передачей данных в ОФД (54-ФЗ) шаблоны отключены. Может все таки есть идеи как подключить шаблоны для чеков ККТ.
Reply ↓
kasperiks 18.01.2019 at 09:32
Здравствуйте, столкнулись с такой проблемой. На официальном сайте АТОЛ не можем найти утилиту для редактирования шаблонов чеков. Выложите пожалуйста ссылку для скачивания утилиты редактирования шаблона чека.
Reply ↓
tjurikov_ivan 18.01.2019 at 09:56
kasperiks 21.01.2019 at 10:26
(35) Спасибо, большое. Уже нашли.
Reply ↓
Daniel500 17.06.2019 at 12:47
Добрый день.
Подскажите, пожалуйста, как изменить шрифт, размер строки в чеке:
СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека(«Мой текст», «Центр», Ложь); ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);
Где меняются параметры шрифта для данной строки?
Спасибо!
Reply ↓
tjurikov_ivan 17.06.2019 at 12:56
(37) точно не помню, но скорее всего шрифт задается не в конфигураторе для конкретной строки, а редакторе шаблонов чека.
Reply ↓
Daniel500 09.10.2019 at 19:57
(38) Спасибо, именно там.
Reply ↓
KostyaLavr 21.11.2019 at 15:33
(39) Не подскажете, как именно называется это поле в редакторе шаблона, в которое нефискальная строка выводится?
Reply ↓
tjurikov_ivan 22.11.2019 at 09:39
(40)нефискальная строка это вы имеете ввиду клише? типо «Добро пожаловать».
Если да то думаю это можно настроить просто в драйвере принтера если полазить по свойствам кассы
Reply ↓
kanz@list.ru 29.11.2019 at 18:06
(33) Аналогичная проблема, удалось ли найти решение?
Статья очень хорошая, только есть проблема для Розницы 2.2: программа отказывается видеть шаблон чека для ККТ. Оборудование завел, в кассу ККМ прописал и оборудование Атолл-22 и шаблон чека для ККТ. И тем не менее при печати чека шаблон игнорируется. Почитал на форумах: пишут что для ККТ с передачей данных в ОФД (54-ФЗ) шаблоны отключены. Может все таки есть идеи как подключить шаблоны для чеков ККТ.
Reply ↓
Daniel500 03.12.2019 at 09:09
(40) Извиняюсь за дезинформацию. Шрифт фискальной строки менял.
А как доп. нефискальной строки поменять не разобрался еще.
Reply ↓
Изменение макета чека в Рознице |
Я |
09.10.20 – 09:43
Подскажите пожалуйста, по началу решения данной задачи. Никогда с этим не сталкивался.
Предоставлены снимки, изображения 2х чеков. Который печатается сейчас и который нужно сделать, что бы был.
Конфигурация Розница, редакция 2.3 (2.3.1.47) .
Со слов постановщика, чек печатается в розничной продаже.
(Администрирование – Печатные формы, отчеты и обработки – Шаблоны этикеток, ценников и чеков ККМ). По этому пути я не нашел никакого подобного макета.
Как начать решать данную задачу ? Подскажите пожалуйста. Мне нужно увидеть макет в конфигурации, который начать изменять. приводить к требуемому виду. Где мне его найти?
1 – 09.10.20 – 09:57
Никто не занимался изменением, доработкой чеков в рознице ?
2 – 09.10.20 – 10:13
Up
3 – 09.10.20 – 10:15
Какой хоть чек менять то хочешь ?
Который на фискальнике выводится ?
4 – 09.10.20 – 10:28
(0) (Администрирование – Печатные формы, отчеты и обработки – Шаблоны этикеток, ценников и чеков ККМ).
У меня по данному пути уже есть шаблоны чеков ККТ. И там я и меняю если нужно.
Попробуй там создать новый, с типом “Чек ККТ”. А дальше уже посмотришь, будет там какое-то стандартное наполнение или придётся всё с нуля рисовать.
5 – 09.10.20 – 11:38
(3) Да, похоже называется ЧекККМ, только вот не вижу его в настройках (0)
И как это делается что бы менять и проверять тоже пока не пойму. Найти бы аналог того что сейчас печатается что бы понять что менять буду его.
6 – 09.10.20 – 11:39
(4) Да так можно делать. И справа показывается как это будет выглядеть. Но как на самом деле не понятно.
И если на данный момент нет ЧекККМ там шаблона, то как пользователь может его печатать?
7 – 09.10.20 – 12:15
http://joxi.ru/L21g3j4c0G8qOr
вот сделал входные данные, для меня новое это все, слева то что есть сейчас
справа, то что нужно сделать
я вот не пойму, где мне сейчас увидеть в конфигурации, этот макет что слева???? что бы начать как то его изменять?
8 – 09.10.20 – 12:48
(4) Говорят печатается сам чек из драйвера, без макета.
Я что то сделаю с макетом, а как понять что он будет идти на печать, если печать чека сейчас идет без макета из драйвера?
9 – 09.10.20 – 12:50
(8) нужно в кассе ККМ выбрать этот макет новый.
НСИ -> Кассы ККМ -> Открыть кассу и там: Шаблон чека ККМ. Там нужно выбрать твой шаблон чека ККТ
10 – 09.10.20 – 14:52
(7) инн тоже надо красить
11 – 09.10.20 – 14:56
если че, можно всё это сделать с помощью утилиты дров от твоего ккт
12 – 09.10.20 – 16:03
(11) Как лучше делать?
Я доступа то не имею к ККМ.
Я могу только в 1с делать.
13 – 09.10.20 – 16:04
(11) Если делать с помощью 1с, это будет нормально ?
14 – 12.10.20 – 13:05
Какими инструкциями получать данные документа????
(Администрирование – Печатные формы, отчеты и обработки – Шаблоны этикеток, ценников и чеков ККМ)
тут есть некоторые примеры но все равно. Как понять что в шапке не меняется, а что меняется ?
15 – 12.10.20 – 13:09
Как понять какие значения нужны для этого чека. Можете подсказать?
Из того что можно реализовать в (14)
http://joxi.ru/E2p7MkXHGOeaXm
16 – 12.10.20 – 13:10
Касса/фискальник какая хоть?
17 – 12.10.20 – 13:17
(16) Чек ККТ
18 – 12.10.20 – 13:20
(17) модель какая? Атол/штрих/ еще какое изделие?
19 – 12.10.20 – 13:23
(18) Штрих-м Элвес ФР
20 – 12.10.20 – 13:25
Там при создании формы редактирования шаблона чека ККТ есть функции импортировать настройки шаблона, нет ли каких то примеров ?
ведь все делается под документ типовой ЧекККМ. Пытаюсь как то сдвинуться с места в решении.
21 – 12.10.20 – 13:27
(19) ну вот и меняй шаблон чека через утилиту самого штриха
22 – 12.10.20 – 13:29
(21) Где я к ней доступ получу?????
23 – 12.10.20 – 13:30
(21) Почему через утилиту, если есть возможность это делать в конфигурации Розница ???? 2.3.1.47.
Я к утилите как и к самой кассе не имею доступа !!!
24 – 12.10.20 – 13:41
Кто выполнял подобные задачи в 1с, поделитесь пожалуйста информацией.
25 – 12.10.20 – 14:45
(23) какой наивный
26 – 12.10.20 – 14:46
Не имеешь доступа, вызывай ккм-щика, пусть приедет и настроит шаблон чека
27 – 12.10.20 – 14:50
(26) По какой причине не сделать это через 1с ?
28 – 12.10.20 – 15:00
(27) потому, что там этого нет
29 – 12.10.20 – 15:16
(28) Но а по этому пути, есть настройка шаблоном же ?
Администрирование – Печатные формы, отчеты и обработки – Шаблоны этикеток, ценников и чеков ККМ
30 – 12.10.20 – 15:21
31 – 12.10.20 – 15:39
(30) ну дык почитай по ссылке, что там предлагается вводить..нефискальные данные. И никакого отношение это к шаблону чека в самой ккт не имеет.
32 – 12.10.20 – 15:40
Ни шрифт задать, ни высоту, ни выравнивание, ни количество межстрочного интервала, ни…короче, ничего, что можно сделать в шаблоне чека в драйвере ккт.
33 – 12.10.20 – 15:41
Ни задание полей
34 – 12.10.20 – 15:55
(29) почему у тебя нет доступа к утилите? Поставь себе программу Anydesk, или timeviewer, будет доступ и к утилите и к кассе. Чего-то ты тут гонишь.
35 – 13.10.20 – 01:17
(34) Там установлена программа Штрих-М
Драйвер ФР 4.15
Штрих принт
Но я никогда не пользовался такими программа и не знаю как их использовать.
36 – 13.10.20 – 03:49
(35) ну так надо найти того, кто знает. Если тебе лень разбираться.
37 – 13.10.20 – 03:51
(36) Ну так найдется наверное.
Пока я должен это решать.
Не понимаю от чего оттолкнуться, вот и узнаю. Вообще делать собирался на 1с.
Там и предварительный просмотр есть.
Почему это не подойдет, сказали. Не пойму. В то время как мне сказали делать именно там.
В штрих принт, или Драйвер ФР 4.15, так же нет макета существующего чека?
38 – 13.10.20 – 03:56
(34) Об этом вы говорите? тут нужно делать?
Ну и какие гарантии что я ни разу не видев, это что то смогу тут сделать?
NIGHTHUNTER
39 – 13.10.20 – 03:56