Универсальный модуль обмена УТ 11.4

1. M_A_D 184 06.07.20 13:32 Сейчас в теме
Имеем вводные:
1С:Предприятие 8.3 (8.3.15.1869)
Управление торговлей, редакция 11 (11.4.12.61)

Обмен настроен через Универсальный модуль обмена (направление УТ-БУХ).

При попытке выгрузить Счета Фактуры Выданные получаем ошибку:
Направление: Отправка.
ПОД: Документ_СчетФактураВыданный_Отправка.
ПКО: Документ_СчетФактураВыданный_Отправка.
Объект: Документ объект: Счет-фактура выданный, Счет-фактура выданный ТЦУТ-000427 от 09.04.2020 23:59:59 (e1cib/data/Документ.СчетФактураВыданный?ref=811cac9e17842ca611eabc3a1cb93084).


Событие: Отправка.
Обработчик: ПриОтправкеДанных.
Объект: Документ объект: Счет-фактура выданный, Счет-фактура выданный ТЦУТ-000427 от 09.04.2020 23:59:59 (e1cib/data/Документ.СчетФактураВыданный?ref=811cac9e17842ca611eabc3a1cb93084).

Ошибка выполнения обработчика.
Поле объекта не обнаружено (ИсходныйДокумент)
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(53284)}: Если ЗначениеЗаполнено(ВыборкаТЧ.ИсходныйДокумент) Тогда
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(22138)}: СФВыданный_ВыгрузитьДокументыОснования(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена);
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(54886)}: ПКО_Документ_СчетФактураВыданный_Отправка_ПриОтправкеДанных(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6307)}: МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1121)}: ПриОтправкеДанных(Источник, Приемник, ПравилоКонвертации.ПриОтправкеДанных, КомпонентыОбмена, СтекВыгрузки);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(691)}: ДанныеXDTO = ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Объект, ПравилоКонвертации, Неопределено);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(3632)}: ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Данные);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(529)}: ВыполнитьВыгрузкуЗарегистрированныхДанных(КомпонентыОбмена, НомерОтправленного);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(216)}: ОбменДаннымиXDTOСервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(7124)}: ОбработкаОбменаДаннымиXML.ВыполнитьВыгрузкуДанных();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6897)}: ЗаписатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СтруктураНастроекОбмена.ОбработкаТранспортаСообщенийОбмена.ИмяФайлаСообщенияОбмена());
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(381)}: ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена, ТолькоПараметры);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3888)}: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы(Отказ, УзелИнформационнойБазы,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(34)}: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
.
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6318)}: ВызватьИсключение ТекстОшибки;
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1121)}: ПриОтправкеДанных(Источник, Приемник, ПравилоКонвертации.ПриОтправкеДанных, КомпонентыОбмена, СтекВыгрузки);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(691)}: ДанныеXDTO = ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Объект, ПравилоКонвертации, Неопределено);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(3632)}: ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Данные);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(529)}: ВыполнитьВыгрузкуЗарегистрированныхДанных(КомпонентыОбмена, НомерОтправленного);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(216)}: ОбменДаннымиXDTOСервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(7124)}: ОбработкаОбменаДаннымиXML.ВыполнитьВыгрузкуДанных();
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6897)}: ЗаписатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, СтруктураНастроекОбмена.ОбработкаТранспортаСообщенийОбмена.ИмяФайлаСообщенияОбмена());
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(381)}: ВыполнитьОбменДаннымиЧерезФайловыйРесурс(СтруктураНастроекОбмена, ТолькоПараметры);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3888)}: ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы(Отказ, УзелИнформационнойБазы,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(34)}: ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}: ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
Показать


Попытался найти "Если ЗначениеЗаполнено(ВыборкаТЧ.ИсходныйДокумент) Тогда", нашел по строке:

Процедура СФВыданный_ВыгрузитьДокументыОснования(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена)
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("СчетФактура", ДанныеИБ.Ссылка);
	
	Если НЕ ДанныеИБ.Корректировочный Тогда
		Запрос.Текст =
			"ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	ДокументОснование,
			|	Неопределено КАК ИсходныйДокумент
			|ИЗ 
			|	Документ.СчетФактураВыданный.ДокументыОснования
			|ГДЕ 
			|	Ссылка = &СчетФактура";
	Иначе
		Запрос.Текст = 
			"ВЫБРАТЬ
			|	СчетФактураВыданныйДокументыОснования.ДокументОснование КАК ДокументОснование,
			|	ЕСТЬNULL(СчетФактураВыданныйТовары.ПредыдущийСчетФактура, НЕОПРЕДЕЛЕНО) КАК ПредыдущийСчетФактура
			|ИЗ
			|	Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
			|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.Товары КАК СчетФактураВыданныйТовары
			|		ПО СчетФактураВыданныйДокументыОснования.Ссылка = СчетФактураВыданныйТовары.Ссылка
			|ГДЕ
			|	СчетФактураВыданныйДокументыОснования.Ссылка = &СчетФактура";
	КонецЕсли;
	
	ВыборкаТЧ = Запрос.Выполнить().Выбрать();
	
	ДокументыОснования = Новый ТаблицаЗначений();
	ДокументыОснования.Колонки.Добавить("ДокументОснование");
	ДокументыОснования.Колонки.Добавить("ИсходныйДокумент");
	
	Пока ВыборкаТЧ.Следующий() Цикл
		
		ДокументОснование = ВыборкаТЧ.ДокументОснование;
	
		ИмяПКО = ИмяПКОДляОбъектаДанных(КомпонентыОбмена, ДокументОснование, ДанныеИБ.Организация);
		
		Если НЕ (ЗначениеЗаполнено(ДокументОснование) И ЗначениеЗаполнено(ИмяПКО)) Тогда
			Продолжить;
		КонецЕсли;
			
		СтрокаОснование = ДокументыОснования.Добавить();
		СтрокаОснование.ДокументОснование = Новый Структура("Значение, ИмяПКО", ДокументОснование, ИмяПКО);
		Если ЗначениеЗаполнено(ВыборкаТЧ.ИсходныйДокумент) Тогда
			СтрокаОснование.ИсходныйДокумент = ВыборкаТЧ.ИсходныйДокумент;
		КонецЕсли;
	
	КонецЦикла;
	
	ДанныеXDTO.Вставить("ДокументыОснования", ДокументыОснования);
КонецПроцедуры
Показать


Не понимаю почему документ не выгружается, конфа типовая, модуль не правили руками.
На сколько я понял проблема в том, что условие "Если НЕ" отрабатывает всегда, вне зависимости от того, какое из условий выполнилось выше "Если НЕ ДанныеИБ.Корректировочный Тогда".

Подскажите куда копнуть, что бы поправить, и все же выгрузить документы...
По теме из базы знаний
Найденные решения
2. dmbarchenkov 06.07.20 13:48 Сейчас в теме
(1) У вас СФ Корректировочный? Если да, то получается в выборке есть 2 поля: ДокументОснование и ПредыдущийСчетФактура, а поля ИсходныйДокумент нет.
Может здесь ошибка разработчиков и нужно во втором запросе заменить ПредыдущийСчетФактура на ИсходныйДокумент.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dmbarchenkov 06.07.20 13:48 Сейчас в теме
(1) У вас СФ Корректировочный? Если да, то получается в выборке есть 2 поля: ДокументОснование и ПредыдущийСчетФактура, а поля ИсходныйДокумент нет.
Может здесь ошибка разработчиков и нужно во втором запросе заменить ПредыдущийСчетФактура на ИсходныйДокумент.
3. M_A_D 184 06.07.20 14:08 Сейчас в теме
(2)а ведь и точно....
Попробую сегодня ночером, когда ни кого не будет в базе, если отработает исправно, отпишусь
4. dmbarchenkov 06.07.20 14:16 Сейчас в теме
(3) пару лет назад в УТ 11.3 тоже подобные косяки были в других документах, приходилось исправлять.
5. M_A_D 184 06.07.20 21:19 Сейчас в теме
(2)
все именно так и получилось....
Не стал париться с расширениями. просто переписал название реквизита в модуле.
Вс работает)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот