Несколько видов оплат в Чеке ККМ и Z-отчете, разделение по секциям в X отчете

25.01.17

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

В данной статье вы сможете найти описание того, как реализовать несколько видов оплат в чеке ККМ, разделение по видам оплат в Z-отчете, а также посекционный вывод в X-отчет в 1С: Рознице 8.2 в связке с фискальными регистраторами Штрих.

Назрел вопрос реализации дополнительного вида оплаты в 1С 8.2, а также разбивки в Z отчете по секциями и по видам оплаты, в моем случае это было связано с внедрением оплаты подарочными сертификатами.

Реализовано следующий образом:

В "Обработках" в общей модуле РМК необходимо в функцию "ПробитьЧекВыполнить" добавить условия обработки номеров секций.

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

Для Каждого СтрокаТЧ Из ОбъектЧекККМ.ТабличныеЧасти.Товары Цикл
                                    
                    Если СтрокаТЧ.Номенклатура.видНоменклатуры.ТипНоменклатуры=Перечисления.ТипыНоменклатуры.ПодарочныйСертификат Тогда
                        НомерСекции = 2;
                    Иначе
                        НомерСекции = 1;
                    КонецЕсли;

Отбор по виду оплат:

  

  для каждого оп из ОбъектЧекККМ.ТабличныеЧасти.оплата цикл
                        если (оп.ВидОплаты.ТипОплаты= перечисления.ТипыОплатЧекаККМ.ПодарочныйСертификат) и (оп.сумма>0) тогда
                            НомерСекции=2;
                        конецесли;
                    конеццикла;

В данном условии мы установили номер секции- 2 для всех покупок и возвратов по подарочным сертификатам.

Далее в коде идет получение сумм, необходимо добавить получение сумм оплат по подарочным сертификатам:

СтрокаОплаты = Новый СписокЗначений();
                СтрокаОплаты.Добавить(2);
                СтрокаОплаты.Добавить(ПолучитьСуммуОплатыПодарочнымиСертификатами(ОбъектЧекККМ));
                СтрокаОплаты.Добавить("Оплата подарочным сертификатом");
                СтрокаОплаты.Добавить("");
                ТаблицаОплат.Добавить(СтрокаОплаты);

Добавляем Функцию "Функция ПолучитьСуммуОплатыПодарочнымиСертификатами" она выглядит следующим образом:

Функция ПолучитьСуммуОплатыПодарочнымиСертификатами(ОбъектЧекККМ)
    
    СуммаОплаты = 0;
    Для Каждого ТекОплата Из ОбъектЧекККМ.ТабличныеЧасти.Оплата Цикл
        Если ТекОплата.ВидОплаты = Справочники.ВидыОплатЧекаККМ.ОплатаПодарочнымСертификатом Тогда
            СуммаОплаты = СуммаОплаты + ТекОплата.Сумма;
        КонецЕсли;
    КонецЦикла;
    
    Возврат СуммаОплаты;
    
КонецФункции

В общем модуле находим обработчик подключаемого оборудования в моем случае это "ПодключаемоеОборудованиеШтрихМФискальныеРегистраторы", это обработчик драйвера "Штрих-М: Фискальные регистраторы" и в функцию "ЗакрытьЧек" добавляем следующие строки:

Функция ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры) Экспорт

    Результат = Истина;

    СуммаНаличнойОплаты     = 0;
    СуммаБезналичнойОплаты1 = 0;
    СуммаБезналичнойОплаты2 = 0;
    
    Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл
        Если ТаблицаОплат[ИндексОплаты][0].Значение = 0 Тогда
            СуммаНаличнойОплаты = СуммаНаличнойОплаты + ТаблицаОплат[ИндексОплаты][1].Значение;
        ИначеЕсли ТаблицаОплат[ИндексОплаты][0].Значение = 1 Тогда
            СуммаБезналичнойОплаты1 = СуммаБезналичнойОплаты1 + ТаблицаОплат[ИндексОплаты][1].Значение;
        ИначеЕсли ТаблицаОплат[ИндексОплаты][0].Значение = 2 Тогда
            СуммаБезналичнойОплаты2 = СуммаБезналичнойОплаты2 + ТаблицаОплат[ИндексОплаты][1].Значение;
        КонецЕсли;
    КонецЦикла;

                                          
    Результат = ОбъектДрайвера.ЗакрытьЧек(ПараметрыПодключения.ИДУстройства,
                                          СуммаНаличнойОплаты,
                                          СуммаБезналичнойОплаты1,
                                          СуммаБезналичнойОплаты2);
                                          
    Если НЕ Результат Тогда
        ВыходныеПараметры.Очистить();
        ВыходныеПараметры.Добавить(999);
        ВыходныеПараметры.Добавить("");
        ОбъектДрайвера.ПолучитьОшибку(ВыходныеПараметры[1]);

        ОтменитьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);
    КонецЕсли;

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

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

Вот и все, в итоге вы получаете разбивку по видам оплат в Z отчете, как показано на рисунке, и также разделение по секциям в X отчете.

фискальный регистратор виды оплат разбивка по видам оплат Z отчет X отчет подарочные сертификаты.

См. также

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

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

29400 руб.

29.06.2023    5112    11    5    

20

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

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

7200 руб.

02.08.2023    3487    8    0    

26

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

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    4693    dimanich70    15    

20

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    3431    dimanich70    8    

15

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    2724    21    avmartynov    14    

53

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2813    43    progmaster    8    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Probot1c 02.02.17 11:36 Сейчас в теме
2. electrolis 12 03.01.20 12:23 Сейчас в теме
А если нужно закрыть чек с указанием системы налогооблажения?
вроде как там теперь есть такой парметр. Куда его передавать?
Оставьте свое сообщение