- В этой теме 1 ответ, 2 участника, последнее обновление 9 часов, 5 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как рассчитать сумму НДС обратным счётом с учётом флага СуммаВключаетНДС?
обратным счетом посчитать СуммуНДС от суммы СНДС с учетом флажка СуммаВключаетНДС
Да, посчитать сумму НДС обратным счётом от суммы с НДС с учётом флажка «СуммаВключаетНДС» можно, используя разные формулы в зависимости от значения этого флажка.
Если СуммаВключаетНДС равна Истина (то есть сумма уже включает НДС), то сумма НДС вычисляется как разница между общей суммой и суммой без НДС, что соответствует формуле:
|
1 2 |
КонстантаНДС = 100; СуммаНДС = СуммаСНДС - (СуммаСНДС / (1 + СтавкаНДС / КонстантаНДС)); |
Если же СуммаВключаетНДС равна Ложь (то есть сумма указана без НДС), то сумма НДС считается просто как произведение суммы на ставку НДС в процентах:
|
1 |
СуммаНДС = СуммаСНДС * (СтавкаНДС / 100); |
В коде 1С это реализовано функцией, которая проверяет флажок и применяет нужную формулу, а затем округляет результат до копеек:
|
1 2 3 4 5 6 7 8 9 10 |
Функция РассчитатьСуммуНДС(СуммаСНДС, СтавкаНДС, СуммаВключаетНДС) Если СуммаВключаетНДС Тогда // Сумма включает НДС, считаем обратным счётом СуммаНДС = СуммаСНДС - (СуммаСНДС / (1 + СтавкаНДС / 100)); Иначе // Сумма без НДС, считаем напрямую СуммаНДС = СуммаСНДС * (СтавкаНДС / 100); КонецЕсли; Возврат Округлить(СуммаНДС, 2); // Округление до копеек КонецФункции |
Пример использования функции с суммой 1000 рублей и ставкой НДС 20%:
|
1 2 3 |
КонстантаСумма = 1000; КонстантаНДС = 20; РассчитатьСуммуНДС(КонстантаСумма, КонстантаНДС, Истина); |
Таким образом, функция корректно возвращает сумму НДС, содержащуюся в указанной сумме с учётом того, включён ли НДС в эту сумму или нет.