Несколько видов оплат в Чеке ККМ и 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    6155    15    5    

24

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

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

7200 руб.

02.08.2023    4278    15    1    

33

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 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, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6826    73    10    

30

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

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

2 стартмани

22.04.2024    5332    dimanich70    15    

22

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

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

01.03.2024    7295    dimanich70    10    

19

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

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

1 стартмани

27.10.2023    3687    30    TempTablesManager    14    

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