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

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

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

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

  1. // Зачет долгов. Авто
  2. Если РежимЗаписи = РежимЗаписиДокумента.Проведение И
  3. ВариантЗаполненияРасшифровки = Перечисления.ВариантыЗаполненияРасшифровкиПлатежа.Автоматически И
  4. ВидОперации = Перечисления.ВидыОперацийРасходСоСчета.Поставщику Тогда
  5.  
  6. РасшифровкаПлатежа.Очистить();
  7. ЗаполнитьРасшифровкуПлатежаАвтоЗачетДолгов();
  8.  
  9. КонецЕсли;
  10. // Конец Зачет долгов. Авто
 

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

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

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

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


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

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

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

  1. Процедура осОбработатьРасшифровкуПлатежа_СтавкаНДС(адо) Экспорт
  2. бОбрабатываем = Ложь;
  3. Если (ТипЗнч(адо) = Тип("ДокументОбъект.РасходИзКассы") ИЛИ ТипЗнч(адо) = Тип("ДокументОбъект.РасходСоСчета"))
  4. И адо.ХозяйственнаяОперация = Справочники.ХозяйственныеОперации.Поставщику Тогда
  5. бОбрабатываем = Истина;
  6. КонецЕсли;
  7.  
  8. Если бОбрабатываем Тогда
  9. // обрабатывает расшифроовку платежа в документах расход со счета, расходный ордер
  10. рп = адо.РасшифровкаПлатежа;
  11. Если рп.Количество() = 1 И Не ЗначениеЗаполнено(рп[0].Документ)
  12. И адо.ВариантЗаполненияРасшифровки = Перечисления.ВариантыЗаполненияРасшифровкиПлатежа.Автоматически Тогда
  13. ассДефСтавкаНДС = Оквита.ПолучитьСвойство(адо.ДополнительныеСвойства, "осСтавкаНДС", Неопределено);
  14. Если ЗначениеЗаполнено(ассДефСтавкаНДС) Тогда
  15. рп[0].СтавкаНДС = ассДефСтавкаНДС;
  16. рп[0].СуммаНДС = рп[0].СуммаПлатежа - (рп[0].СуммаПлатежа) / ((рп[0].СтавкаНДС.Ставка + 100) / 100);
  17. КонецЕсли;
  18. Иначе
  19. Для 1/>каждого стз Из адо.РасшифровкаПлатежа Цикл
  20. Если ЗначениеЗаполнено(стз.Документ) И типЗнч(стз.Документ) = Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
  21. апсННДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стз.Документ, "НалогообложениеНДС");
  22. Если апсННДС = Перечисления.ТипыНалогообложенияНДС.НеОблагаетсяНДС Тогда
  23. стз.СтавкаНДС = Справочники.СтавкиНДС.НайтиПоНаименованию("Без НДС");
  24. стз.СуммаНДС = 0;
  25. КонецЕсли;
  26. КонецЕсли;
  27. КонецЦикла;
  28. КонецЕсли;
  29. КонецЕсли;
  30.  
  31. Если адо.ДополнительныеСвойства.Свойство("осСтавкаНДС") Тогда
  32. адо.ДополнительныеСвойства.Удалить("осСтавкаНДС");
  33. КонецЕсли;
  34. КонецПроцедуры
  35.  
  36. Процедура осСохранитьСтавкуНДС(адо) Экспорт
  37. рп = адо.РасшифровкаПлатежа;
  38. Если рп.Количество() = 1 И Не ЗначениеЗаполнено(рп[0].Документ)
  39. И адо.ВариантЗаполненияРасшифровки = Перечисления.ВариантыЗаполненияРасшифровкиПлатежа.Автоматически Тогда
  40. адо.ДополнительныеСвойства.Вставить("осСтавкаНДС", рп[0].СтавкаНДС);
  41. КонецЕсли;
  42. КонецПроцедуры
 


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

Обновлено 24.12.2017 06:21
 
home search