К статье
Практический материал

Учет и Финансы · 9 мин

Как умножить на процент в 1С: формулы, НДС, наценки и скидки

Как умножить сумму на процент в 1С: формулы в табличных документах, расчёт НДС, наценка и скидка в документах, выражения в запросах и встроенном языке.

Задача умножить сумму на процент возникает в 1С постоянно: расчёт НДС, торговая наценка, скидка покупателю, начисление бонуса, удержание алиментов. В зависимости от того, где выполняется расчёт — в табличном документе, в строке документа, в запросе или в коде на встроенном языке, — синтаксис и порядок действий различаются. Ниже разобраны все основные сценарии с конкретными формулами.

Ключевой момент, который нужно понять до начала работы: в 1С процент — это не самостоятельный тип данных, а обычное число. Значение 18% в расчётах записывается как 0.18 или как 18 с последующим делением на 100. Ошибки чаще всего возникают именно из-за путаницы между «процентами как числом» и «долей».

Базовая формула умножения на процент

Универсальная формула одинакова для всех инструментов 1С: Результат = Сумма Процент / 100. Например, чтобы найти 20% от 15000, вычисляется выражение 15000 20 / 100 = 3000. Если процент заведомо записан как доля (0.2), деление на 100 не нужно: 15000 * 0.2 = 3000.

Важно различать три разные операции, которые пользователи часто смешивают: найти процент от суммы (умножение), увеличить сумму на процент (Сумма (1 + Процент / 100)) и выделить процент из суммы, где он уже включён (Сумма Процент / (100 + Процент)). Третий вариант — типовой расчёт НДС «сверху» и «в том числе», и путаница между ними приводит к расхождениям в учёте.

Умножение на процент в табличном документе (макете и отчёте)

В табличном документе 1С, аналогичном электронной таблице, расчёт выполняется формулой в ячейке. Откройте свойства ячейки, установите «Содержимое» — «Формула» и введите выражение, например: =B2*C2/100, где B2 — сумма, C2 — процент. Результат пересчитывается автоматически при изменении исходных ячеек.

Если отчёт строится на СКД (системе компоновки данных), процентный расчёт задаётся через вычисляемое поле. На закладке «Вычисляемые поля» добавьте поле с выражением Сумма * Ставка / 100 и выведите его в ресурсы или в настройки отчёта. Такой подход предпочтительнее ручных формул: вычисляемое поле участвует в группировках и итогах корректно.

Округление результата

При умножении на процент почти всегда появляются копейки. В формулах табличного документа используйте функцию округления макета, а в коде и СКД — Окр(Сумма * Процент / 100, 2). Округлять нужно конечный результат, а не промежуточные значения, иначе сумма по строкам не сойдётся с итогом документа.

Расчёт НДС: умножение на ставку в документах

В типовых конфигурациях (Управление торговлей, Бухгалтерия предприятия, ERP) НДС умножается на сумму автоматически. В строке документа укажите ставку НДС в колонке «% НДС» — программа сама рассчитает сумму налога по формуле Сумма Ставка / 100 либо Сумма Ставка / (100 + Ставка), если цена включает НДС. Переключение режима выполняется флагом «Сумма включает НДС» в шапке документа.

Если нужно проверить расчёт вручную, используйте контрольные формулы. Для ставки 20%: НДС сверху = Сумма 0.2; НДС в том числе = Сумма 20 / 120. Для ставки 10%: НДС в том числе = Сумма * 10 / 110. Расхождение ручного расчёта с программой больше чем на копейку по строке — повод проверить флаг «Сумма включает НДС» и ставку в строке.

Контрольные точки

Как проверить расчёт НДС

Флаг «Сумма включает НДС»
Норма

Флаг соответствует тому, как заданы цены

Тревожный признак

Цены с НДС, а флаг снят — налог посчитается сверху и завысит итог

Сумма НДС по строке
Норма

Равна Сумма * Ставка / 100 с округлением до копеек

Тревожный признак

Отличается более чем на 0.01 — проверьте ставку и режим расчёта

Итоговый НДС документа
Норма

Равен сумме НДС по строкам

Тревожный признак

Пересчитан вручную от итога и не совпадает со строками

Наценка и скидка: умножение на процент в торговых документах

Ручная скидка в документе продажи задаётся в процентах: выделите строки, нажмите кнопку «Цены и скидки» (или аналогичную в вашей конфигурации) и укажите процент. Программа умножит цену каждой строки на (1 − Процент / 100) и пересчитает сумму. Автоматические скидки настраиваются в разделе маркетинга и срабатывают по условиям без ручного ввода.

Наценка при поступлении товара рассчитывается обратным умножением: Цена продажи = Цена закупки * (1 + Наценка / 100). В документах установки цен номенклатуры можно указать процент наценки, и программа вычислит цену продажи по всем позициям разом. Это удобнее, чем править каждую цену вручную, и исключает арифметические ошибки.

Типичные ошибки
01
Скидка 20% посчитана как умножение на 0.2 вместо 0.8 — клиенту выставляется пятая часть суммы вместо суммы со скидкой
02
НДС «в том числе» посчитан как Сумма <em> 20 / 100 вместо Сумма </em> 20 / 120 — налог завышен
03
Процент введён как 0.2, а формула делит на 100 — результат занижен в 100 раз
04
Округление применено к цене до умножения на количество — итог по строке не сходится с суммой

Умножение на процент в запросе и встроенном языке

В языке запросов 1С процентный расчёт записывается прямо в выражении поля: ВЫБРАТЬ Продажи.Сумма 20 / 100 КАК СуммаНДС или с параметром: Продажи.Сумма &Ставка / 100. Параметр передаётся через Запрос.УстановитьПараметр("Ставка", 20). Для округления в запросе используйте ВЫРАЗИТЬ(Сумма * &Ставка / 100 КАК ЧИСЛО(15, 2)).

Во встроенном языке код выглядит так:

Процент = 20;

СуммаНДС = Окр(СуммаДокумента * Процент / 100, 2);

СуммаСНДС = СуммаДокумента + СуммаНДС;

Для расчёта «в том числе» формула меняется: СуммаНДС = Окр(СуммаДокумента * Процент / (100 + Процент), 2). Перед изменением кода типовой конфигурации убедитесь, что она снята с полной поддержки осознанно: доработка усложнит обновления. По возможности используйте расширения конфигурации вместо прямой правки модулей.

Выбор способа расчёта под задачу

Разовый расчёт в печатной форме удобнее сделать формулой ячейки табличного документа. Регулярный показатель в отчёте — вычисляемым полем СКД. Расчёт, влияющий на учёт (НДС, скидки, удержания), должен выполняться штатными механизмами документов, а не ручными формулами, иначе данные разойдутся между документами и отчётами.

Маршрут решения

Как выбрать способ

Нужен разовый расчёт в макете или печатной формеИспользуйте формулу ячейки табличного документа =Сумма*Процент/100
Показатель нужен в отчёте с группировками и итогамиДобавьте вычисляемое поле в СКД с выражением Сумма * Ставка / 100
Расчёт влияет на учёт: НДС, скидки, удержанияИспользуйте штатные механизмы документов и ставок, не правьте формулы вручную
Нужна массовая обработка данныхНапишите запрос с выражением и параметром ставки, округлите через ВЫРАЗИТЬ

Контроль результата и частые вопросы

После любого процентного расчёта выполните обратную проверку: разделите полученную часть на исходную сумму и умножьте на 100 — должен получиться исходный процент. Для НДС сверьте итог документа с суммой по строкам, для скидок — цену до и после. Такая проверка занимает секунды и отлавливает большинство ошибок с делением на 100 и неверным режимом «в том числе».

Итог

Что важно запомнить

Процент в 1С — обычное число, базовая формула: Сумма * Процент / 100. Различайте три операции: найти процент от суммы, увеличить на процент и выделить процент из суммы. Учётные расчёты (НДС, скидки) выполняйте штатными механизмами документов, а результат всегда проверяйте обратным делением.

Как в 1С выделить НДС из суммы, в которую он уже включён?

Используйте формулу Сумма Ставка / (100 + Ставка). Для ставки 20% это Сумма 20 / 120, для 10% — Сумма * 10 / 110. В документах тот же результат даёт установленный флаг «Сумма включает НДС» — программа пересчитает налог автоматически.

Почему НДС по итогу документа не совпадает с суммой НДС по строкам?

Потому что налог считается и округляется до копеек отдельно в каждой строке, а не от общего итога. Расхождение в несколько копеек — норма. Если разница больше, проверьте ставки и флаг «Сумма включает НДС» в строках.

Как задать скидку в процентах сразу на весь документ продажи?

Выделите все строки табличной части, откройте «Цены и скидки» (в разных конфигурациях кнопка может называться «Скидки» или находиться в меню «Ещё») и укажите процент скидки. Программа умножит цену каждой строки на (1 − Процент / 100) и пересчитает суммы и НДС.

Можно ли в запросе 1С округлить результат умножения на процент?

Да, через приведение типа: ВЫРАЗИТЬ(Сумма * Ставка / 100 КАК ЧИСЛО(15, 2)). Это округлит результат до двух знаков. Во встроенном языке для той же цели используется функция Окр(Значение, 2).

Процент введён как 0.2, а формула делит на 100 — почему результат неверный?

Значение 0.2 — это уже доля, а не процент. Умножайте сумму на 0.2 напрямую без деления на 100, либо храните процент как 20 и делите на 100. Смешивание двух подходов занижает или завышает результат ровно в 100 раз.

Как безопасно изменить формулу расчёта процента в типовой конфигурации?

Сделайте резервную копию базы, по возможности используйте расширение конфигурации вместо правки типовых модулей и проверьте новый расчёт на копии с контрольным примером. Изменение формул НДС влияет на регистры и декларации, поэтому тестирование обязательно.