Чек-лист: готов ли отдел продаж к аналитике в 1С

Чек-лист: готов ли отдел продаж к аналитике в 1С

Почему аналитика в 1С — это не роскошь, а необходимость для отдела продаж

Большинство руководителей отделов продаж сталкиваются с одной и той же проблемой: данные есть, но они разрознены. Менеджеры ведут сделки в Excel, CRM частично синхронизирована с 1С, а директор получает отчёт в конце месяца — когда исправлять уже поздно. Аналитика в реальном времени на базе 1С решает эту проблему радикально.

Платформа 1С:Предприятие 8.3 содержит все инструменты для построения полноценной системы управления продажами: от воронки по стадиям сделок до персональных KPI каждого менеджера. Но прежде чем запускать разработку дашбордов, необходимо честно ответить на вопрос: а готова ли ваша компания к такой аналитике? Именно для этого и создан данный чек-лист.

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

Блок 1. Качество данных — фундамент любой аналитики

1.1 Проверка полноты заполнения карточек клиентов

Аналитика не работает на грязных данных. Первый шаг — аудит справочника контрагентов. Запустите следующий запрос в консоли запросов 1С и оцените результат:

// Анализ полноты заполнения карточек контрагентов
// Проверяем обязательные поля для аналитики продаж
Запрос = Новый Запрос;
Запрос.Текст =
	"ВЫБРАТЬ
	|	Контрагенты.Наименование КАК Контрагент,
	|	Контрагенты.ИНН КАК ИНН,
	|	Контрагенты.КПП КАК КПП,
	|	Контрагенты.ОсновнойМенеджер КАК Менеджер,
	|	Контрагенты.ГруппаКонтрагентов КАК Группа,
	|	СЛУЧАЙ
	|		КОГДА Контрагенты.ИНН = """""" ТОГДА "Не заполнен ИНН"
	|		КОГДА Контрагенты.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ТОГДА "Нет менеджера"
	|		КОГДА Контрагенты.ГруппаКонтрагентов = ЗНАЧЕНИЕ(Справочник.ГруппыКонтрагентов.ПустаяСсылка) ТОГДА "Нет группы"
	|		ИНАЧЕ "OK"
	|	КОНЕЦ КАК СтатусЗаполнения
	|ИЗ
	|	Справочник.Контрагенты КАК Контрагенты
	|ГДЕ
	|	Контрагенты.ЭтоГруппа = ЛОЖЬ
	|	И Контрагенты.ПометкаУдаления = ЛОЖЬ
	|УПОРЯДОЧИТЬ ПО
	|	Контрагенты.Наименование";

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

КоличествоПроблем = 0;

Пока Выборка.Следующий() Цикл
	// Считаем записи с проблемами заполнения
	Если Выборка.СтатусЗаполнения <> "OK" Тогда
		КоличествоПроблем = КоличествоПроблем + 1;
	КонецЕсли;
КонецЦикла;

Сообщить("Контрагентов с незаполненными полями: " + КоличествоПроблем);

Если результат показывает более 15% контрагентов с незаполненными полями — аналитика будет давать искажённую картину. Необходимо провести чистку данных до запуска дашбордов.

1.2 Чек-лист качества данных

  • ☐ Все контрагенты привязаны к ответственному менеджеру
  • ☐ Контрагенты разбиты по группам (сегментам): B2B крупный, B2B малый, B2C и т.д.
  • ☐ В заказах покупателя заполнена статья доходов или направление деятельности
  • ☐ Номенклатура разбита по группам для анализа по категориям
  • ☐ Даты плановых оплат заполнены в документах
  • ☐ Стадии сделок (если используется CRM-блок) актуально обновляются менеджерами
  • ☐ Источники привлечения клиентов зафиксированы в карточках

Блок 2. Настройка KPI менеджеров — что и как считать в 1С

2.1 Определение метрик перед программированием

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

KPIИсточник данных в 1СПериодичностьЦелевое значение
Выручка (факт)Реализация товаров и услугЕжедневноПо плану продаж
Количество новых клиентовПервый документ по контрагентуЕжемесячно5 новых/мес
Средний чекВыручка / кол-во документовЕжемесячноИндивидуально
Конверсия лидовCRM: лиды → сделкиЕженедельно25%
Дебиторская задолженностьВзаиморасчёты с контрагентамиЕжедневноНе более 30 дней
Выполнение плана (%)План продаж vs фактЕжедневно100%

2.2 Программный расчёт KPI в 1С

Приведём пример расчёта ключевого показателя — процента выполнения плана продаж по менеджеру за текущий месяц:

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

	Результат = Новый Структура("План, Факт, Процент", 0, 0, 0);

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

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

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

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

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

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

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

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

	// Вычисляем процент выполнения
	Если Результат.План > 0 Тогда
		Результат.Процент = Окр(Результат.Факт / Результат.План * 100, 1);
	КонецЕсли;

	Возврат Результат;

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

Блок 3. Воронка продаж в 1С — от лида до оплаты

3.1 Стадии воронки и их отражение в системе

Воронка продаж в 1С строится на базе CRM-блока (в конфигурациях УТ 11, КА 2, ERP 2) или через собственный регистр сведений. Классическая воронка для B2B включает следующие стадии:

  1. Лид получен — первичный контакт зафиксирован в системе
  2. Квалификация — менеджер определил потенциал клиента
  3. Коммерческое предложение — КП отправлено, ожидается ответ
  4. Переговоры — активное обсуждение условий
  5. Договор на согласовании — юридическое оформление
  6. Сделка закрыта (выиграна) — первая отгрузка или оплата
  7. Сделка закрыта (проиграна) — фиксация причины отказа

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

3.2 Запрос для построения воронки продаж

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

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

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

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

	// Рассчитываем конверсию между стадиями
	КоличествоСтрок = ТаблицаВоронки.Количество();

	Для НомерСтроки = 1 По КоличествоСтрок - 1 Цикл
		ТекущаяСтрока = ТаблицаВоронки[НомерСтроки];
		ПредыдущаяСтрока = ТаблицаВоронки[НомерСтроки - 1];

		// Добавляем колонку конверсии если её нет
		Если ТаблицаВоронки.Колонки.Найти("КонверсияПроцент") = Неопределено Тогда
			ТаблицаВоронки.Колонки.Добавить("КонверсияПроцент");
		КонецЕсли;

		Если ПредыдущаяСтрока.КоличествоСделок > 0 Тогда
			ТекущаяСтрока.КонверсияПроцент = Окр(
				ТекущаяСтрока.КоличествоСделок / ПредыдущаяСтрока.КоличествоСделок * 100, 1
			);
		КонецЕсли;
	КонецЦикла;

	Возврат ТаблицаВоронки;

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

Блок 4. Дашборд директора — что должно быть на главном экране

4.1 Архитектура директорского дашборда

Дашборд директора по продажам — это не просто красивые графики. Это инструмент принятия решений, который должен отвечать на три вопроса: где мы сейчас?, куда движемся? и где проблема?. Структура дашборда строится по принципу «от общего к частному»:

  • Верхний уровень (стратегический): выручка факт vs план, маржинальность, количество активных клиентов
  • Средний уровень (тактический): воронка продаж, динамика по неделям, топ-10 клиентов
  • Нижний уровень (оперативный): KPI по менеджерам, просроченная дебиторка, сделки без активности более 7 дней

4.2 Реализация виджета «Светофор» для KPI

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

// Процедура раскраски строк таблицы KPI по принципу светофора
// Зелёный >= 90%, Жёлтый 70-89%, Красный < 70%
Процедура УстановитьЦветИндикации(ТаблицаФормы, ДанныеКPI)

	Для Каждого СтрокаKPI Из ДанныеКPI Цикл

		ПроцентВыполнения = СтрокаKPI.ПроцентВыполнения;

		// Определяем цвет в зависимости от выполнения плана
		Если ПроцентВыполнения >= 90 Тогда
			ЦветФона = ЦветаСтиля.ЗелёныйЦвет;
			ЦветТекста = ЦветаСтиля.БелыйЦвет;
		ИначеЕсли ПроцентВыполнения >= 70 Тогда
			ЦветФона = ЦветаСтиля.ЖёлтыйЦвет;
			ЦветТекста = ЦветаСтиля.ЧёрныйЦвет;
		Иначе
			ЦветФона = ЦветаСтиля.КрасныйЦвет;
			ЦветТекста = ЦветаСтиля.БелыйЦвет;
		КонецЕсли;

		// Применяем оформление к строке таблицы
		Оформление = ТаблицаФормы.УсловноеОформление.Элементы.Добавить();

		ОтборЭлемент = Оформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Менеджер");
		ОтборЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ОтборЭлемент.ПравоеЗначение = СтрокаKPI.Менеджер;

		Оформление.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветФона);
		Оформление.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветТекста);

	КонецЦикла;

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

Блок 5. Интеграция с планами продаж — как связать факт и цель

5.1 Структура регистра планов продаж

Для корректной работы аналитики необходим регистр сведений «Планы продаж менеджеров» со следующей структурой измерений:

  • Период (Дата) — месяц планирования
  • Менеджер (СправочникСсылка.Пользователи)
  • НаправлениеДеятельности (СправочникСсылка.НаправленияДеятельности) — опционально
  • Ресурс СуммаПлан (Число, 15, 2) — плановая выручка
  • Ресурс КоличествоНовыхКлиентов (Число, 10, 0) — план по новым клиентам

5.2 Автоматическое заполнение планов на основе истории

// Процедура автоматического формирования планов продаж
// на следующий месяц на основе средних продаж за 3 месяца
// с применением коэффициента роста
Процедура СформироватьПланыНаСледующийМесяц(КоэффициентРоста = 1.1) Экспорт

	НачалоСледующегоМесяца = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(), 1));
	НачалоАнализа = НачалоМесяца(ДобавитьМесяц(ТекущаяДата(), -3));
	КонецАнализа = КонецМесяца(ДобавитьМесяц(ТекущаяДата(), -1));

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

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

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

	// Записываем планы в регистр сведений
	МенеджерЗаписи = РегистрыСведений.ПланыПродажМенеджеров.СоздатьМенеджерЗаписи();

	Пока Выборка.Следующий() Цикл

		ПлановаяВыручка = Окр(Выборка.СредняяВыручка * КоэффициентРоста, 2);

		МенеджерЗаписи.Период = НачалоСледующегоМесяца;
		МенеджерЗаписи.Менеджер = Выборка.Менеджер;
		МенеджерЗаписи.СуммаПлан = ПлановаяВыручка;

		МенеджерЗаписи.Записать();

		Сообщить("План для " + Выборка.Менеджер + ": " + ПлановаяВыручка + " руб.");

	КонецЦикла;

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

Блок 6. Технические требования к инфраструктуре

6.1 Что проверить перед запуском аналитики

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

  • Версия платформы — минимум 8.3.18 для полноценной работы СКД с новыми возможностями
  • Разделение на рабочую и аналитическую базы — тяжёлые отчёты не должны тормозить оперативную работу
  • Индексы на часто используемых полях — поля «Менеджер», «Период», «Контрагент» в регистрах продаж должны быть проиндексированы
  • Регламентное задание по пересчёту итогов — настроено и работает ежедневно
  • Права доступа — директор видит всех менеджеров, менеджер — только себя
  • Мобильный доступ — дашборд доступен через браузер или мобильное приложение

6.2 Настройка прав доступа для аналитики

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