Расчёт процентов в 1С: от ставок в документах до долей в отчётах
Содержание
Процент от суммы в 1С считается формулой Сумма * Процент / 100. Где-то программа подставляет результат сама — ставка НДС в накладной, скидка по условию, районный коэффициент в начислении, — а где-то процент считаете вы: в вычисляемом поле отчёта, в калькуляторе числового поля или прямо в формуле начисления.
Разберём все три слоя: как проценты работают в документах, как собрать долю и наценку в отчёте на системе компоновки данных (СКД), почему вылезают расхождения в копейку и как их убрать. Примеры — для 1С 8.3 с интерфейсом «Такси» (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11); где путь различается, это отмечено.
Где в документах процент считается сам
В типовых конфигурациях большинство процентов зашиты в реквизиты документов, и пересчёт делается автоматически при проведении.
- 🧾 Ставка НДС. В табличной части реализаций, поступлений и счетов-фактур есть колонка
% НДС. Выбираете значение из справочника ставок (20%,10%,0%, «Без НДС»), сумма налога считается по строке сама. - 🏷 Скидки и наценки. В Управлении торговлей и Рознице скидки задаются в процентах через механизм условий и назначаются автоматически. В Бухгалтерии скидку обычно вносят вручную в колонку
% скидкиили уменьшают цену. - 📈 Типы цен с наценкой. В УТ вид цены можно задать как процент наценки от другой цены (например, «розничная = закупочная + 30%»). В Бухгалтерии аналог — тип цен с процентом.
- 💱 Проценты по займам и кредитам. Документ начисления процентов считает сумму от тела долга по ставке и периоду.
Если нужно разово посчитать процент прямо в числовом поле документа, не выходя из формы, — в правом углу поля есть кнопка калькулятора. Введите выражение вида 10000 * 20 / 100, нажмите Enter, результат подставится в реквизит.
Важное различие по конфигурациям — в терминах. В Бухгалтерии настройка называется «Типы цен», в Управлении торговлей — «Виды цен». Это одно и то же по смыслу, но кнопки и разделы разные, не путайте при переносе инструкций.
Процент от суммы, наценка и выделение НДС: три базовые формулы
Это те случаи, когда считать приходится руками — в калькуляторе, в Excel или в своей обработке. Все три сводятся к школьной арифметике.
Процент от суммы. Сколько составляет 18% от 50 000:
Результат = 50000 * 18 / 100; // 9000
Наценка. Закупили за 500 ₽, наценка 30% — цена продажи:
Цена = 500 * (100 + 30) / 100; // 650, из них наценка 150
Выделить налог из суммы «в том числе». Классическая задача: в кассовом чеке 12 000 ₽ с НДС 20%, сколько тут налога. Процент берётся не от всей суммы, а по формуле «ставка ÷ (100 + ставка)»:
НДС = 12000 * 20 / (100 + 20); // 2000
СуммаБезНДС = 12000 - 2000; // 10000
Проверка: 10 000 + 20% = 12 000. Частая ошибка — взять 20% от полной суммы (12 000 × 20 / 100 = 2400) и получить завышенный налог. Налог «изнутри» суммы всегда считается через знаменатель 100 + ставка.
Ещё две формулы выручают в сверках и отчётах:
Увеличить или уменьшить на процент. Цена 800 ₽, подняли на 5%: 800 * (100 + 5) / 100 = 840. Снизили на 5%: 800 * (100 - 5) / 100 = 760.
Процент изменения между двумя числами (динамика выручки, отклонение от плана): (Новое - Старое) / Старое * 100. Было 200 000, стало 250 000 → рост (250000 - 200000) / 200000 * 100 = 25%. Отрицательный результат означает снижение.
Доли и наценки в отчётах на СКД
Когда процент нужен не в одной ячейке, а в отчёте по всей базе — долю каждого товара в выручке, процент выполнения плана, рентабельность, — его собирают в системе компоновки данных. Готовить отчёт удобнее в расширении конфигурации или во внешнем отчёте, чтобы не менять типовую.
Процент к итогу в СКД делается через вычисляемое поле с функцией ВычислитьВыражение. Она берёт значение ресурса не в текущей строке, а в указанной группировке — например, в общем итоге:
// Доля строки в общей выручке, %
Продажи / ВычислитьВыражение("Сумма(Продажи)", "ОбщийИтог") * 100
Чтобы считать долю внутри своей группы (доля товара в его товарной группе), вместо "ОбщийИтог" указывают нужный уровень группировки.
Порядок действий в конструкторе отчёта:
- На закладке «Вычисляемые поля» добавьте поле
ДоляПродажс выражением выше. - На закладке «Ресурсы» включите его с типом расчёта — обычно без агрегации, через выражение.
- На закладке «Параметры» и в оформлении задайте формат:
ЧДЦ=2(две цифры после запятой) и знак%.
Деление в вычисляемом поле падает в ошибку, если знаменатель окажется нулём (нет продаж за период). Защитите выражение: Продажи / ВЫБОР КОГДА Итог = 0 ТОГДА 1 ИНАЧЕ Итог КОНЕЦ или проверяйте итог в запросе.
Для наценки и рентабельности принцип тот же: добавляете поле выручки и поле себестоимости, а процент считаете как (Выручка - Себестоимость) / Выручка * 100.
Формулы в своих отчётах и обработках
Если типовых полей не хватает, процент можно вычислить кодом — в модуле внешней обработки или в запросе.
В запросе. Долю можно посчитать прямо в тексте запроса через вложенный выбор с общей суммой, но проще оставить проценты вычисляемым полям СКД (см. выше) — запрос быстрее и читается легче.
В обработке на встроенном языке. Когда нужно пробежать по документам и пересчитать, работает обычный цикл:
Для Каждого Строка Из ТаблицаТоваров Цикл
Строка.СуммаСкидки = Окр(Строка.Сумма * Строка.ПроцентСкидки / 100, 2);
Строка.СуммаИтого = Строка.Сумма - Строка.СуммаСкидки;
КонецЦикла;
Здесь Окр(..., 2) сразу приводит результат к копейкам — об округлении ниже.
Выделять сумму в ячейках результата не обязательно собирать отдельным полем: в готовом отчёте или табличном документе выделите мышью диапазон чисел — сумма, количество и среднее появятся в строке состояния внизу окна.
Округление процентов: функция Окр и расхождения в копейку
Проценты почти всегда дают дробь, которую нужно свернуть до копеек. За это отвечает функция Окр:
Окр(Число, РазрядностьДробнойЧасти, Режим)
Окр(1234.567, 2)→1234.57— до двух знаков.Окр(1234.567, 0)→1235— до целого.
Третий параметр решает спорный случай «ровно половина». Задавайте его явно, не полагаясь на значение по умолчанию:
Режим = 0— значение2.5округляется к2(к меньшему по модулю).Режим = 1— значение2.5округляется к3(к большему по модулю).
Для денег в России принято округление к большему при половине (Режим = 1), но в типовых документах это уже настроено — вручную округлять суммы НДС и скидок обычно не нужно.
Не пытайтесь «поправить» копеечные расхождения, вручную меняя суммы в проведённых документах рабочей базы. Это ломает соответствие с регистрами. Расхождение округления — штатное поведение, его регулируют настройкой, а не правкой чисел.
Проценты в зарплате: надбавки, премии и удержания
В Зарплате и управлении персоналом (ЗУП 3.1) и в Бухгалтерии с модулем зарплаты проценты вшиты в начисления и удержания через формулы с показателями.
Типовые «процентные» начисления:
| Что считается | Как задаётся |
|---|---|
| Районный коэффициент | Процент к начислениям: оклад 40 000 × 1,15 = 46 000, надбавка 6 000 |
| Северная надбавка | Процент к окладу, растёт со стажем |
| Премия в процентах от оклада | Начисление с формулой Оклад * РазмерПремииПроцентом / 100 |
| НДФЛ | Удержание по ставке (базовая 13%, с 2025 — прогрессивная шкала) |
| Страховые взносы | По единому тарифу; для субъектов МСП пониженный тариф на часть сверх МРОТ |
Своё процентное начисление создаётся так:
- Откройте
Настройка → Начисления(в ЗУП) илиЗарплата и кадры → Настройки зарплаты → Начисления(в Бухгалтерии). - Создайте начисление, на закладке с формулой выберите расчёт по произвольной формуле.
- Добавьте показатель для процента (например, числовой показатель
РазмерПремииПроцентом) и соберите формулуОклад * РазмерПремииПроцентом / 100. - Значение процента вводится при начислении — в документе или в плановых начислениях сотрудника.
Процентные начисления и удержания есть в конфигурациях с расчётом зарплаты (ЗУП, Бухгалтерия, ERP). В «чистых» Управлении торговлей и Рознице модуля зарплаты нет — там таких формул не будет.
Напоминание по терминам: с 2023 года взносы на травматизм и прочие администрирует СФР (бывший ФСС) — на саму механику расчёта процента это не влияет, но отчётность изменилась.
Готовые расчёты процентов по зарплате удобно прикинуть калькулятором, не открывая базу:
Массовый пересчёт: обработки и выгрузка
Когда процент надо применить разом к сотням строк — переоценить остатки, пересчитать скидки, начислить проценты по графику, — есть несколько путей.
- 🔁 Групповое изменение реквизитов. Подходит, если нужно проставить один процент (например, ставку) в выделенные объекты списка. Для расчёта по формуле не годится.
- ⚙️ Внешняя обработка. Пишется цикл по нужным документам или строкам (пример выше), результат с
Окр(..., 2). Самый гибкий вариант для разовой или регулярной задачи. - 📊 Выгрузка в Excel. Любой отчёт или список выгружается в табличный документ и далее в Excel (
Главное меню → Файл → Сохранить как), где процент считается формулой ячейки. Удобно для прикидок и сверок, но обратно в базу Excel не вернёт.
Регулярный процентный расчёт (ежемесячная переоценка, начисление процентов) лучше оформить внешней обработкой с запуском по расписанию через регламентное задание, а не считать руками каждый период.
Перед запуском массового пересчёта в рабочей базе:
Частые вопросы
Почему НДС в документе на копейку не сходится с суммой × ставка?
Как в 1С выделить НДС из суммы с налогом?
100 + ставка: для ставки 20% это Сумма × 20 / 120. От 12 000 ₽ налог равен 2000 ₽. Брать 20% от всей суммы нельзя — получится завышенный налог.Можно ли посчитать процент прямо в поле документа?
50000 * 18 / 100. Результат подставится в реквизит после Enter.Как в отчёте показать долю каждой строки в процентах?
ВычислитьВыражение: Продажи / ВычислитьВыражение("Сумма(Продажи)", "ОбщийИтог") * 100 и задайте формат с двумя знаками и символом процента.Почему доли в отчёте в сумме не дают ровно 100%?
Источники
- Налоговый кодекс РФ, ст. 164 (ставки НДС)
- Налоговый кодекс РФ, ст. 224 (ставки НДФЛ)