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

Отчеты и Аналитика · 11 мин

Как рассчитать долю стоимости в 1С

Как рассчитать долю стоимости в 1С: формулы, отчёты, формулы в печатных формах и СКД. Разбор для 1С:Бухгалтерии, УТ и ERP с примерами и проверкой результата.

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

Базовая формула везде одинакова: доля = стоимость элемента / итоговая стоимость × 100%. Сложность заключается не в математике, а в том, чтобы правильно получить оба числа из базы 1С и не ошибиться с итогами — например, не включить в знаменатель внутренние обороты или незавершённое производство.

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

Что понимать под долей стоимости и где она нужна

Под долей стоимости обычно понимают отношение части к целому в денежном выражении. Типовые задачи: доля каждой номенклатурной позиции в стоимости закупки, доля статьи затрат в себестоимости продукции, доля склада в общих товарных запасах, доля контрагента в кредиторской задолженности.

Критически важно с самого начала определить базу расчёта — то, что будет в знаменателе. Если вы считаете долю материалов в себестоимости, база — полная себестоимость выпуска за период, а не сумма только материальных затрат. Ошибка в выборе базы — самая частая причина неверных процентов, когда сумма всех долей не даёт 100%.

Расчёт доли через стандартные отчёты

Самый быстрый способ — использовать типовой отчёт с группировкой и настройкой показателей. Например, в 1С:Бухгалтерии откройте «Анализ затрат» или оборотно-сальдовую ведомость по счёту затрат, сгруппируйте по статьям — и сравните суммы с итогом. Многие отчёты на СКД позволяют добавить поле «процент от итога» через настройки.

Порядок действий: откройте нужный отчёт, перейдите в «Настройки» (или «Ещё → Изменить вариант»), на вкладке «Поля» или «Ресурсы» проверьте, есть ли возможность добавить вычисляемое поле. Если отчёт построен на СКД, можно добавить пользовательское поле с выражением деления на итог по группировке.

Если типовой отчёт не даёт процента напрямую, выгрузите данные в табличный документ или Excel и посчитайте долю там: добавьте колонку с формулой «ячейка / итоговая ячейка». Это приемлемо для разового анализа, но для регулярной отчётности лучше настроить расчёт внутри 1С.

Расчёт доли в отчёте на СКД
  1. 1
    Откройте отчёт и сформируйте его, чтобы проверить исходные данные
  2. 2
    Зайдите в «Ещё → Изменить вариант отчёта»
  3. 3
    На вкладке «Пользовательские поля» добавьте поле-выражение: Стоимость / ВычислитьВыражение("Сумма(Стоимость)") * 100
  4. 4
    Добавьте новое поле в структуру отчёта и задайте формат с двумя знаками
  5. 5
    Сформируйте отчёт и проверьте: сумма долей по группе должна давать 100%

Расчёт доли в запросе

Если вы строите собственный отчёт или обработку, долю удобно считать прямо в запросе. Типовой приём — два пакета: сначала вычисляется общий итог, затем он соединяется с детальными данными, и доля получается делением.

Пример логики запроса: первый запрос выбирает сумму стоимости по каждой номенклатуре из регистра (например, «Закупки» или «СебестоимостьТоваров»), второй — общую сумму без группировки. Соединение выполняется без условия (декартово произведение с одним итогом), после чего поле доли вычисляется как Детали.Стоимость / Итоги.ОбщаяСтоимость * 100.

Важный нюанс — защита от деления на ноль. Если за период не было движений, общий итог будет NULL или 0, и запрос вернёт ошибку или пустое значение. Используйте конструкцию ВЫБОР КОГДА Итоги.ОбщаяСтоимость = 0 ТОГДА 0 ИНАЧЕ ... КОНЕЦ или функцию ЕСТЬNULL для итогового поля.

Для дробных значений применяйте ВЫРАЗИТЬ(Результат КАК ЧИСЛО(15,2)), чтобы не получить длинные хвосты после запятой и избежать проблем с отображением в отчёте.

bsl
ВЫБРАТЬ
	Т.Номенклатура,
	СУММА(Т.Стоимость) КАК Стоимость
ПОМЕСТИТЬ Детали
ИЗ РегистрНакопления.Закупки.Обороты(&Нач, &Кон, , ) КАК Т
СГРУППИРОВАТЬ ПО Т.Номенклатура
;
ВЫБРАТЬ
	Д.Номенклатура,
	Д.Стоимость,
	ВЫБОР КОГДА Итог.Сумма = 0 ТОГДА 0
	ИНАЧЕ ВЫРАЗИТЬ(Д.Стоимость / Итог.Сумма * 100 КАК ЧИСЛО(15,2))
	КОНЕЦ КАК ДоляПроцент
ИЗ Детали КАК Д,
	(ВЫБРАТЬ СУММА(Стоимость) КАК Сумма ИЗ Детали) КАК Итог

Расчёт доли программно в модуле

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

Типичный сценарий — распределение косвенных затрат пропорционально базе. Здесь вместо деления на итог используют функцию распределения: сумму к распределению умножают на долю каждой строки. В типовых конфигурациях для этого есть готовые механизмы, например распределение расходов в документах «Распределение затрат» или методы работы с коэффициентами в ERP.

При программном расчёте следите за типами данных: деление целых чисел в 1С даёт дробный результат автоматически, но при присвоении реквизиту с ограниченной разрядностью лишние знаки отсекаются. Если доля нужна для дальнейшего распределения сумм, храните её с точностью минимум 4–6 знаков, иначе накопленная ошибка округления исказит итог.

Расчёт доли в типовых конфигурациях

1С:Бухгалтерия

Для анализа структуры затрат используйте отчёты «Анализ счёта» по счетам 20, 25, 26, 44 с группировкой по статьям затрат. Итог отчёта — база, сумма по каждой статье — числитель. Для регулярного контроля сохраните настройку отчёта с добавленным пользовательским полем процента.

1С:Управление торговлей и ERP

В УТ и ERP для анализа закупок и продаж есть отчёты «Валовая прибыль», «Анализ закупок», ABC/XYZ-анализ. В ABC-анализе доля стоимости считается автоматически — класс A обычно включает позиции, дающие основную часть суммарной стоимости. Для себестоимости выпуска в ERP структуру затрат показывает отчёт «Структура себестоимости» или анализ по статьям калькуляции.

1С:ЗУП

В зарплатных конфигурациях доля стоимости чаще всего означает долю подразделения или статьи финансирования в фонде оплаты труда. Используйте отчёты «Анализ ФОТ» и «Налоги и взносы (сводно)» с группировками — итоговый ФОТ служит базой расчёта.

Способы расчёта доли

Настройка типового отчёта

Быстро и без изменения конфигурации; ограничение — не каждый отчёт позволяет добавить вычисляемое поле

Запрос с двумя пакетами

Гибко, работает в собственных отчётах и СКД; требует навыков языка запросов и обработки деления на ноль

Расчёт в коде

Полный контроль, подходит для распределений и печатных форм; сложнее поддерживать, нужна аккуратность с округлением

Выгрузка в Excel

Подходит для разового анализа; данные быстро устаревают, высок риск ручных ошибок

Проверка корректности расчёта

Главный контроль — сумма всех долей по группе должна равняться 100% (с допустимым отклонением на округление в сотых долях). Если получается, например, 104% или 97%, ищите ошибку в базе расчёта: либо в знаменатель попали лишние суммы, либо часть детальных строк отфильтрована.

Вторая проверка — сверка итога с независимым источником. Общую стоимость закупок сверьте с оборотом по счёту 60 или с отчётом по регистру; себестоимость выпуска — с оборотом счёта 20. Расхождение означает, что отборы в запросе и в отчёте различаются (период, организация, вид движения).

Третья проверка — граничные случаи. Убедитесь, что при пустом периоде отчёт показывает нули, а не ошибку деления, и что строки с нулевой стоимостью дают долю 0%, а не NULL.

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

Как проверить результат

Сумма долей по группе
Норма

100% с отклонением не более 0,01–0,05 п.п. из-за округления

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

Отклонение больше — ошибка в базе расчёта или фильтрах

Итоговая стоимость (знаменатель)
Норма

Совпадает с оборотом счёта или итогом типового отчёта

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

Расходится — различаются отборы по периоду, организации или виду движений

Пустой период
Норма

Отчёт показывает нули, ошибок нет

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

Ошибка деления на ноль или пустая таблица

Строки с нулевой стоимостью
Норма

Доля отображается как 0

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

NULL или пропуск строки

Типичные ошибки и ограничения

Наиболее распространённая ошибка — смешение баз расчёта: доля считается от итога видимых строк отчёта, а отбор скрывает часть данных (например, отрицательные стоимости или сторно). В итоге проценты визуально «не сходятся», хотя формула верна.

Вторая группа ошибок — период и валюта. Если детальные данные взяты за месяц, а итог — за квартал, доли будут занижены. При мультивалютном учёте сравнивать можно только суммы в одной валюте: управленческой, регламентированной или валюте документа — но не вперемешку.

Ограничение самостоятельной доработки: изменение типовых отчётов и модулей требует аккуратности при обновлении конфигурации. Предпочитайте внешние отчёты и расширения — они не затрагивают типовой код и не создают проблем при обновлении.

Типичные ошибки
01
Деление на итог с другими отборами — доли не сходятся к 100%, анализ искажён
02
Отсутствие защиты от деления на ноль — ошибка выполнения отчёта в пустом периоде
03
Округление доли до целых — при распределении сумм теряются копейки, итог не сходится
04
Смешение валют — доли посчитаны по суммам в разных валютах и бессмысленны
05
Правка типового модуля вместо расширения — доработка слетает при обновлении

Частые вопросы

Как в отчёте на СКД вывести процент от итога без программирования?

Используйте пользовательское поле в настройках варианта отчёта: «Ещё → Изменить вариант → Пользовательские поля → Новое поле-выражение». В выражении укажите деление ресурса на функцию ВычислитьВыражение с агрегатом Сумма по общему итогу. Возможность зависит от конкретного отчёта — не во всех типовых вариантах она доступна.

Почему сумма долей получается 99,98% или 100,03%?

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

Как посчитать долю, если в знаменателе может быть ноль?

В запросе оберните деление в конструкцию ВЫБОР КОГДА Итог = 0 ТОГДА 0 ИНАЧЕ деление КОНЕЦ. В коде — проверка «Если ИтогСтоимость = 0 Тогда Доля = 0». Без защиты отчёт завершится ошибкой деления на ноль.

Можно ли рассчитать долю стоимости в печатной форме документа?

Да, в макете печатной формы добавьте параметр и вычисляйте его при выводе строк: сначала суммируйте стоимость всех строк табличной части, затем для каждой строки выведите отношение к сумме. Расчёт выполняется в модуле менеджера документа перед выводом макета.

Чем доля стоимости отличается от доли количества?

Базой служит разный показатель: сумма в деньгах против количества в штуках. Доля дорогой позиции в стоимости обычно выше её доли в количестве. Для ABC-анализа и управления запасами используют именно долю стоимости, так как она отражает вложенные деньги.

Нужно ли дорабатывать конфигурацию для регулярного расчёта доли?

Часто нет: достаточно сохранённой настройки типового отчёта с пользовательским полем или внешнего отчёта на СКД. Доработка оправдана, когда доля должна храниться в базе (например, в регистре) или участвовать в автоматическом распределении затрат.

Итог

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

Доля стоимости = стоимость элемента / общий итог × 100%. Успех расчёта определяется правильным выбором базы: единые отборы, период и валюта у числителя и знаменателя. Всегда добавляйте защиту от деления на ноль и проверяйте, что сумма долей даёт 100%. Для регулярного анализа используйте настройки отчётов или внешние отчёты вместо правки типового кода.