Розница 2.1.9.20 и Принтер чеков Posiflex PP6800
Здравствуйте, на кассе стоит Розница 2.1.9.20, подключил к нему Принтер чеков Posiflex PP6800, все работает, чеки печатает, но вот незадача, он кроме макета Чека ККМ печатает еще одну шапку, типа "ООО МОЯ ОРГАНИЗАЦИЯ", "ДОБРО ПОЖАЛОВАТЬ" и т.д. и подвал, в котором много ненужного. Подскажите, где и как можно настроить, что бы принтер печатал только шаблон.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(19) spacecraft, По поводу обычного ФР я знаю, что там настраивается все по другому. Я просто сейчас экспериментирую с Эмулятором ФР, что бы не подключать на левую базу Принтер чеков. Так можно, ил необходимо подключать сам принтер чеков и экспериментировать с ним?
(20) Joker2705, можно и не подключать принтер чеков. Будет так же (или похоже. в размерах шрифтов может быть разница).
Смотрите процедуру ПробитьЧекВыполнить
вот кусок кода:
Смотрите процедуру ПробитьЧекВыполнить
вот кусок кода:
...
Если ИдентификаторУстройстваФР <> Неопределено Тогда
...
ОбщиеПараметры = Новый Массив();
ОбщиеПараметры.Добавить(ТипЧека); // 1 - Тип чека (0-продажа, 1-возврат)
ОбщиеПараметры.Добавить(Истина); // 2 - Признак фискального чека
ОбщиеПараметры.Добавить(Неопределено); // 3 - Печать копии чека
ОбщиеПараметры.Добавить(Объект.СуммаДокумента); // 4 - Сумма по чеку без скидок/наценок
ОбщиеПараметры.Добавить(Объект.СуммаДокумента); // 5 - Сумма по чеку с учетом всех скидок/наценок
ОбщиеПараметры.Добавить(""); // 6 - Номер дисконтной карты
ОбщиеПараметры.Добавить(НСтр("ru = 'ДОБРО ПОЖАЛОВАТЬ'")); // 7 - Текст шапки (Для чека ЕНВД)
ОбщиеПараметры.Добавить(НСтр("ru = 'СПАСИБО ЗА ПОКУПКУ'")); // 8 - Текст подвала (Для чека ЕНВД)
ОбщиеПараметры.Добавить(0); // 9 - Номер смены
ОбщиеПараметры.Добавить(Объект.Номер); // 10 - Номер чека (Для чека ЕНВД)
ОбщиеПараметры.Добавить(Неопределено); // 11 - Номер кассы (Для чека ЕНВД)
ОбщиеПараметры.Добавить(Объект.Дата); // 12 - Дата и время документа
ОбщиеПараметры.Добавить(Объект.Продавец); // 13 - Кассир (Для чека ЕНВД)
ОбщиеПараметры.Добавить(СведенияООрганизации.НаименованиеПолноеПоУчредительнымДокументам); // 14 - Название организации (Для чека ЕНВД)
ОбщиеПараметры.Добавить(СведенияООрганизации.ИНН); // 15 - ИНН организации (Для чека ЕНВД)
ОбщиеПараметры.Добавить(""); // 16 - Наименование секции форматирования шапки
ОбщиеПараметры.Добавить(""); // 17 - Наименование секции форматирования подвала
Показать
(35) Joker2705, т.е. на принтере напечатался чек "ДОБРО ПОЖАЛОВАТЬ", а в модуле документа ЧекККМ в процедуре ПробитьЧекВыполнить изменили строку?
Как принтер подключили? COM или винпринт?
Я подключаю как СОМ.
ОбщиеПараметры.Добавить(НСтр("ru = 'ДОБРО ПОЖАЛОВАТЬ изменено'"));
Как принтер подключили? COM или винпринт?
Я подключаю как СОМ.
(38) spacecraft, Извините, Вы меня не правильно поняли, да и я не полную информацию выдал, Пробитие чека происходит в режиме РМК. А Для режима РМК я не могу найти макет чека(( Строки в коде менять пробую, результат есть, шапку почти всю убрал, а вот в Подвале "ИТОГ", "СДАЧА" и др. пока не нашел где убрать(
(1) Joker2705, С принтерами/ФР следующая ситуация - есть три варианта оборудования:
1) Фискальный регистратор (все серьезно, ЭКЛЗ+ФП+регистрация в налоговой и т.п.) - подключается в разделе оборудования "Фискальный регистратор" - щапки, подписи настраиваются из утилиты этого самого регистратора
2) АСПД или как его неправильно называют "принтер чеков" - тот же фискальнык, но без ЭКЛЗ, в налоговой не регистрируется, используется при ЕНВД. Но в нем тоже есть фискальная память, такая же утилита для настройки шапок и подписей, также подключается в разделе фискальных регистраторов
3) Настоящий принтер чеков - это именно принтер, собственной памяти обычно нет. Утилиты настройки обычно не требуются. Виден в системе как обычный принтер. Подключается в разделе "принтеры чеков".
В случае подключения как принтера чеков - печать ведется по шаблону, Шаблон задается в карточке КассыККМ - он выбирается из списка шаблонов, которые можно создать в разделе администрирования -> Печатные формы, отчеты и обработки -> Шаблоны этикеток, ценников и чеков ККМ
Еще один вариант - подключаете устройство "эмулятор ФР", а для печати на принтере используете печать из чека "Товарный чек для принтера документов". В этом случае следует задать в карточке кассы ККМ ширину ленты, а сам макет отредактировать в в разделе администрирования -> Печатные формы, отчеты и обработки -> макеты печатных форм
1) Фискальный регистратор (все серьезно, ЭКЛЗ+ФП+регистрация в налоговой и т.п.) - подключается в разделе оборудования "Фискальный регистратор" - щапки, подписи настраиваются из утилиты этого самого регистратора
2) АСПД или как его неправильно называют "принтер чеков" - тот же фискальнык, но без ЭКЛЗ, в налоговой не регистрируется, используется при ЕНВД. Но в нем тоже есть фискальная память, такая же утилита для настройки шапок и подписей, также подключается в разделе фискальных регистраторов
3) Настоящий принтер чеков - это именно принтер, собственной памяти обычно нет. Утилиты настройки обычно не требуются. Виден в системе как обычный принтер. Подключается в разделе "принтеры чеков".
В случае подключения как принтера чеков - печать ведется по шаблону, Шаблон задается в карточке КассыККМ - он выбирается из списка шаблонов, которые можно создать в разделе администрирования -> Печатные формы, отчеты и обработки -> Шаблоны этикеток, ценников и чеков ККМ
Еще один вариант - подключаете устройство "эмулятор ФР", а для печати на принтере используете печать из чека "Товарный чек для принтера документов". В этом случае следует задать в карточке кассы ККМ ширину ленты, а сам макет отредактировать в в разделе администрирования -> Печатные формы, отчеты и обработки -> макеты печатных форм
Пробовал подключаться через утилиту управления принтером, утилита пишет что-то вроде "Не могу подключиться, проверьте соединение". Но я думаю что не в принтере беда, а в 1С, такая же шапка и подвал выводятся на экран если подключен Эмулятор ФК. Так же пробовал в конфигураторе, найти и удалить все строчки, которые содержат надпись "ДОБРО ПОЖАЛОВАТЬ", результата никакого, как выводилась так и выводится((
Интересно, а откуда в новом Принтере чеков информация о организации, Наименование, ИНН? Выводит имя кассира. Все же это не в настройках Принтера чеков и его драйвере, а скорее всего все дело в 1С или драйвере подключаемого оборудования. Отсюда вопрос, где и что копать?
в итоге вывод только один - попробовать разные версии утилиты/драйверов чтобы запустить утилиту и там убрать настройки... Если совсем никак не получается - скачать прошивку у производителя и попробовать перешить (возможно в какой то прошивке уже отключено, или после этого получиться утилитой приконнектиться). Если совсем никак не получается - отнести где обслуживается такая техника в вашем городе и попросить настроить (ходил как-то - взяли 300р. у нас в небольшом городе)
(42) mtandre, В "Обработка РМКУправляемыйРежим Формы-Форма" заменил несколько значений. Вот полный уже измененный код функции "ВходныеПараметрыДляПробитияЧекаККМ"
И в "Общий модуль МенеджерОборудованияКлиентПереопределенный", тоже заменил. Вот полный измененный код функции "СформироватьТексНефискальногоЧека"
&НаСервере
Функция ВходныеПараметрыДляПробитияЧекаККМ(ЧекККМСсылка, ДанныеЕГАИСДостаточны, ТранспортныйМодуль = Неопределено, ТекстПолногоСообщения = "")
ВходныеПараметры = Новый Массив;
// Подготовка таблицы товаров
ТаблицаТоваров = Новый Массив();
// Подготовка соответствие секций для табличной части.
ТаблицаСоответствияТоваровСекциям = Новый Соответствие();
ПодключаемоеОборудованиеРТ.ЗаполнитьСоответствиеСекцийДляТабличнойЧастиПоКассеККМ(ЧекККМСсылка.КассаККМ, Объект.Товары, ТаблицаСоответствияТоваровСекциям);
ТаблицаТоваровЧека = ПродажиСервер.ПодготовкаДанныхДляПробитияЧекаККМ(ЧекККМСсылка, ДанныеЕГАИСДостаточны, Объект, Истина, ТекстПолногоСообщения);
Для Каждого СтрокаТЧ Из ТаблицаТоваровЧека Цикл
СтавкаНДС = ОбработкаТабличнойЧастиТоварыКлиентСерверПовтИсп.ПолучитьСтавкуНДСЧислом(СтрокаТЧ.СтавкаНДС);
Сумма = СтрокаТЧ.Сумма + ?(ЧекККМСсылка.ЦенаВключаетНДС, 0, СтрокаТЧ.СуммаНДС);
СуммаСкидки = СтрокаТЧ.СуммаАвтоматическойСкидки + СтрокаТЧ.СуммаСкидкиОплатыБонусом + СтрокаТЧ.СуммаРучнойСкидки;
Если (Сумма + СуммаСкидки) = 0 Тогда
ПроцентСкидки = 0;
Иначе
ПроцентСкидки = Окр(100 * СуммаСкидки / (Сумма + СуммаСкидки),2,1);
КонецЕсли;
Если ЧекККМСсылка.ЦенаВключаетНДС ИЛИ СтрокаТЧ.СуммаНДС = 0 Тогда
Цена = СтрокаТЧ.Цена
Иначе
Цена = ОКР(Сумма / СтрокаТЧ.КоличествоУпаковок, 2, 1);
КонецЕсли;
СтрокаТаблицыТоваров = Новый СписокЗначений();
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура)
+ ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");
НомерСекции = ТаблицаСоответствияТоваровСекциям.Получить(СтрокаТЧ.НомерСтроки);
ПараметрыАлкогольнойПродукции = ИнтеграцияЕГАИСПереопределяемый.ПараметрыАлкогольнойПродукции(СтрокаТЧ);
СтрокаТаблицыТоваров.Добавить(НаименованиеТовара); // 1 - Наименование
СтрокаТаблицыТоваров.Добавить(СтрокаТЧ.Штрихкод); // 2 - Штрихкод
СтрокаТаблицыТоваров.Добавить(""); // 3 - Артикул
СтрокаТаблицыТоваров.Добавить(НомерСекции); // 4 - Номер секции
СтрокаТаблицыТоваров.Добавить(Цена); // 5 - Цена за позицию без скидки.
СтрокаТаблицыТоваров.Добавить(СтрокаТЧ.КоличествоУпаковок); // 6 - Количество
СтрокаТаблицыТоваров.Добавить(""); // 7 - Наименование скидки/наценки.
СтрокаТаблицыТоваров.Добавить(СуммаСкидки); // 8 - Сумма скидки/наценки
СтрокаТаблицыТоваров.Добавить(ПроцентСкидки); // 9 - Процент скидки/наценки.
СтрокаТаблицыТоваров.Добавить(Сумма); // 10 - Сумма позиции со скидкой.
СтрокаТаблицыТоваров.Добавить(0); // 11 - Номер налога (1)
СтрокаТаблицыТоваров.Добавить(СтрокаТЧ.СуммаНДС); // 12 - Сумма налога (1)
СтрокаТаблицыТоваров.Добавить(СтавкаНДС * 100); // 13 - Процент налога (1)
СтрокаТаблицыТоваров.Добавить(0); // 14 - Номер налога (2)
СтрокаТаблицыТоваров.Добавить(0); // 15 - Сумма налога (2)
СтрокаТаблицыТоваров.Добавить(0); // 16 - Процент налога (2)
СтрокаТаблицыТоваров.Добавить(""); // 17 - Наименование секции форматирования товарной строки.
СтрокаТаблицыТоваров.Добавить(ПараметрыАлкогольнойПродукции); // 18 - Параметры алкогольной продукции
ТаблицаТоваров.Добавить(СтрокаТаблицыТоваров);
КонецЦикла;
// Подготовка таблицы оплат
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЧекККМОплата.Сумма,
| ЧекККМОплата.ВидОплаты.ТипОплаты КАК ТипОплаты
|ПОМЕСТИТЬ ТаблицаВЗапросе
|ИЗ
| Документ.ЧекККМ.Оплата КАК ЧекККМОплата
|ГДЕ
| ЧекККМОплата.Ссылка = &ЧекККМСсылка
| И НЕ ЧекККМОплата.ВидОплаты = ЗНАЧЕНИЕ(Справочник.ВидыОплатЧекаККМ.ПустаяСсылка)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| СУММА(ТаблицаВЗапросе.Сумма) КАК Сумма,
| ТаблицаВЗапросе.ТипОплаты
|ИЗ
| ТаблицаВЗапросе КАК ТаблицаВЗапросе
|
|СГРУППИРОВАТЬ ПО
| ТаблицаВЗапросе.ТипОплаты
|
|ИМЕЮЩИЕ
| СУММА(ТаблицаВЗапросе.Сумма) > 0";
Запрос.УстановитьПараметр("ЧекККМСсылка", ЧекККМСсылка);
Результат = Запрос.Выполнить();
ТаблицаПоТипамОплат = Результат.Выгрузить();
МассивОплат = Новый Массив();
// Наличные
СтрокаТаблицы = ТаблицаПоТипамОплат.Найти(Перечисления.ТипыОплатЧекаККМ.Наличные, "ТипОплаты");
Если НЕ СтрокаТаблицы = Неопределено Тогда
СтрокаОплаты = Новый СписокЗначений();
СтрокаОплаты.Добавить(0);
СтрокаОплаты.Добавить(СтрокаТаблицы.Сумма);
СтрокаОплаты.Добавить("Наличная оплата");
СтрокаОплаты.Добавить("");
МассивОплат.Добавить(СтрокаОплаты);
КонецЕсли;
// Платежная карта
СтрокаТаблицы = ТаблицаПоТипамОплат.Найти(Перечисления.ТипыОплатЧекаККМ.ПлатежнаяКарта, "ТипОплаты");
Если НЕ СтрокаТаблицы = Неопределено Тогда
СтрокаОплаты = Новый СписокЗначений();
СтрокаОплаты.Добавить(1);
СтрокаОплаты.Добавить(СтрокаТаблицы.Сумма);
СтрокаОплаты.Добавить("Платежная карта");
СтрокаОплаты.Добавить("");
МассивОплат.Добавить(СтрокаОплаты);
КонецЕсли;
// Банковский кредит
СтрокаТаблицы = ТаблицаПоТипамОплат.Найти(Перечисления.ТипыОплатЧекаККМ.БанковскийКредит, "ТипОплаты");
Если НЕ СтрокаТаблицы = Неопределено Тогда
СтрокаОплаты = Новый СписокЗначений();
СтрокаОплаты.Добавить(2);
СтрокаОплаты.Добавить(СтрокаТаблицы.Сумма);
СтрокаОплаты.Добавить("Банковский кредит");
СтрокаОплаты.Добавить("");
МассивОплат.Добавить(СтрокаОплаты);
КонецЕсли;
// Подарочный сертификат
СтрокаТаблицы = ТаблицаПоТипамОплат.Найти(Перечисления.ТипыОплатЧекаККМ.ПодарочныйСертификат, "ТипОплаты");
Если НЕ СтрокаТаблицы = Неопределено Тогда
СтрокаОплаты = Новый СписокЗначений();
СтрокаОплаты.Добавить(3);
СтрокаОплаты.Добавить(СтрокаТаблицы.Сумма);
СтрокаОплаты.Добавить("Подарочный сертификат");
СтрокаОплаты.Добавить("");
МассивОплат.Добавить(СтрокаОплаты);
КонецЕсли;
// Подготовка таблицы общих параметров.
СведенияООрганизации = ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(ЧекККМСсылка.Организация, ЧекККМСсылка.Дата);
ФизЛицоЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЧекККМСсылка.Ответственный, "ФизЛицо");
ТипЧека = ?(ЧекККМСсылка.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат,1,0);
АдресМагазина = ОбщегоНазначенияРТ.АдресМагазина(ЧекККМСсылка.Магазин);
// Подготовка таблицы общих параметров.
ОбщиеПараметры = Новый Массив();
ОбщиеПараметры.Добавить(ТипЧека); // 1 - Тип чека (0-продажа, 1-возврат)
ОбщиеПараметры.Добавить(Истина); // 2 - Признак фискального чека
ОбщиеПараметры.Добавить(Неопределено); // 3 - Печать копии чека
ОбщиеПараметры.Добавить(ЧекККМСсылка.СуммаДокумента); // 4 - Сумма по чеку без скидок/наценок
ОбщиеПараметры.Добавить(ЧекККМСсылка.СуммаДокумента); // 5 - Сумма по чеку с учетом всех скидок/наценок
ОбщиеПараметры.Добавить(""); // 6 - Номер дисконтной карты
//ОбщиеПараметры.Добавить(НСтр("ru = 'ДОБРО ПОЖАЛОВАТЬ'")); // 7 - Текст шапки (Для чека ЕНВД)
ОбщиеПараметры.Добавить(); // 7 - Текст шапки (Для чека ЕНВД)
//ОбщиеПараметры.Добавить(НСтр("ru = 'СПАСИБО ЗА ПОКУПКУ'")); // 8 - Текст подвала (Для чека ЕНВД)
ОбщиеПараметры.Добавить(); // 8 - Текст подвала (Для чека ЕНВД)
ОбщиеПараметры.Добавить(0); // 9 - Номер смены
ОбщиеПараметры.Добавить(1); // 10 - Номер чека (Для чека ЕНВД)
ОбщиеПараметры.Добавить(1); // 11 - Номер кассы (Для чека ЕНВД)
//ОбщиеПараметры.Добавить(ЧекККМСсылка.Дата); // 12 - Дата и время документа
ОбщиеПараметры.Добавить(); // 12 - Дата и время документа
ОбщиеПараметры.Добавить(ФизЛицоЗначения.ФизЛицо); // 13 - Кассир (Для чека ЕНВД)
ОбщиеПараметры.Добавить(СведенияООрганизации.НаименованиеПолноеПоУчредительнымДокументам); // 14 - Название организации (Для чека ЕНВД)
ОбщиеПараметры.Добавить(СведенияООрганизации.ИНН); // 15 - ИНН организации (Для чека ЕНВД)
ОбщиеПараметры.Добавить(""); // 16 - Наименование секции форматирования шапки
ОбщиеПараметры.Добавить(""); // 17 - Наименование секции форматирования подвала
ОбщиеПараметры.Добавить(""); // 18 - КПП торгового объекта
ОбщиеПараметры.Добавить(Строка(ЧекККМСсылка.Магазин));// 19 - Наименование магазина
ОбщиеПараметры.Добавить(АдресМагазина); // 20 - Адрес магазина
ОбщиеПараметры.Добавить(ЧекККМСсылка.КассаККМ.СерийныйНомер); // 21 - Заводской номер ККМ
МассивШаблона = Новый Массив();
МассивШаблона.Добавить(ЧекККМСсылка.КассаККМ);
МассивШаблона.Добавить(?(ТипЧека = 1, "ШаблонЧекаККМВозврат", "ШаблонЧекаККМ"));
МассивШаблона.Добавить(ЧекККМСсылка.Ссылка);
ОбщиеПараметры.Добавить(МассивШаблона); // 22- Массив параметров шаблона чека.
ВходныеПараметры.Добавить(ТаблицаТоваров);
ВходныеПараметры.Добавить(МассивОплат);
ВходныеПараметры.Добавить(ОбщиеПараметры);
ТранспортныйМодуль = ИнтеграцияЕГАИСПереопределяемый.ИспользуемыйТранспортныйМодуль(ЧекККМСсылка.Организация, ЧекККМСсылка.Магазин);
Возврат ВходныеПараметры;
КонецФункции
ПоказатьИ в "Общий модуль МенеджерОборудованияКлиентПереопределенный", тоже заменил. Вот полный измененный код функции "СформироватьТексНефискальногоЧека"
Функция СформироватьТексНефискальногоЧека(ШиринаСтроки, ОбщиеПараметры, ПозицииЧека, ТаблицаОплат) Экспорт
//Разделитель = МенеджерОборудованияКлиент.ПостроитьПоле("", ШиринаСтроки, "=") + Символы.ПС;
Разделитель = Символы.ПС;
РазделительВнут = МенеджерОборудованияКлиент.ПостроитьПоле("", ШиринаСтроки, "-") + Символы.ПС;
// Сформировать шапку чека.
Текст = Разделитель;
Если ОбщиеПараметры.Свойство("ОрганизацияНазвание") И НЕ ПустаяСтрока(ОбщиеПараметры.ОрганизацияНазвание) Тогда
Текст = Текст + МенеджерОборудованияКлиент.ВыстроитьПоля(ОбщиеПараметры.ОрганизацияНазвание, , ШиринаСтроки) + Символы.ПС;
КонецЕсли;
Если ОбщиеПараметры.Свойство("ТекстШапки") И НЕ ПустаяСтрока(ОбщиеПараметры.ТекстШапки) Тогда
Текст = Текст + МенеджерОборудованияКлиент.ВыстроитьПоля(ОбщиеПараметры.ТекстШапки, , ШиринаСтроки) + Символы.ПС;
КонецЕсли;
НомерКассы = ?(ОбщиеПараметры.Свойство("НомерКассы") И НЕ ПустаяСтрока(ОбщиеПараметры.НомерКассы),
НСтр("ru='КАССА'") + Символы.НПП + ОбщиеПараметры.НомерКассы, "");
ОрганизацияИНН = ?(ОбщиеПараметры.Свойство("ОрганизацияИНН") И НЕ ПустаяСтрока(ОбщиеПараметры.ОрганизацияИНН),
НСтр("ru='ИНН'") + Символы.НПП + ОбщиеПараметры.ОрганизацияИНН, "");
Если Не ПустаяСтрока(НомерКассы) Или НЕ ПустаяСтрока(ОрганизацияИНН) Тогда
Текст = Текст + МенеджерОборудованияКлиент.ВыстроитьПоля(НомерКассы, ОрганизацияИНН, ШиринаСтроки) + Символы.ПС;
КонецЕсли;
НомерЧека = ?(ОбщиеПараметры.Свойство("НомерЧека") И НЕ ПустаяСтрока(ОбщиеПараметры.НомерЧека),
НСтр("ru='ЧЕК №'") + ОбщиеПараметры.НомерЧека, "");
Если Не ПустаяСтрока(НомерЧека) Тогда
Текст = Текст + МенеджерОборудованияКлиент.ВыстроитьПоля(ОбщиеПараметры.ТипЧека, НомерЧека, ШиринаСтроки) + Символы.ПС;
Иначе
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(ОбщиеПараметры.ТипЧека, ШиринаСтроки) + Символы.ПС;
КонецЕсли;
ДатаВремя = ?(ОбщиеПараметры.Свойство("ДатаВремя") И НЕ ПустаяСтрока(ОбщиеПараметры.ДатаВремя), ОбщиеПараметры.ДатаВремя, ТекущаяДата());
ДатаВремя = Формат(ДатаВремя, "ДФ=""дд.ММ.гггг ЧЧ:мм""");
Если Не ПустаяСтрока(ДатаВремя) Тогда
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(ДатаВремя, ШиринаСтроки, , Ложь) + Символы.ПС;
КонецЕсли;
//Текст = Текст + РазделительВнут;
ФорматЧисла = "ЧРД=,;ЧЦ=10;ЧДЦ=2;ЧН=0,00;ЧГ=0";
СуммаЧека = 0;
// Формируем строки чека.
Если ПозицииЧека <> Неопределено Тогда
Для ИндексМассива = 0 По ПозицииЧека.Количество() - 1 Цикл
ПозицияЧека = ПозицииЧека[ИндексМассива];
Если ПозицияЧека.Свойство("ФискальнаяСтрока") Тогда
Наименование = ?(ПозицияЧека.Свойство("Наименование"), ПозицияЧека.Наименование, "");
Количество = ?(ПозицияЧека.Свойство("Количество") , ПозицияЧека.Количество , 1);
Цена = ?(ПозицияЧека.Свойство("Цена") , ПозицияЧека.Цена , 0);
Сумма = ?(ПозицияЧека.Свойство("Сумма") , ПозицияЧека.Сумма , 0);
НомерСекции = ?(ПозицияЧека.Свойство("НомерСекции") , ПозицияЧека.НомерСекции , 0);
СтавкаНДС = ?(ПозицияЧека.Свойство("СтавкаНДС") , ПозицияЧека.СтавкаНДС , 0);
ТекстСтроки = МенеджерОборудованияКлиент.ПостроитьПолеПереносом(Наименование, ШиринаСтроки) + Символы.ПС;
СтрокаТовара = Формат(Количество, "ЧРД=,;ЧЦ=10;ЧДЦ=3;ЧН=0,000;ЧГ=0") + " х " + Формат(Цена, ФорматЧисла)
+ " = " + Формат(Количество * Цена, ФорматЧисла) + Символы.ПС;
ТекстСтроки = ТекстСтроки + МенеджерОборудованияКлиент.ПостроитьПоле(СтрокаТовара, ШиринаСтроки, , Ложь);
Если Окр(Количество * Цена, 2) > Сумма Тогда
ТекстСтроки = ТекстСтроки + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='СКИДКА ='") + Символы.НПП
+ Формат(Количество * Цена - Сумма, ФорматЧисла) + " ", ШиринаСтроки, , Ложь) + Символы.ПС;
ИначеЕсли Окр(Количество * Цена, 2) < Сумма Тогда
ТекстСтроки = ТекстСтроки + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='НАДБАВКА ='") + Символы.НПП
+ Формат(Сумма - Количество * Цена, ФорматЧисла) + " ", ШиринаСтроки, , Ложь) + Символы.ПС;
КонецЕсли;
Текст = Текст + ТекстСтроки;
СуммаЧека = СуммаЧека + Сумма;
ИначеЕсли ПозицияЧека.Свойство("ТекстоваяСтрока") Тогда
ТекстСтроки = ?(ПозицияЧека.Свойство("Текст"), ПозицияЧека.Текст, "");
Текст = Текст + ТекстСтроки + Символы.ПС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Формируем подвал чека
Если ТаблицаОплат <> Неопределено Тогда
СуммаНаличнойОплаты = 0;
СуммаБезналичнойОплаты1 = 0;
СуммаБезналичнойОплаты2 = 0;
СуммаБезналичнойОплаты3 = 0;
Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл
Если ТаблицаОплат[ИндексОплаты].ТипОплаты = 0 Тогда
СуммаНаличнойОплаты = СуммаНаличнойОплаты + ТаблицаОплат[ИндексОплаты].Сумма;
ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = 1 Тогда
СуммаБезналичнойОплаты1 = СуммаБезналичнойОплаты1 + ТаблицаОплат[ИндексОплаты].Сумма;
ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = 2 Тогда
СуммаБезналичнойОплаты2 = СуммаБезналичнойОплаты2 + ТаблицаОплат[ИндексОплаты].Сумма;
Иначе
СуммаБезналичнойОплаты3 = СуммаБезналичнойОплаты3 + ТаблицаОплат[ИндексОплаты].Сумма;
КонецЕсли;
КонецЦикла;
СуммаОплаты = СуммаНаличнойОплаты + СуммаБезналичнойОплаты1 + СуммаБезналичнойОплаты2 + СуммаБезналичнойОплаты3;
//Текст = Текст + РазделительВнут;
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='ИТОГ ='"), 16, ,Ложь) + Символы.НПП + Формат(СуммаЧека, ФорматЧисла) + Символы.ПС;
//Текст = Текст + РазделительВнут;
Если СуммаНаличнойОплаты > 0 Тогда
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='НАЛИЧНЫМИ ='"), 16, ,Ложь) + Символы.НПП + Формат(СуммаНаличнойОплаты, ФорматЧисла) + Символы.ПС;
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='НАЛ. ='"), 6, ,Ложь) + Символы.НПП + Формат(СуммаНаличнойОплаты, ФорматЧисла);
КонецЕсли;
Если СуммаБезналичнойОплаты1 > 0 Тогда
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='ПЛАТ.КАРТОЙ ='"), 16, ,Ложь) + Символы.НПП + Формат(СуммаБезналичнойОплаты1, ФорматЧисла) + Символы.ПС;
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru=' П.КАРТОЙ ='"), 11, ,Ложь) + Символы.НПП + Формат(СуммаБезналичнойОплаты1, ФорматЧисла) + Символы.ПС;
КонецЕсли;
Если СуммаБезналичнойОплаты2 > 0 Тогда
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='КРЕДИТОМ ='"), 16, ,Ложь) + Символы.НПП + Формат(СуммаБезналичнойОплаты2, ФорматЧисла) + Символы.ПС;
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru=' КРЕДИТОМ ='"), 11, ,Ложь) + Символы.НПП + Формат(СуммаБезналичнойОплаты2, ФорматЧисла) + Символы.ПС;
КонецЕсли;
Если СуммаБезналичнойОплаты3 > 0 Тогда
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='СЕРТИФИКАТОМ ='"), 16, ,Ложь) + Символы.НПП + Формат(СуммаБезналичнойОплаты3, ФорматЧисла) + Символы.ПС;
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru=' СЕРТИФ. ='"), 10, ,Ложь) + Символы.НПП + Формат(СуммаБезналичнойОплаты3, ФорматЧисла) + Символы.ПС;
КонецЕсли;
//Текст = Текст + РазделительВнут;
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='СДАЧА ='"), 7, ,Ложь) + Символы.НПП + Формат(СуммаОплаты - СуммаЧека, ФорматЧисла) + Символы.ПС;
//Текст = Текст + РазделительВнут;
Если (СуммаОплаты - СуммаЧека) > 0 Тогда
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru=' СДАЧА ='"), 8, ,Ложь) + Символы.НПП + Формат(СуммаОплаты - СуммаЧека, ФорматЧисла);
КонецЕсли;
ИмяКассира = ?(ОбщиеПараметры.Свойство("ИмяКассира"), ОбщиеПараметры.ИмяКассира, "");
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru=' КАССИР:'") + Символы.НПП + ИмяКассира, ШиринаСтроки) + Символы.ПС;
Текст = Текст + Символы.ПС + МенеджерОборудованияКлиент.ПостроитьПоле(НСтр("ru='КАССИР:'") + Символы.НПП + ИмяКассира, ШиринаСтроки) + Символы.ПС;
//Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле("ПОДПИСЬ:", ШиринаСтроки, "_") + Символы.ПС + Символы.ПС;
Текст = Текст + МенеджерОборудованияКлиент.ПостроитьПоле("ПОДПИСЬ:", ШиринаСтроки, "_");
Если ОбщиеПараметры.Свойство("ТекстПодвала") И НЕ ПустаяСтрока(ОбщиеПараметры.ТекстПодвала) Тогда
Текст = Текст + МенеджерОборудованияКлиент.ВыстроитьПоля(ОбщиеПараметры.ТекстПодвала, , ШиринаСтроки) + Символы.ПС;
КонецЕсли;
КонецЕсли;
Текст = Текст + Разделитель;
Возврат Текст;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот