Учет и Финансы · 9 мин
Как вычесть процент от суммы в 1С
Как вычесть процент от суммы в 1С: формулы расчёта, работа с НДС и скидками в документах, запросы и встроенный язык. Примеры и типичные ошибки.
Вычесть процент от суммы в 1С приходится в самых разных ситуациях: выделить НДС из цены с налогом, рассчитать скидку постоянному покупателю, определить сумму удержания или агентского вознаграждения. В зависимости от задачи используются разные инструменты — от автоматического расчёта в документе до формул в запросах и встроенном языке.
Ключевой момент, который часто путают: «вычесть процент» и «выделить процент из суммы» — это разные операции с разными формулами. В первом случае от базы отнимают её долю, во втором — из итоговой суммы извлекают уже включённый в неё процент. Ошибка в выборе формулы приводит к расхождениям в учёте, особенно заметным при работе с НДС.
Ниже разобраны обе задачи с точными формулами, способы выполнить расчёт штатными средствами типовых конфигураций, в консоли кода и в запросах, а также способы проверить результат.
Две разные задачи: вычесть процент и выделить его из суммы
Первая задача — уменьшение суммы на заданный процент. Например, цена товара 10 000 рублей, нужно применить скидку 15 %. Расчёт: 10 000 × (1 − 15/100) = 10 000 × 0,85 = 8 500 рублей. Размер самой скидки при этом составляет 1 500 рублей.
Вторая задача — выделение процента, который уже сидит внутри суммы. Типичный пример — НДС 20 %, включённый в цену. Здесь простое умножение на 0,2 даст неверный результат: 12 000 × 0,2 = 2 400, а правильная сумма налога — 12 000 × 20/120 = 2 000 рублей. Формула выделения: S × P / (100 + P).
Признак того, какая формула нужна: если процент ещё не применён и его требуется отнять от базы — используйте первую формулу. Если процент уже входит в итоговую сумму (формулировки «в том числе», «с НДС», «цена с учётом скидки») — используйте вторую.
Расчёт в документах: скидки и наценки
В типовых конфигурациях (Управление торговлей, Комплексная автоматизация, ERP) скидки рассчитываются автоматически. В документе продажи достаточно указать процент скидки в колонке «% скидки» табличной части — программа сама вычтет его из цены и пересчитает сумму строки, итог документа и сумму НДС.
Если скидка применяется ко всему документу, используйте механизм автоматических скидок: раздел настроек маркетинга или продаж (в зависимости от конфигурации), где задаются условия предоставления и размер скидки. Программа применит её при проведении расчёта по кнопке «Рассчитать скидки» или автоматически при подборе товаров.
Для разового ручного расчёта без настройки механизмов можно прямо в ячейке табличной части ввести формулу: поля сумм в 1С поддерживают арифметические выражения. Например, в поле «Сумма» введите 10000*0.85 и нажмите Enter — в поле запишется результат 8 500.
- 1Откройте документ и заполните табличную часть товарами с ценами
- 2В колонке «% скидки» укажите процент для нужных строк
- 3Убедитесь, что суммы строк и итог документа пересчитались
- 4Проверьте, что НДС пересчитался от суммы уже со скидкой
- 5Проведите документ и сверьте итог с печатной формой
Выделение НДС из суммы в документах
Самая частая практическая задача «вычесть процент» — это выделить НДС из суммы, в которую налог уже включён. В документах поступления и реализации за это отвечает настройка «Цена включает НДС» (флажок в шапке документа или в договоре, в зависимости от конфигурации).
Когда флажок установлен, программа считает введённую сумму итоговой и выделяет налог по формуле Сумма × Ставка / (100 + Ставка). Когда снят — налог начисляется сверху: Сумма × Ставка / 100, а итог увеличивается. Переключение флажка после заполнения табличной части вызывает пересчёт всех строк, поэтому менять его нужно до ввода данных или с контролем итогов после.
Проверить расчёт просто: сумма без НДС плюс сумма НДС должны давать итог документа. Если расходятся на копейки — это округление по строкам, о нём ниже.
Расчёт формулой в консоли кода и встроенном языке
Если нужно выполнить разовый расчёт вне документа, удобна консоль кода (внешняя обработка, доступная на диске ИТС и в типовых поставках инструментов разработчика). В ней можно выполнить любое выражение встроенного языка и сразу увидеть результат.
Примеры выражений для вычитания и выделения процента:
// Вычесть 15 % из 10000
Результат = 10000 * (1 - 15/100); // 8500
// Выделить НДС 20 % из суммы 12000
НДС = 12000 * 20 / 120; // 2000
СуммаБезНДС = 12000 - НДС; // 10000
Для денежных расчётов всегда округляйте результат до двух знаков функцией Окр(): Окр(Сумма * Ставка / (100 + Ставка), 2). Без округления в промежуточных вычислениях накапливаются копеечные расхождения, которые потом всплывают при сверке с выписками и счетами-фактурами.
Вычитание процента в запросах и отчётах
В языке запросов 1С арифметические операции поддерживаются напрямую, поэтому вычесть процент можно прямо в тексте запроса. Это удобно для отчётов, где нужно показать сумму со скидкой или сумму без налога по всем документам за период.
ВЫБРАТЬ
Товары.Номенклатура,
Товары.Сумма,
Товары.Сумма * (1 - &ПроцентСкидки / 100) КАК СуммаСоСкидкой,
Товары.Сумма * 20 / 120 КАК СуммаНДС
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
Параметр &ПроцентСкидки передаётся в запрос через Запрос.УстановитьПараметр(). В СКД процент можно вынести в параметры отчёта, чтобы пользователь менял его без редактирования схемы. Учтите: в запросах нет функции округления, поэтому округляйте результат уже при выводе — в вычисляемом поле СКД или при обработке выборки.
Если отчёт показывает сумму без НДС, а бухгалтерия сверяет по проводкам, считайте налог от каждой строки документа, а не от итога: сумма НДС, посчитанная от общего итога, почти всегда расходится с суммой построчных расчётов на копейки из-за округления.
Округление и типичные ошибки при расчётах
Главный источник расхождений — порядок округления. Если скидка применяется к итогу документа, а не к каждой строке, сумма строк со скидкой не сойдётся с итогом со скидкой. Выбирайте один принцип и придерживайтесь его во всех расчётах и печатных формах.
Вторая частая ошибка — использование формулы вычитания там, где нужно выделение. Проверка проста: после выделения НДС прибавьте его обратно к сумме без налога. Должна получиться исходная сумма. Если не получилась — формула выбрана неверно.
Проверка результата и границы самостоятельной работы
Надёжный способ проверки — обратная операция. Вычли 15 % из 10 000 и получили 8 500? Проверьте: 8 500 / 0,85 = 10 000. Выделили НДС 2 000 из 12 000? Проверьте: 10 000 × 1,2 = 12 000. Обратный расчёт выявляет ошибку формулы мгновенно.
Если расчёт влияет на регламентированную отчётность — НДС, удержания, налоги с зарплаты — не заменяйте штатные механизмы конфигурации ручными формулами и внешними обработками. Ручной расчёт допустим для управленческих целей и разовых прикидок, но проводки и декларации должны формироваться типовыми средствами, которые учитывают актуальные требования законодательства.
Частые вопросы
Как быстро вычесть процент без кода, прямо в поле документа?
В числовых полях табличных частей 1С работают арифметические выражения. Введите в поле суммы выражение вида 10000*0.85 и нажмите Enter — программа вычислит и подставит результат. Это удобно для разовых корректировок без калькулятора.
Почему НДС, посчитанный как 20 % от суммы с налогом, не совпадает с данными 1С?
Потому что налог уже включён в сумму, и его нужно выделять по формуле Сумма × 20/120, а не начислять сверху. Умножение на 0,2 корректно только для суммы без НДС, к которой налог добавляется.
Как применить скидку сразу ко всем строкам документа?
В типовых конфигурациях используйте кнопку расчёта скидок в документе или выделите все строки табличной части и задайте процент через групповое изменение реквизитов. Для регулярных скидок настройте механизм автоматических скидок в разделе маркетинга или продаж.
От чего считать скидку: от суммы с НДС или без?
Обычно скидка применяется к цене строки, после чего НДС пересчитывается от уже уменьшенной суммы — так делают типовые документы. Главное — зафиксировать выбранный порядок в договоре и настройках, чтобы расчёт в 1С совпадал с условиями для контрагента.
Можно ли вычесть процент в отчёте, не изменяя данные документов?
Да. В СКД добавьте вычисляемое поле с формулой вида Сумма * (1 - Процент / 100) или используйте выражение в ресурсе отчёта. Данные базы при этом не меняются — расчёт выполняется только при формировании отчёта.
Почему сумма со скидкой по строкам не сходится с итогом на копейки?
Из-за округления: скидка по каждой строке округляется до копеек, и сумма округлённых значений отличается от округлённой скидки от итога. Это нормальная ситуация; важно, чтобы печатная форма и проводки использовали один и тот же принцип расчёта.
Что важно запомнить
Вычитание процента — формула S × (1 − P/100), выделение включённого процента — S × P / (100 + P). В документах 1С скидки и НДС считаются автоматически; ручные формулы применяйте для разовых расчётов и отчётов, всегда округляйте до копеек и проверяйте результат обратной операцией.