АП, приподниму. Такая же проблема только с синхронизацией Розница/БП. И самое главное что в рознице СтавкаНДС это перечисление и ни каких полей "РасчетнаяСтавка" по всей конфигурации нет кроме как в XDTO пакете. И как бороться с этой ошибкой, что где может быть не заполнено?
Документ.ЗаказКлиента
Услуги
Строка[1]
СтавкаНДС
РасчетнаяСтавка: не заполнено обязательное поле.
НеОблагается: не заполнено обязательное поле.
ВидСтавки: не заполнено обязательное поле.
При этом в рознице нет таких полей, в рознице ставка это перечисление, это во первых а во вторых услуга идет без НДС
Соответственно вопрос, почему возникает эта ошибка и как ее исправить
А что именно переписали?
Я даже не могу понять в какую сторону копать. Единственное что удалось выяснить, что ошибка возникает в заказах, в которых есть услуги
Процедура УОД_ДокументСчетФактураВыданныйПередОбработкойПРО(Объект, Отказ, ИмяПланаОбмена)
ИсключаемыеТипыДокументовОснований = Новый Массив;
ИсключаемыеТипыДокументовОснований.Добавить(Тип("ДокументСсылка.ВыкупВозвратнойТарыКлиентом"));
ИсключаемыеТипыДокументовОснований.Добавить(Тип("ДокументСсылка.ЗаписьКнигиПродаж"));
ИсключаемыеТипыДокументовОснований.Добавить(Тип("ДокументСсылка.ПервичныйДокумент"));
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СчетФактураВыданный.ДокументОснование КАК ДокументОснование
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Ссылка = &Объект";
Запрос.УстановитьПараметр("Объект", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДокументОснование = ВыборкаДетальныеЗаписи.ДокументОснование;
КонецЦикла;
НалогообложениеНДС = Неопределено;
ОснованиеДокументаОснования = Неопределено;
Если Не ДокументОснование = Неопределено Тогда
Реквизиты = "";
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДокументОснование, "ДокументОснование") Тогда
Реквизиты = "ДокументОснование";
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ДокументОснование, "НалогообложениеНДС") Тогда
Реквизиты = Реквизиты + ?(ПустаяСтрока(Реквизиты),"",",") + "НалогообложениеНДС";
КонецЕсли;
Если Не ПустаяСтрока(Реквизиты) Тогда
СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументОснование, Реквизиты);
КонецЕсли;
Если СтруктураРеквизитов <> Неопределено И СтруктураРеквизитов.Свойство("ДокументОснование") Тогда
ОснованиеДокументаОснования = СтруктураРеквизитов.ДокументОснование;
КонецЕсли;
Если СтруктураРеквизитов <> Неопределено И СтруктураРеквизитов.Свойство("НалогообложениеНДС") Тогда
НалогообложениеНДС = СтруктураРеквизитов.НалогообложениеНДС;
КонецЕсли;
КонецЕсли;
Если ИмяПланаОбмена = "СинхронизацияДанныхЧерезУниверсальныйФормат"
И ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ДокументОснование = Объект.ДокументОснование;
ИмяМетаданногоОснования = ДокументОснование.Метаданные().Имя;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов.ИмяОбъектаМетаданных = &ИмяОбъектаМетаданных
| ИЛИ НЕ СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов.Ссылка.ИспользоватьОтборПоРазделамУчетаИДокументам, ЛОЖЬ) КАК ОснованиеПроходитПоФильтру,
| СинхронизацияДанныхЧерезУниверсальныйФормат.Ссылка КАК Ссылка,
| СинхронизацияДанныхЧерезУниверсальныйФормат.ИспользоватьОтборПоРазделамУчетаИДокументам КАК ИспользоватьОтборПоРазделамУчетаИДокументам,
| КОЛИЧЕСТВО(СинхронизацияДанныхЧерезУниверсальныйФормат.Ссылка) КАК КоличествоВариантовНастроек,
| СинхронизацияДанныхЧерезУниверсальныйФормат.ВариантНастройки КАК ВариантНастройки
|ИЗ
| ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат КАК СинхронизацияДанныхЧерезУниверсальныйФормат
| ЛЕВОЕ СОЕДИНЕНИЕ ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.ВидыДокументов КАК СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов
| ПО (СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов.Ссылка = СинхронизацияДанныхЧерезУниверсальныйФормат.Ссылка)
| И (СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов.ИмяОбъектаМетаданных = &ИмяОбъектаМетаданных)
|ГДЕ
| НЕ СинхронизацияДанныхЧерезУниверсальныйФормат.ПометкаУдаления
| И НЕ СинхронизацияДанныхЧерезУниверсальныйФормат.ВариантНастройки = """"
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов.ИмяОбъектаМетаданных = &ИмяОбъектаМетаданных
| ИЛИ НЕ СинхронизацияДанныхЧерезУниверсальныйФорматВидыДокументов.Ссылка.ИспользоватьОтборПоРазделамУчетаИДокументам, ЛОЖЬ),
| СинхронизацияДанныхЧерезУниверсальныйФормат.Ссылка,
| СинхронизацияДанныхЧерезУниверсальныйФормат.ИспользоватьОтборПоРазделамУчетаИДокументам,
| СинхронизацияДанныхЧерезУниверсальныйФормат.ВариантНастройки";
#Вставка
Запрос.Текст = Запрос.Текст + "
|
|УПОРЯДОЧИТЬ ПО
| СинхронизацияДанныхЧерезУниверсальныйФормат.Наименование";
#КонецВставки
Запрос.УстановитьПараметр("ИмяОбъектаМетаданных", ИмяМетаданногоОснования);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если Не ВыборкаДетальныеЗаписи.ИспользоватьОтборПоРазделамУчетаИДокументам = Истина Тогда
Продолжить;
ИначеЕсли ВыборкаДетальныеЗаписи.ИспользоватьОтборПоРазделамУчетаИДокументам = Истина
И ВыборкаДетальныеЗаписи.ОснованиеПроходитПоФильтру = Ложь Тогда
Отказ = Истина;
Возврат;
#Вставка
ИначеЕсли ВыборкаДетальныеЗаписи.ИспользоватьОтборПоРазделамУчетаИДокументам = Истина
И ВыборкаДетальныеЗаписи.ОснованиеПроходитПоФильтру = Истина Тогда
Отказ = Ложь;
Прервать;
#КонецВставки
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ЗначениеЗаполнено(ДокументОснование) Тогда
Если НалогообложениеНДС <> Неопределено
И НалогообложениеНДС = ПредопределенноеЗначение("Перечисление.ТипыНалогообложенияНДС.ОблагаетсяНДССМежценовойРазницы") Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
ТипДокументаОснования = ТипЗнч(Объект.ДокументОснование);
Если ИсключаемыеТипыДокументовОснований.Найти(ТипДокументаОснования) <> Неопределено Тогда
Отказ = Истина;
ИначеЕсли ТипДокументаОснования = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов") Тогда
ХозяйственнаяОперация = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОснование, "ХозяйственнаяОперация");
Если ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.РеализацияКлиенту Тогда
Отказ = Истина;
КонецЕсли;
ТипДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор, "ТипДоговора");
Если НЕ ТипДоговора = Неопределено И ТипДоговора = ПредопределенноеЗначение("Перечисление.ТипыДоговоров.ПередачаВАренду") Тогда
Отказ = Истина;
КонецЕсли;
ИначеЕсли ТипДокументаОснования = Тип("ДокументСсылка.КорректировкаРеализации") Тогда
Если ОснованиеДокументаОснования <> Неопределено Тогда
Если ТипЗнч(ОснованиеДокументаОснования) = Тип("ДокументСсылка.АктВыполненныхРабот")
ИЛИ ТипЗнч(ОснованиеДокументаОснования) = Тип("ДокументСсылка.ПервичныйДокумент") Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипДокументаОснования = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
Если ДокументОснование.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате
ИЛИ ДокументОснование.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности") Тогда
Отказ = Истина;
КонецЕсли;
ИначеЕсли ТипДокументаОснования = Тип("ДокументСсылка.ОтчетКомиссионера")
ИЛИ ТипДокументаОснования = Тип("ДокументСсылка.ОтчетКомитенту")
ИЛИ ТипДокументаОснования = Тип("ДокументСсылка.ОтчетПоКомиссииМеждуОрганизациями") Тогда
ОбменДаннымиСобытияУТ.ДокументОтчетКомиссионераКомитентуПриОбработкеПРО(Объект.ДокументОснование, Отказ);
ИначеЕсли ТипДокументаОснования = Тип("ДокументСсылка.АвансовыйОтчет") Тогда
ОбменДаннымиСобытияУТ.ДокументАвансовыйОтчетПередОбработкойПРО(Объект.ДокументОснование, Отказ);
ИначеЕсли ТипДокументаОснования = Тип("ДокументСсылка.ВозвратТоваровОтКлиента") Тогда
Если ДокументОснование.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Это ошибка релиза. Исправить можно через расширение, для этого в общем модуле "МенеджерОбменаЧерезУниверсальныйФормат" в процедуре "ДобавитьПКО_Документ_СчетФактураПолученныйНалоговыйАгент_Отп" добавляем свойство "СтавкаНДС" и в процедуре "ПКО_Документ_СчетФактураПолученныйНалоговыйАгент_Отп_ПриОтправкеДанных" переопределяем присвоение этой СтавкиНДС в ДанныеXDTO:
Была обратная ситуация с документом "ПоступлениеТоваровОтХранителя", который конвертируется в "ВозвратТоваровОтПокупателя".
Точно с такой же ошибкой, но уже в ТЧ Товары, так вот в ТЧ товары объекта вообще нету такого реквизита - Ставка НДС.
В процедуре "ДобавитьПКО_Документ_ВозвратОтКомиссионера_Отправка" удалил это свойство и все заработало