!Сохранить конфигурацию
1) Создать расширение конфигурации с назначением "Исправление" Загрузить расширение конфигурации из файла, удалить стандартную схему egais_WB_DOC_SINGLE_01
2) В перечислении ФорматыОбменаЕГАИС добавить значение Перечисления.ФорматыОбменаЕГАИС.V4
3) В модуле менеджера перечисления ВидыДокументовЕГАИС в функцию ТаблицаСоответствияДокументовТипамЕГАИС добавить
НоваяСтрока = Таблица.Добавить();
НоваяСтрока.ТипЕГАИС = ("WayBill_v4");
НоваяСтрока.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4;
НоваяСтрока.ВидДокументаЕГАИС = Перечисления.ВидыДокументовЕГАИС.ТТН;
НоваяСтрока.ПространствоИмен = "TTNSingle_v4";
// ++++++++++++++
НоваяСтрока = Таблица.Добавить();
НоваяСтрока.ТипЕГАИС = ("WayBillAct_v4");
НоваяСтрока.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4;
НоваяСтрока.ВидДокументаЕГАИС = Перечисления.ВидыДокументовЕГАИС.АктТТНПодтверждение;
НоваяСтрока.ПространствоИмен = "ActTTNSingle_v4";
// +++++++++++++
НоваяСтрока = Таблица.Добавить();
НоваяСтрока.ТипЕГАИС = ("WayBillAct_v4");
НоваяСтрока.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4;
НоваяСтрока.ВидДокументаЕГАИС = Перечисления.ВидыДокументовЕГАИС.АктТТНОтказ;
НоваяСтрока.ПространствоИмен = "ActTTNSingle_v4";
// +++++++++++++
НоваяСтрока = Таблица.Добавить();
НоваяСтрока.ТипЕГАИС = ("WayBillAct_v4");
НоваяСтрока.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4;
НоваяСтрока.ВидДокументаЕГАИС = Перечисления.ВидыДокументовЕГАИС.АктТТНРасхождения;
НоваяСтрока.ПространствоИмен = "ActTTNSingle_v4";
4) Общий Модуль Интеграция ЕГАИС.
В функции ЗагрузитьТТНВходящуюЕГАИС заменить
ДокументОбъект.Автомобиль = ДанныеДокументаТТН.Объект.Header.Transport.TRAN_CAR;
на
Если ДанныеДокументаТТН.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4 Тогда
ДокументОбъект.Автомобиль = СокрЛП(ДанныеДокументаТТН.Объект.Header.Transport.TRANSPORT_TYPE)+"/"+СокрЛП(ДанныеДокументаТТН.Объект.Header.Transport.TRANSPORT_REGNUMBER)+"/"+СокрЛП(ДанныеДокументаТТН.Объект.Header.Transport.ChangeOwnership);
Иначе
ДокументОбъект.Автомобиль = ДанныеДокументаТТН.Объект.Header.Transport.TRAN_CAR;
КонецЕсли;
5) Общий Модуль Интеграция ЕГАИС
Заменить все условия
ДанныеДокументаТТН.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3
на
ДанныеДокументаТТН.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3 ИЛИ ДанныеДокументаТТН.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4
6) В модуле менеджера ТТН ВХодящей дополнить условие
в процедуре АктПодтвержденияXML было
Иначе
#Область ФорматОбмена_V3
АктXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "WayBillActType_v3");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO, "Identity", ИнтеграцияЕГАИС.НовыйИдентификаторДокумента(ДокументСсылка, "awb"), СообщениеXML, 3);
АктXDTO.Header = ИнтеграцияЕГАИС.ОбъектXDTOПоИмениТипа(АктXDTO, "Header");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "IsAccept", "Accepted", СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ACTNUMBER", СокрЛП(Шапка.Номер), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ActDate", ТекущаяДатаСеанса(), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "WBRegId", Шапка.ИдентификаторЕГАИС, СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "Note", Шапка.Комментарий, СообщениеXML);
#КонецОбласти
станет
ИначеЕсли ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3 Тогда
#Область ФорматОбмена_V3
АктXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "WayBillActType_v3");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO, "Identity", ИнтеграцияЕГАИС.НовыйИдентификаторДокумента(ДокументСсылка, "awb"), СообщениеXML, 3);
АктXDTO.Header = ИнтеграцияЕГАИС.ОбъектXDTOПоИмениТипа(АктXDTO, "Header");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "IsAccept", "Accepted", СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ACTNUMBER", СокрЛП(Шапка.Номер), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ActDate", ТекущаяДатаСеанса(), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "WBRegId", Шапка.ИдентификаторЕГАИС, СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "Note", Шапка.Комментарий, СообщениеXML);
#КонецОбласти
Иначе
#Область ФорматОбмена_V4
АктXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "WayBillActType_v4");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO, "Identity", ИнтеграцияЕГАИС.НовыйИдентификаторДокумента(ДокументСсылка, "awb"), СообщениеXML, 3);
АктXDTO.Header = ИнтеграцияЕГАИС.ОбъектXDTOПоИмениТипа(АктXDTO, "Header");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "IsAccept", "Accepted", СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ACTNUMBER", СокрЛП(Шапка.Номер), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ActDate", ТекущаяДатаСеанса(), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "WBRegId", Шапка.ИдентификаторЕГАИС, СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "Note", Шапка.Комментарий, СообщениеXML);
#КонецОбласти
КонецЕсли;
в процедуре АктОтказаXML было
Иначе
#Область ФорматОбмена_V3
АктXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "WayBillActType_v3");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO, "Identity", ИнтеграцияЕГАИС.НовыйИдентификаторДокумента(ДокументСсылка, "awb"), СообщениеXML, 3);
АктXDTO.Header = ИнтеграцияЕГАИС.ОбъектXDTOПоИмениТипа(АктXDTO, "Header");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "IsAccept", "Rejected", СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ACTNUMBER", СокрЛП(Шапка.Номер), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ActDate", ТекущаяДатаСеанса(), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "WBRegId", Шапка.ИдентификаторЕГАИС, СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "Note", Шапка.Комментарий, СообщениеXML);
КонецЕсли;
стало
ИначеЕсли ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3 Тогда
#Область ФорматОбмена_V3
АктXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "WayBillActType_v3");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO, "Identity", ИнтеграцияЕГАИС.НовыйИдентификаторДокумента(ДокументСсылка, "awb"), СообщениеXML, 3);
АктXDTO.Header = ИнтеграцияЕГАИС.ОбъектXDTOПоИмениТипа(АктXDTO, "Header");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "IsAccept", "Rejected", СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ACTNUMBER", СокрЛП(Шапка.Номер), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ActDate", ТекущаяДатаСеанса(), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "WBRegId", Шапка.ИдентификаторЕГАИС, СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "Note", Шапка.Комментарий, СообщениеXML);
#КонецОбласти
Иначе
#Область ФорматОбмена_V4
АктXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "WayBillActType_v4");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO, "Identity", ИнтеграцияЕГАИС.НовыйИдентификаторДокумента(ДокументСсылка, "awb"), СообщениеXML, 3);
АктXDTO.Header = ИнтеграцияЕГАИС.ОбъектXDTOПоИмениТипа(АктXDTO, "Header");
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "IsAccept", "Rejected", СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ACTNUMBER", СокрЛП(Шапка.Номер), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "ActDate", ТекущаяДатаСеанса(), СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "WBRegId", Шапка.ИдентификаторЕГАИС, СообщениеXML);
ИнтеграцияЕГАИС.ЗаполнитьСвойствоXDTO(АктXDTO.Header, "Note", Шапка.Комментарий, СообщениеXML);
#КонецОбласти
КонецЕсли;
7) Чтоб акцизки в проверке ТТН появились в модуле менеджера ТТНВходящей
в функции ВходящиеАкцизныеМарки и ВходящееДеревоУпаковок
было
Результат.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3
стало
(Результат.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3 ИЛИ Результат.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4)
8) В модуль перечисления ВидыДокументовЕГАИС
в функцию ПредыдущаяВерсияФорматаОбмена добавить условие
ИначеЕсли ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4 Тогда
Возврат Перечисления.ФорматыОбменаЕГАИС.V3;
9) Для работы с самим УТМ 4 В модуль ИнтеграцияЕГАИСКлиентСервер
в функцию ПараметрыHTTPЗапроса
было
ТелоЗапроса = Новый ТекстовыйДокумент();
ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""xml_file""");
стало
ТелоЗапроса = Новый ТекстовыйДокумент();
ТелоЗапроса.РазделительСтрок = Символы.CR+Символы.LF;
ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""xml_file""; filename=""QueryRest.xml");
в функцию КодФСРАР
было
СтруктураДанныхHTTPЗапроса("GET", "/info/certificate/RSA?attachment=true"));
стало
СтруктураДанныхHTTPЗапроса("GET", "/api/certificate/download/RSA?attachment=true"));
10) Для проверки акцизок
В модуль менеджера ТТНВхходящаяЕГАИС и ТТНИсходящаяЕГАИС в процедуры ВходящиеАкцизныеМарки и ВходящееДеревоУпаковок
было
И Результат.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3 Тогда
стало
И Результат.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V3 ИЛИ Результат.ФорматОбмена = Перечисления.ФорматыОбменаЕГАИС.V4 Тогда