Чек-лист: готов ли отдел продаж к аналитике в 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С: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