6 мифов о дашбордах и KPI в 1С, мешающих видеть реальность

6 мифов о дашбордах и KPI в 1С, мешающих видеть реальность

Коротко: Большинство руководителей уверены, что дашборд в 1С — это просто красивые графики, а KPI считаются автоматически и всегда корректно. На практике 6 устойчивых мифов приводят к тому, что цифры на экране расходятся с реальностью на 15–40%. В этой статье разбираем каждый миф с техническими деталями и показываем, как настроить систему правильно.

Почему дашборды в 1С так часто врут руководителю?

Руководитель открывает утром монитор, смотрит на зелёные цифры дашборда и принимает решение о запуске новой акции. Через неделю выясняется, что выручка была посчитана с задвоением, склад отображал виртуальные остатки, а маржа рассчитывалась без учёта возвратов. Знакомая ситуация? По данным внутренних аудитов, которые проводят консультанты на найти разработчика 1С, в 7 из 10 внедрений дашборды содержат хотя бы одну системную ошибку в методологии расчёта.

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

Миф 1. «Дашборд в 1С строится один раз и работает вечно»

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

Почему дашборд «протухает»?

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

  • Выручка на дашборде не совпадает с отчётом «Продажи» более чем на 1–2%
  • Остатки товаров отличаются от складской ведомости
  • Показатели рентабельности не учитывают новые статьи затрат, добавленные за последний год
  • Фильтры по организациям или складам работают некорректно после реструктуризации

Как это выглядит в коде 1С?

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


// НЕПРАВИЛЬНО: запрос без параметра периода
// Такой запрос вернёт остатки на ТЕКУЩИЙ момент,
// а не на дату, выбранную пользователем в дашборде
Запрос = Новый Запрос;
Запрос.Текст =
	"ВЫБРАТЬ
	|	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	|	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
	|ИЗ
	|	РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки";

// ПРАВИЛЬНО: передаём параметр периода из настроек дашборда
Запрос = Новый Запрос;
Запрос.Текст =
	"ВЫБРАТЬ
	|	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	|	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
	|ИЗ
	|	РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, ) КАК ТоварыНаСкладахОстатки";

// Параметр передаётся из настроек компоновки или из реквизита формы
Запрос.УстановитьПараметр("ДатаОстатков", КонецДня(НастройкиДашборда.ДатаКонца));

Результат = Запрос.Выполнить();

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

Миф 2. «KPI считается автоматически — достаточно нажать кнопку»

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

Где чаще всего прячется ошибка методологии?

Самые распространённые методологические ошибки в расчёте KPI:

  1. Выручка вместо маржи. Менеджеры мотивируются от выручки, но продают низкомаржинальные товары с большими скидками. KPI зелёный, прибыль падает.
  2. Игнорирование возвратов. Продажа попала в KPI, возврат — нет, потому что возвраты проводятся другим документом и не включены в расчёт.
  3. Двойной учёт при перемещениях. Перемещение между складами засчитывается как продажа, если запрос написан по движениям регистра без фильтрации по виду движения.
  4. Некорректный период. Граничные даты периода не учитывают время (23:59:59), и документы, проведённые в конце дня, выпадают из расчёта.

// Функция расчёта KPI менеджера по продажам
// Учитывает выручку, возвраты и скидки за период
Функция РассчитатьKPIМенеджера(МенеджерСсылка, ДатаНачала, ДатаКонца)

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ПродажиОбороты.СуммаВыручкиОборот КАК Выручка,
		|	ПродажиОбороты.СуммаСебестоимостиОборот КАК Себестоимость,
		|	ПродажиОбороты.СуммаСкидкиОборот КАК СуммаСкидки
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		,
		|		Менеджер = &Менеджер
		|			И ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
		|	) КАК ПродажиОбороты";

	// Устанавливаем параметры с учётом границ суток
	Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ДатаНачала));
	Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаКонца));
	Запрос.УстановитьПараметр("Менеджер", МенеджерСсылка);

	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();

	СтруктураKPI = Новый Структура;
	СтруктураKPI.Вставить("Выручка", 0);
	СтруктураKPI.Вставить("Маржа", 0);
	СтруктураKPI.Вставить("ПроцентСкидок", 0);

	Если Выборка.Следующий() Тогда
		Выручка = Выборка.Выручка;
		Себестоимость = Выборка.Себестоимость;
		СуммаСкидки = Выборка.СуммаСкидки;

		СтруктураKPI.Выручка = Выручка;
		СтруктураKPI.Маржа = Выручка - Себестоимость;

		// Рассчитываем процент скидок от потенциальной выручки
		Если (Выручка + СуммаСкидки) > 0 Тогда
			СтруктураKPI.ПроцентСкидок = СуммаСкидки / (Выручка + СуммаСкидки) * 100;
		КонецЕсли;
	КонецЕсли;

	Возврат СтруктураKPI;

КонецФункции

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

Миф 3. «Чем больше показателей на дашборде — тем лучше»

Этот миф рождается из благих намерений: хочется видеть всё и сразу. В результате дашборд превращается в «простыню» из 40–60 цифр, в которой руководитель тонет и перестаёт замечать действительно важные отклонения.

Что говорит практика о количестве KPI?

Исследования в области управленческого учёта показывают: человек эффективно воспринимает не более 7±2 показателей одновременно (принцип Миллера). Для операционного дашборда руководителя оптимальное количество ключевых метрик — 5–9. Остальное должно быть скрыто в детализации.

Как правильно структурировать дашборд в 1С?

Профессиональный подход — иерархия дашбордов:

  • Уровень 1 (CEO-дашборд): 5–7 ключевых метрик — выручка, маржа, денежный поток, NPS, просроченная дебиторка
  • Уровень 2 (Операционный дашборд): 10–15 показателей для руководителей отделов
  • Уровень 3 (Аналитический): полный срез данных для аналитиков

В системе компоновки данных 1С (СКД) это реализуется через вложенные отчёты и детализацию по двойному клику. Пользователь видит агрегированный показатель и может «провалиться» в детали при необходимости.


// Пример формирования многоуровневого дашборда
// Процедура заполняет сводную таблицу показателей верхнего уровня
Процедура ЗаполнитьПоказателиВерхнегоУровня(ТаблицаПоказателей, ПараметрыОтбора)

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	СУММА(ПродажиОбороты.СуммаВыручкиОборот) КАК Выручка,
		|	СУММА(ПродажиОбороты.СуммаВыручкиОборот)
		|		- СУММА(ПродажиОбороты.СуммаСебестоимостиОборот) КАК ВаловаяПрибыль,
		|	СУММА(ВзаиморасчётыОстатки.СуммаДолгаОстаток) КАК ДебиторскаяЗадолженность
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		,
		|	) КАК ПродажиОбороты,
		|	РегистрНакопления.ВзаиморасчётыСКонтрагентами.Остатки(
		|		&КонецПериода,
		|		ВидДолга = ЗНАЧЕНИЕ(Перечисление.ВидыДолга.НамДолжны)
		|	) КАК ВзаиморасчётыОстатки";

	Запрос.УстановитьПараметр("НачалоПериода", ПараметрыОтбора.ДатаНачала);
	Запрос.УстановитьПараметр("КонецПериода", КонецДня(ПараметрыОтбора.ДатаКонца));

	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();

	Если Выборка.Следующий() Тогда
		// Добавляем показатели в таблицу дашборда
		Строка = ТаблицаПоказателей.Добавить();
		Строка.НаименованиеПоказателя = "Выручка";
		Строка.ЗначениеПоказателя = Выборка.Выручка;
		Строка.ЕдиницаИзмерения = "руб.";

		Строка = ТаблицаПоказателей.Добавить();
		Строка.НаименованиеПоказателя = "Валовая прибыль";
		Строка.ЗначениеПоказателя = Выборка.ВаловаяПрибыль;
		Строка.ЕдиницаИзмерения = "руб.";

		Строка = ТаблицаПоказателей.Добавить();
		Строка.НаименованиеПоказателя = "Дебиторская задолженность";
		Строка.ЗначениеПоказателя = Выборка.ДебиторскаяЗадолженность;
		Строка.ЕдиницаИзмерения = "руб.";
	КонецЕсли;

КонецПроцедуры

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

Миф 4. «Данные в 1С всегда актуальны и достоверны»

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

Какие данные чаще всего недостоверны?

Тип данныхТипичная проблемаВлияние на KPI
Остатки товаровНе проведена инвентаризация, пересортицаОшибка 10–30%
Дебиторская задолженностьНе закрыты авансы, нет актов сверкиЗавышение на 5–20%
ВыручкаДокументы проведены не в тот периодСмещение по периодам
СебестоимостьНе закрыт месяц, расчёт себестоимости не выполненНеверная маржа
ЗарплатаНачисления не завершены в конце месяцаЗанижение ФОТ

Как технически проверить достоверность данных?

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


// Процедура проверки достоверности данных перед формированием дашборда
// Возвращает список обнаруженных проблем
Функция ПроверитьДостоверностьДанных(ДатаНачала, ДатаКонца) Экспортируемая

	СписокПроблем = Новый СписокЗначений;

	// Проверка 1: наличие незакрытых месяцев
	ЗапросМесяцы = Новый Запрос;
	ЗапросМесяцы.Текст =
		"ВЫБРАТЬ
		|	ЗакрытиеМесяца.Период КАК Период,
		|	ЗакрытиеМесяца.Организация КАК Организация
		|ИЗ
		|	РегистрСведений.ДатыЗапретаИзменения КАК ЗакрытиеМесяца
		|ГДЕ
		|	ЗакрытиеМесяца.Период >= &НачалоПроверки
		|		И ЗакрытиеМесяца.Период <= &КонецПроверки";

	ЗапросМесяцы.УстановитьПараметр("НачалоПроверки", НачалоМесяца(ДатаНачала));
	ЗапросМесяцы.УстановитьПараметр("КонецПроверки", КонецМесяца(ДатаКонца));

	РезМесяцы = ЗапросМесяцы.Выполнить();

	// Если в периоде дашборда есть незакрытые месяцы — предупреждаем
	Если РезМесяцы.Пустой() Тогда
		СписокПроблем.Добавить(
			"ПРЕДУПРЕЖДЕНИЕ: Месяц не закрыт. Себестоимость может быть некорректна."
		);
	КонецЕсли;

	// Проверка 2: наличие документов с нулевой себестоимостью
	ЗапросСебест = Новый Запрос;
	ЗапросСебест.Текст =
		"ВЫБРАТЬ
		|	КОЛИЧЕСТВО(ПродажиОбороты.Регистратор) КАК КоличествоДокументов
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		Регистратор,
		|	) КАК ПродажиОбороты
		|ГДЕ
		|	ПродажиОбороты.СуммаВыручкиОборот > 0
		|		И ПродажиОбороты.СуммаСебестоимостиОборот = 0";

	ЗапросСебест.УстановитьПараметр("НачалоПериода", НачалоДня(ДатаНачала));
	ЗапросСебест.УстановитьПараметр("КонецПериода", КонецДня(ДатаКонца));

	РезСебест = ЗапросСебест.Выполнить().Выбрать();

	Если РезСебест.Следующий() Тогда
		Если РезСебест.КоличествоДокументов > 0 Тогда
			СписокПроблем.Добавить(
				"ОШИБКА: " + РезСебест.КоличествоДокументов
				+ " документов с нулевой себестоимостью. Маржа недостоверна."
			);
		КонецЕсли;
	КонецЕсли;

	Возврат СписокПроблем;

КонецФункции

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

Миф 5. «Дашборд показывает одно — значит, так и есть на самом деле»

Один из самых опасных мифов — безоговорочное доверие к цифре на экране. Руководитель видит, например, рентабельность 18% и принимает стратегические решения, не задаваясь вопросом: а как именно эта цифра посчиталась? В 1С одна и та же метрика может быть рассчитана десятком разных способов в зависимости от того, какой регистр используется как источник, учитываются ли возвраты, как распределяются косвенные затраты и закрыт ли период. Два разработчика, получившие одинаковое техническое задание «показать рентабельность», нередко строят запросы, дающие результаты, отличающиеся на 3–7 процентных пунктов — и оба формально правы.

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

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

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	СУММА(ПродажиОбороты.СуммаВыручкиОборот) КАК Выручка,
		|	СУММА(ПродажиОбороты.СуммаСебестоимостиОборот) КАК Себестоимость
		|ИЗ
		|	РегистрНакопления.Продажи.Обороты(
		|		&НачалоПериода,
		|		&КонецПериода,
		|		,
		|	) КАК ПродажиОбороты
		|ГДЕ
		|	ПродажиОбороты.СуммаВыручкиОборот > 0";

	Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ДатаНачала));
	Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаКонца));

	Результат = Запрос.Выполнить().Выбрать();

	Если Результат.Следующий() И Результат.Выручка <> 0 Тогда
		Возврат (Результат.Выручка - Результат.Себестоимость)
			/ Результат.Выручка * 100;
	КонецЕсли;

	Возврат 0;

КонецФункции

Документирование методологии прямо в коде — не бюрократия, а страховка от ситуации, когда через полгода никто не может объяснить, почему показатель вдруг «прыгнул».

Миф 6. «Дашборд в 1С — это только для больших компаний с отделом BI»

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

Реалистичный минимальный дашборд для небольшой торговой компании включает 4–6 показателей: выручка за период, валовая маржа, топ-10 товаров по прибыли, дебиторская задолженность свыше 30 дней, остатки под нулём и план/факт по ключевым менеджерам. Всё это строится на стандартных регистрах типовой конфигурации без дополнительных лицензий и внешних систем. Главное — правильно сформулировать задачу и выбрать исполнителя, который понимает не только 1С, но и управленческую логику бизнеса. Найти такого специалиста можно на koderion.ru — платформе, где разработчики проходят верификацию по реальным компетенциям, а не только по сертификатам.

Найдите специалиста для решения этой задачи на koderion.ru

Автор: редакция Koderion. Обновлено: 22 мая 2026. Источники: Бухгалтерия.ру, Infostart, ИТС 1С.