Учет и Финансы · 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). В документах установки цен номенклатуры можно указать процент наценки, и программа вычислит цену продажи по всем позициям разом. Это удобнее, чем править каждую цену вручную, и исключает арифметические ошибки.
Умножение на процент в запросе и встроенном языке
В языке запросов 1С процентный расчёт записывается прямо в выражении поля: ВЫБРАТЬ Продажи.Сумма 20 / 100 КАК СуммаНДС или с параметром: Продажи.Сумма &Ставка / 100. Параметр передаётся через Запрос.УстановитьПараметр("Ставка", 20). Для округления в запросе используйте ВЫРАЗИТЬ(Сумма * &Ставка / 100 КАК ЧИСЛО(15, 2)).
Во встроенном языке код выглядит так:
Процент = 20;
СуммаНДС = Окр(СуммаДокумента * Процент / 100, 2);
СуммаСНДС = СуммаДокумента + СуммаНДС;
Для расчёта «в том числе» формула меняется: СуммаНДС = Окр(СуммаДокумента * Процент / (100 + Процент), 2). Перед изменением кода типовой конфигурации убедитесь, что она снята с полной поддержки осознанно: доработка усложнит обновления. По возможности используйте расширения конфигурации вместо прямой правки модулей.
Выбор способа расчёта под задачу
Разовый расчёт в печатной форме удобнее сделать формулой ячейки табличного документа. Регулярный показатель в отчёте — вычисляемым полем СКД. Расчёт, влияющий на учёт (НДС, скидки, удержания), должен выполняться штатными механизмами документов, а не ручными формулами, иначе данные разойдутся между документами и отчётами.
Как выбрать способ
Контроль результата и частые вопросы
После любого процентного расчёта выполните обратную проверку: разделите полученную часть на исходную сумму и умножьте на 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 раз.
Как безопасно изменить формулу расчёта процента в типовой конфигурации?
Сделайте резервную копию базы, по возможности используйте расширение конфигурации вместо правки типовых модулей и проверьте новый расчёт на копии с контрольным примером. Изменение формул НДС влияет на регистры и декларации, поэтому тестирование обязательно.