При выгрузке банка из бухгалтерии в УНФ неправильно переносится НДС

Используются типовые конфигурации УНФ (управление небольшой/нашей фирмой) (проверено до рел.1.6.13.29) и бухгалтерии БП (ред 3.0). Между ними настроен обмен. В БП введен документ оплаты поставщику по банку, платеж без НДС. Однако в УНФ он переносится с НДС

Такая ситуация возникает, если в документе зачет авансов установлен "Автоматически".

Если посмотреть на файл выгрузки из БП, то он правильный - т.е. там этот документ выгружен без НДС. НДС возникает уже при загрузке в УНФ. Из-за того, что в модуле документа "РасходСоСчета" в rjywt процедуре "ПередЗаписью" имеется следущее:

// Зачет долгов. Авто
Если РежимЗаписи = РежимЗаписиДокумента.Проведение И
ВариантЗаполненияРасшифровки = Перечисления.ВариантыЗаполненияРасшифровкиПлатежа.Автоматически И
ВидОперации = Перечисления.ВидыОперацийРасходСоСчета.Поставщику Тогда

РасшифровкаПлатежа.Очистить();
ЗаполнитьРасшифровкуПлатежаАвтоЗачетДолгов();

КонецЕсли;
// Конец Зачет долгов. Авто

То есть документ фактически заполняется заново, при заполнении ставка НДС берется по умолчанию для организации (которая может быть например 18%).

Для того чтобы избежать этого, можно внести следующие изменения в программу.

1. В вышеуказанный фрагмент перед "РасшифровкаПлатежа.Очистить" надо добавить вызов:

осСохранитьСтавкуНДС(ЭтотОбъект);

2. В конец процедур ЗаполнитьРасшифровкуПлатежа, ЗаполнитьРасшифровкуПлатежаАвтоЗачетДолгов в модуле документа надо добавить:

осОбработатьРасшифровкуПлатежа_СтавкаНДС(ЭтотОбъект);

3. Добавить в модуль процедуры:

Процедура осОбработатьРасшифровкуПлатежа_СтавкаНДС(адо) Экспорт
бОбрабатываем = Ложь;
Если (ТипЗнч(адо) = Тип("ДокументОбъект.РасходИзКассы") ИЛИ ТипЗнч(адо) = Тип("ДокументОбъект.РасходСоСчета"))
И адо.ХозяйственнаяОперация = Справочники.ХозяйственныеОперации.Поставщику Тогда
бОбрабатываем = Истина;
КонецЕсли;

Если бОбрабатываем Тогда
// обрабатывает расшифроовку платежа в документах расход со счета, расходный ордер
рп = адо.РасшифровкаПлатежа;
Если рп.Количество() = 1 И Не ЗначениеЗаполнено(рп[0].Документ)
И адо.ВариантЗаполненияРасшифровки = Перечисления.ВариантыЗаполненияРасшифровкиПлатежа.Автоматически Тогда
ассДефСтавкаНДС = Оквита.ПолучитьСвойство(адо.ДополнительныеСвойства, "осСтавкаНДС", Неопределено);
Если ЗначениеЗаполнено(ассДефСтавкаНДС) Тогда
рп[0].СтавкаНДС = ассДефСтавкаНДС;
рп[0].СуммаНДС = рп[0].СуммаПлатежа - (рп[0].СуммаПлатежа) / ((рп[0].СтавкаНДС.Ставка + 100) / 100);
КонецЕсли;
Иначе
Для каждого стз Из адо.РасшифровкаПлатежа Цикл
Если ЗначениеЗаполнено(стз.Документ) И типЗнч(стз.Документ) = Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
апсННДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стз.Документ, "НалогообложениеНДС");
Если апсННДС = Перечисления.ТипыНалогообложенияНДС.НеОблагаетсяНДС Тогда
стз.СтавкаНДС = Справочники.СтавкиНДС.НайтиПоНаименованию("Без НДС");
стз.СуммаНДС = 0;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;

Если адо.ДополнительныеСвойства.Свойство("осСтавкаНДС") Тогда
адо.ДополнительныеСвойства.Удалить("осСтавкаНДС");
КонецЕсли;
КонецПроцедуры

Процедура осСохранитьСтавкуНДС(адо) Экспорт
рп = адо.РасшифровкаПлатежа;
Если рп.Количество() = 1 И Не ЗначениеЗаполнено(рп[0].Документ)
И адо.ВариантЗаполненияРасшифровки = Перечисления.ВариантыЗаполненияРасшифровкиПлатежа.Автоматически Тогда
адо.ДополнительныеСвойства.Вставить("осСтавкаНДС", рп[0].СтавкаНДС);
КонецЕсли;
КонецПроцедуры

После этого можно перевыгрузить документы из БП

Обновлено 06.12.2017 07:06
 
home search