Несколько видов оплат в Чеке ККМ и 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 отчет подарочные сертификаты.

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

29400 руб.

29.06.2023    4444    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

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

7200 руб.

02.08.2023    2949    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

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

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

01.03.2024    1275    dimanich70    6    

13

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

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

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

1 стартмани

27.10.2023    1990    13    avmartynov    10    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

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

2 стартмани

22.08.2023    2069    21    progmaster    7    

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