Каталог решений - Исправление ошибки 1С УТ 11 (версия 11.3.2.157) с транспортным модулем УТМ ЕГАИС

Исправление ошибки 1С УТ 11 (версия 11.3.2.157) с транспортным модулем УТМ ЕГАИС

Исправление ошибки 1С УТ 11 (версия 11.3.2.157) с транспортным модулем УТМ ЕГАИС

В наличии

В конфигурации 1C «Управление торговлей» (по крайней мере, в версии 11.3.2.157) после настройки соединения с фискальным регистратором и транспортным модулем «УТМ» ЕГАИС при попытке пробить чек на продажу единицы алкогольной продукции выдается ошибка (скрин приложен).

Категория:

Описание

    Название модуля, содержащего ошибку — «ИнтеграцияЕГАИС». В этом модуле формируется форматное сообщение о продаваемой единице продукции. Функция, формирующая сообщение — «ТекстXMLВыгрузкиЧека». В формируемом сообщении ошибка: в поле «смена» («shift») передается значение «0» что не позволяется форматом (номер смены должен быть хотя бы «1»). 
Новый текст функции:

// Функция возвращает текст XML, который нужно выгрузить в ЕГАИС.
//
Функция ТекстXMLВыгрузкиЧека(ВидДокумента, ШапкаЧека, СтрокиЧека, ТекстОшибки) Экспорт

    ПространствоИмен = Перечисления.ВидыДокументовЕГАИС.ПространствоИмен(ВидДокумента, Неопределено, ТекстОшибки);
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку("UTF-8");
    
    ЧекXDTO = ОбъектXDTOПоИмениСвойства(ПространствоИмен, "Cheque");
    
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "inn", ШапкаЧека.ИНН, ТекстОшибки);
    
    Если ЗначениеЗаполнено(ШапкаЧека.КПП) Тогда
        УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "kpp", ШапкаЧека.КПП, ТекстОшибки);
    КонецЕсли;
    
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "address" , ШапкаЧека.АдресМагазина                         , ТекстОшибки);
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "name"    , ШапкаЧека.НаименованиеМагазина                  , ТекстОшибки);
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "kassa"   , ШапкаЧека.ЗаводскойНомерККМ                     , ТекстОшибки);
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "shift"   , ШапкаЧека.НомерСменыККМ                         , ТекстОшибки);
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "number"  , ШапкаЧека.НомерЧекаККМ                          , ТекстОшибки);
    УстановитьЗначениеСвойстваXDTO(ЧекXDTO, "datetime", Формат(ШапкаЧека.ДатаВремяЧека, "ДФ=ddMMyyHHmm"), ТекстОшибки);
    
    Если НЕ ПустаяСтрока(ТекстОшибки) Тогда
        Возврат "";
    КонецЕсли;
    
    Для Каждого СтрокаЧека Из СтрокиЧека Цикл
        
        Цена = Формат(?(ШапкаЧека.Свойство("Возврат") И ШапкаЧека.Возврат, -1, 1) * СтрокаЧека.Цена, "ЧДЦ=2; ЧРД=.; ЧГ=0");
        Объем = Формат(СтрокаЧека.Объем, "ЧДЦ=4; ЧРД=.; ЧГ=0");
        
        СтрокаЧекаXDTO = ОбъектXDTOПоИмениСвойства(ПространствоИмен, "Bottle");
        УстановитьЗначениеСвойстваXDTO(СтрокаЧекаXDTO, "price"  , Цена, ТекстОшибки);
        УстановитьЗначениеСвойстваXDTO(СтрокаЧекаXDTO, "barcode", СтрокаЧека.КодАкцизнойМарки, ТекстОшибки);
        
        Если ЗначениеЗаполнено(СтрокаЧека.Штрихкод) Тогда
            УстановитьЗначениеСвойстваXDTO(СтрокаЧекаXDTO, "ean", СтрокаЧека.Штрихкод, ТекстОшибки);
        КонецЕсли;
        
        Если ЗначениеЗаполнено(Объем) Тогда
            УстановитьЗначениеСвойстваXDTO(СтрокаЧекаXDTO, "volume" , Объем, ТекстОшибки);
        КонецЕсли;
        
        ЧекXDTO.Bottle.Добавить(СтрокаЧекаXDTO);
        
    КонецЦикла;
    
    Если НЕ ПустаяСтрока(ТекстОшибки) Тогда
        Возврат "";
    КонецЕсли;
    
    ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ЧекXDTO, "Cheque");
    
    ТекстXML = ЗаписьXML.Закрыть();
    ТекстXML = СтрЗаменить(ТекстXML, "xmlns=""" + ПространствоИмен + """ ", "");
    ТекстXML = СтрЗаменить(ТекстXML, "shift=""0""" , "shift=""1""");
    
    Возврат ТекстXML;

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

has been added to your cart:
Оформление заказа