Имя: Пароль:
1C
 
Печать чека в УТ без цены и суммы
0 Novichok VX
 
27.07.21
13:52
Есть версия ут 10.3 от 2017, обновлять долго и много наработок. После установки нового драйвера кассового оборудования не печатается цена и сумма, наименование и количество печатаются. Подскажите, что надо в функции переделать, чтобы цена печаталась?

Функция ПолучитьXMLПакетДляФискализацияЧека(ОбщиеПараметры, ВыходныеПараметры, СуммаЧека) Экспорт
    
    ПозицииЧека  = ОбщиеПараметры.ПозицииЧека;
    ТаблицаОплат = ОбщиеПараметры.ТаблицаОплат;
    СуммаЧека = 0;
    
    // Пакетная печать чека. Подготовка пакета.
    ЗаписьXML = Новый ЗаписьXML();
    ЗаписьXML.УстановитьСтроку("UTF-8");
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    ЗаписьXML.ЗаписатьНачалоЭлемента("CheckPackage");
    ЗаписьXML.ЗаписатьНачалоЭлемента("Parameters");
    
    ТипРасчета = МенеджерОборудованияКлиентСервер.ПолучитьКодТипаРасчетаДенежнымиСредствами(ОбщиеПараметры.ТипРасчета);
    ЗаписьXML.ЗаписатьАтрибут("PaymentType"       , XMLСтрока(ТипРасчета));
    
    Если ОбщиеПараметры.Свойство("КодСистемыНалогообложения") И ОбщиеПараметры.КодСистемыНалогообложения <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("TaxVariant"        , XMLСтрока(ОбщиеПараметры.КодСистемыНалогообложения));
    КонецЕсли;
    
    ЗаписьXML.ЗаписатьАтрибут("SenderEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ОтправительEmail"), ОбщиеПараметры.ОтправительEmail, "")));
    // Email отправляет средствами 1C
    Если ОбщиеПараметры.Свойство("Отправляет1СEmail") И НЕ ОбщиеПараметры.Отправляет1СEmail Тогда
        ЗаписьXML.ЗаписатьАтрибут("CustomerEmail", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательEmail"), ОбщиеПараметры.ПокупательEmail, "")));
    КонецЕсли;
    // SMS отправляет средствами 1C
    Если ОбщиеПараметры.Свойство("Отправляет1СSMS") И НЕ ОбщиеПараметры.Отправляет1СSMS Тогда
        ЗаписьXML.ЗаписатьАтрибут("CustomerPhone", XMLСтрока(?(ОбщиеПараметры.Свойство("ПокупательНомер"), ОбщиеПараметры.ПокупательНомер, "")));
    КонецЕсли;
    
    Если ОбщиеПараметры.Свойство("ВознагражденияАгента") И ОбщиеПараметры.ВознагражденияАгента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("AgentCompensation" , XMLСтрока(ОбщиеПараметры.ВознагражденияАгента));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ТелефонПлатежногоАгента") И ОбщиеПараметры.ТелефонПлатежногоАгента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("AgentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонПлатежногоАгента));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ТелефонОператораПоПриемуПлатежей") И ОбщиеПараметры.ТелефонОператораПоПриемуПлатежей <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("ReceivePaymentsOperatorPhone" , XMLСтрока(ОбщиеПараметры.ТелефонОператораПоПриемуПлатежей));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ТелефонОператораПеревода") И ОбщиеПараметры.ТелефонОператораПеревода <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorPhone" , XMLСтрока(ОбщиеПараметры.ТелефонОператораПеревода));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("АдресОператораПеревода") И ОбщиеПараметры.АдресОператораПеревода <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorAddress" , XMLСтрока(ОбщиеПараметры.АдресОператораПеревода));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ИННОператораПеревода") И ОбщиеПараметры.ИННОператораПеревода <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorVATIN" , XMLСтрока(ОбщиеПараметры.ИННОператораПеревода));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("НаименованиеОператораПеревода") И ОбщиеПараметры.НаименованиеОператораПеревода <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("MoneyTransferOperatorName" , XMLСтрока(ОбщиеПараметры.НаименованиеОператораПеревода));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ТелефонБанковскогоАгента") И ОбщиеПараметры.ТелефонБанковскогоАгента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("BankAgentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонБанковскогоАгента));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ТелефонБанковскогоСубагента") И ОбщиеПараметры.ТелефонБанковскогоСубагента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("BankSubagentPhone" , XMLСтрока(ОбщиеПараметры.ТелефонБанковскогоСубагента));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ОперацияБанковскогоАгента") И ОбщиеПараметры.ОперацияБанковскогоАгента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("BankAgentOperation" , XMLСтрока(ОбщиеПараметры.ОперацияБанковскогоАгента));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ОперацияБанковскогоСубагента") И ОбщиеПараметры.ОперацияБанковскогоСубагента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("BankSubagentOperation" , XMLСтрока(ОбщиеПараметры.ОперацияБанковскогоСубагента));
    КонецЕсли;
    Если ОбщиеПараметры.Свойство("ВознагражденияБанковскогоАгента") И ОбщиеПараметры.ВознагражденияБанковскогоАгента <> Неопределено Тогда
        ЗаписьXML.ЗаписатьАтрибут("BankAgentCompensation" , XMLСтрока(ОбщиеПараметры.ВознагражденияБанковскогоАгента));
    КонецЕсли;
    
    ЗаписьXML.ЗаписатьКонецЭлемента();
    
    // Табличная часть
    Если ОбщиеПараметры.ПозицииЧека <> Неопределено Тогда
        ЗаписьXML.ЗаписатьНачалоЭлемента("Positions");
        Для ИндексМассива = 0 По ОбщиеПараметры.ПозицииЧека.Количество() - 1 Цикл
            ТекущаяПозиция = ОбщиеПараметры.ПозицииЧека[ИндексМассива];
            Если ТекущаяПозиция.Свойство("ФискальнаяСтрока") Тогда
                    ЗаписьXML.ЗаписатьНачалоЭлемента("FiscalString");
                    ЗаписьXML.ЗаписатьАтрибут("Name"      , XMLСтрока(ТекущаяПозиция.Наименование));
                    ЗаписьXML.ЗаписатьАтрибут("Quantity"  , XMLСтрока(ТекущаяПозиция.Количество));
                    ЗаписьXML.ЗаписатьАтрибут("Price"     , XMLСтрока(ТекущаяПозиция.Цена));
                    ЗаписьXML.ЗаписатьАтрибут("Amount"    , XMLСтрока(ТекущаяПозиция.Сумма));
                    ЗаписьXML.ЗаписатьАтрибут("Tax"       , XMLСтрока(ТекущаяПозиция.СтавкаНДС));
    

                    ЗаписьXML.ЗаписатьКонецЭлемента();
                    СуммаЧека = СуммаЧека + ТекущаяПозиция.Сумма;
                ИначеЕсли ТекущаяПозиция.Свойство("ТекстоваяСтрока") Тогда
                    ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");
                    ЗаписьXML.ЗаписатьАтрибут("Text", XMLСтрока(ТекущаяПозиция.Текст));
                    ЗаписьXML.ЗаписатьКонецЭлемента();
                ИначеЕсли ТекущаяПозиция.Свойство("ШтрихКод") Тогда
                    ЗаписьXML.ЗаписатьНачалоЭлемента("Barcode");
                    ЗаписьXML.ЗаписатьАтрибут("BarcodeType", XMLСтрока(ТекущаяПозиция.ТипШтрихкода));
                    ЗаписьXML.ЗаписатьАтрибут("Barcode", XMLСтрока(ТекущаяПозиция.ШтрихКод));
                    ЗаписьXML.ЗаписатьКонецЭлемента();
                Иначе
                    ТекстОшибки = НСтр("ru='Не определен тип позиции чека.'");
                    ВыходныеПараметры.Очистить();
                    ВыходныеПараметры.Вставить("ТекстОшибки", ТекстОшибки);
                    Результат = Ложь;  
                    Возврат Результат;
            КонецЕсли;
        КонецЦикла;
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЕсли;
    
    // Таблица оплат
    Если ТаблицаОплат <> Неопределено Тогда
        СуммаНаличнойОплаты     = 0;
        СуммаЭлектроннойОплаты1 = 0;
        СуммаЭлектроннойОплаты2 = 0;
        СуммаЭлектроннойОплаты3 = 0;
        Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл
            Если ТаблицаОплат[ИндексОплаты].ТипОплаты = 0 Тогда
                СуммаНаличнойОплаты = СуммаНаличнойОплаты + ТаблицаОплат[ИндексОплаты].Сумма;
            ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = 1 Тогда
                СуммаЭлектроннойОплаты1 = СуммаЭлектроннойОплаты1 + ТаблицаОплат[ИндексОплаты].Сумма;
            ИначеЕсли ТаблицаОплат[ИндексОплаты].ТипОплаты = 2 Тогда
                СуммаЭлектроннойОплаты2 = СуммаЭлектроннойОплаты2 + ТаблицаОплат[ИндексОплаты].Сумма;
            Иначе
                СуммаЭлектроннойОплаты3 = СуммаЭлектроннойОплаты3 + ТаблицаОплат[ИндексОплаты].Сумма;
            КонецЕсли;
        КонецЦикла;
        
        ЗаписьXML.ЗаписатьНачалоЭлемента("Payments");
        ЗаписьXML.ЗаписатьАтрибут("Cash", XMLСтрока(СуммаНаличнойОплаты));
        ЗаписьXML.ЗаписатьАтрибут("CashLessType1", XMLСтрока(СуммаЭлектроннойОплаты1));
        ЗаписьXML.ЗаписатьАтрибут("CashLessType2", XMLСтрока(СуммаЭлектроннойОплаты2));
        ЗаписьXML.ЗаписатьАтрибут("CashLessType3", XMLСтрока(СуммаЭлектроннойОплаты3));
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЕсли;
    
    ЗаписьXML.ЗаписатьКонецЭлемента();
    
    Возврат ЗаписьXML.Закрыть();
    
КонецФункции
1 Novichok VX
 
27.07.21
15:01
Всем спасибо, кто отозвался. Проблема решилась заменой "Price" на "PriceWithDiscount"