Вебформат

Главная/Блог/Сайты и e-commerce

Сайты и e-commerce15 июля 202611 мин

Кабинет дилера: план, факт и точки роста

У производителя оборудования почти пять тысяч дилеров, и каждому 1С считает годовой план закупок. Раньше партнёр видел свой процент выполнения в письме с таблицей недельной давности. Теперь план, факт и разбивка по товарным группам и месяцам живут в личном кабинете: 43 342 строки статистики обновляются из учётной системы сами. Разбор, как это устроено.

План и факт дилера - прямо из 1С в кабинет
План и факт дилера - прямо из 1С в кабинет

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

Почему письмо с таблицей не работает

Разговор вендора с дилером традиционно выглядит так: менеджер выгружает из 1С таблицу, пересылает её по почте, дилер открывает файл и видит срез недельной давности. К следующему разговору цифры снова устарели. На сотню дилеров это сотня писем, и ни один партнёр не может в любой момент ответить себе на простой вопрос: "я иду по плану или отстаю?".

Есть и более серьёзная проблема. Итоговый процент выполнения скрывает главное. Дилер может идти ровно по графику года и при этом не продать ни одной единицы из целой товарной группы: вендор теряет продажи там, где даже не подозревает о провале, а дилер не видит, где у него точка роста. Одна сводная цифра не говорит ни тому, ни другому ничего полезного.

Требовалось перенести управленческую картину из 1С в личный кабинет: чтобы дилер открыл сайт и увидел свой план, свой факт и ту разбивку, за которой стоит конкретное решение.

Решение

Панель дилера: счета, план и выполнение

Дилер заходит в раздел "Статистика покупок" и видит панель, собранную из данных учётной системы. Вот реальная картина одного из региональных дилеров сети, июль 2026 года.

Раздел "Статистика покупок": картина одного регионального дилера
1С:ERP
План года и факт закупок дилера считает учётная система - сайт принимает готовые числа обычными выгрузками
очередь выгрузок проверяется каждые ~10 секунд
Выставлено счетов
за текущий год - на десятки миллионов рублей
277
Оплачено счетов
сумма оплат - это и есть факт года
248
главная строка панели
План на год
десятки миллионов рублей
Факт за год
сумма оплаченных счетов за год
Выполнение
около половины годового плана; середина июля - дилер идёт по графику
Переключатель года рядом с заголовком показывает прошлый год мгновенно, без перезагрузки страницы: 339 счетов, 336 оплат - и сопоставимые суммы. Дилер видит себя в сравнении с собой год назад. Суммы в статье намеренно не приводятся - это коммерческие данные партнёра.

План и факт сайт не рассчитывает сам - они приходят из 1С обычными выгрузками, очередь проверяется каждые ~10 секунд. Цифра в кабинете и цифра в учётной системе не расходятся никогда. Причём сходятся они не только с 1С, но и между собой: сумма оплаченных счетов равна факту года, сумма планов по месяцам - годовому плану, до рубля. Такую панель можно проверять калькулятором, и на ней строится доверие дилера.

Один процент прячет одиннадцать

Дилер идёт по графику. Казалось бы, разговор окончен. Вкладка "По товарным группам" показывает, что это не так.

Сводная строка говорит "всё ровно" - разбивка показывает, где провал
Моечное оборудование
заметное опережение графика уже в июле
≈70%
Шиномонтажные станки
явное отставание при плане в несколько миллионов ₽
20%
Шипы и комплекты дошиповки
ни одной продажи при плане больше миллиона ₽
0
Три строки из одиннадцати - реальная панель одного дилера, суммы округлены. Итог по году при этом - около половины плана: сводная цифра не содержит ни одного из этих фактов.

Одиннадцать товарных групп - одиннадцать разных историй: по одним дилер опережает график, по другим отстаёт, а по группе "Шипы и комплекты дошиповки" факт за год - ноль. Ради этой разбивки раздел и делался: каждая отстающая строка - готовая тема разговора менеджера с партнёром, и видят её обе стороны одновременно, в одних и тех же числах.

Год по месяцам

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

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

Та же разбивка глазами вендора

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

Было

Сводный отчёт по сети говорит: продажи группы "Борторасширители" просели. Кто виноват и что делать - неизвестно: может, у кого-то из дилеров просто плохой год.

Стало

Одинаковые строки по всем дилерам показывают: план по группе поставлен 44 партнёрам, продажи за год - ровно у четырёх. Сорок из сорока четырёх не продали ни одной единицы.

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

Один дилер - шесть юридических лиц

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

Шесть юридических лиц - один план: статистика собирается по дилеру
Сотрудник дилера
вошёл в кабинет от имени одного из юридических лиц
все юридические лица ведут к одному партнёру
Его юридическое лицо
то, от имени которого он сейчас работает
Ещё пять юридических лиц
остальные компании дилера; у крупнейшего партнёра сети их 64
код партнёра из 1С подписывает каждую строку статистики
Партнёр
дилер как единое целое - группа компаний под одним кодом
поиск статистики по коду партнёра
Статистика дилера
план, факт и выполнение - одна картина на всю группу компаний
Нет партнёра в цепочке - нет и раздела: кабинет просто не покажет страницу. Правами управляет 1С, администратор сайта в выдаче доступа не участвует.

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

Каталог и цены для учётной системы дилера

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

Каталог для дилера: файл готовится на сегмент, а не на клиента
1С:ERP вендора
каталог, статусы, остатки и цены каждого сегмента покупателей
файлы готовятся заранее
Файлы каталога
по одному на сегмент - всего 19, а не тысячи персональных
имя файла - код сегмента из 1С
одна ссылка - разные файлы
Раздел "Выгрузка товаров и цен"
определяет сегмент вошедшего и отдаёт его файл потоком, порциями по 1 МБ
каждый скачивает каталог со своими ценами
Дилер со скидкой 30%
получает файл со своими ценами
Дилер со скидкой 10%
тот же каталог, но со своими ценами
Ссылка на скачивание не содержит пути к файлу, а код сегмента очищается перед подстановкой - запросить чужой файл через адресную строку нельзя.

Раздел "Выгрузка товаров и цен" отдаёт такой файл по одной ссылке. Рядом - инструкция по сопоставлению кодов номенклатуры с кодами в учётной системе дилера и прайс-лист отдельным файлом. Цены в выгрузке те же, что и на витрине: это те же 19 сегментов, что и в разборе про персональные цены на одной витрине. Готовить тысячи персональных файлов не нужно - сегментов всего девятнадцать.


Как это устроено внутри

Устройство кабинета дилера: кто с кем взаимодействует
1С:ERP
Планы, факт, счета и оплаты по каждому партнёру сети
Плюс каталог и цены каждого сегмента покупателей
три отчёта и счета; очередь проверяется каждые ~10 секунд
Служба обмена
Один обработчик в трёх режимах: годы, товарные группы, месяцы
Обновляет строки по составному ключу, а не перезаписывает
данные ложатся в хранилища сайта
Хранилище статистики
43 342 строки по 4 697 партнёрам; три разреза в одной таблице
Хранилище счетов
выставлено и оплачено по годам; 79 780 счетов за два года
отбор по коду партнёра из цепочки доступа
Кабинет дилера
Раздел "Статистика покупок": итог, товарные группы, месяцы, счета
Названия групп подставляются из разделов каталога одним запросом
Сайт ничего не считает за учётную систему: он принимает готовые план и факт, а сам отвечает за два вопроса - кому эти строки показать и как свести их в согласованный процент выполнения.

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

РешениеКак сделано
Одно хранилище на три отчётаГоды, товарные группы и месяцы лежат в одной таблице; тип строки задан признаком и сочетанием "месяц заполнен / группа заполнена". Три файла из 1С обрабатывает один обработчик в трёх режимах - вместо трёх копий одного кода
Обновление без перезаписиКаждая строка ищется по составному ключу "партнёр + год + группа или месяц": найдена - обновляется, не найдена - создаётся. Повторная выгрузка не стирает накопленное, а актуализирует его
Запись только по факту измененийПеред записью числа сравниваются приведёнными к одному типу: хранилище отдаёт строки, а учётная система - числа. Строка, в которой ничего не поменялось, не переписывается: обмен не создаёт лишней нагрузки на базу
Процент выполненияСчитается на сайте: отношение суммы факта к сумме плана по тем годам, где план задан. Одна формула обслуживает итог, товарную группу и месяц - три числа согласованы между собой по построению
Товарные группыПриходят кодами номенклатурных групп 1С; названия подставляются из разделов каталога одним запросом на всю страницу. Строки, у которых группа в 1С не указана, собираются в "Прочее" и всегда выводятся последними
Доступ к разделуНе роль и не группа пользователей, а цепочка данных "юридическое лицо - партнёр - код". Правами управляет 1С: новый дилер получает раздел без участия администратора сайта
Глубина статистикиТекущий и предыдущий год: в кабинете сравнивают себя с собой год назад, а не листают архив
Переключение годаОба года отдаются в разметке сразу - переключатель показывает нужный без обращения к серверу
Чтение хранилищаТипизированный класс с явной картой полей вместо разбора настроек хранилища на каждое обращение: меньше запросов к базе и обычное автодополнение в редакторе кода
Файл каталога для дилераГотовится заранее, по файлу на сегмент; имя файла - код сегмента. Ссылка на скачивание не содержит пути, а код перед подстановкой очищается - запросить чужой сегмент невозможно
Отдача файлаПотоком, порциями по 1 МБ: размер каталога не влияет на потребление памяти

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

Что это дало бизнесу

РаньшеСтало
План дилера жил только в 1С; отчёт - письмо менеджера с таблицейПлан, факт и выполнение - в кабинете дилера; отчёт открывается сам, письма не нужны
Дилер видел срез недельной давностиДанные обновляются с частотой выгрузок из 1С; очередь проверяется каждые ~10 секунд
Сводный процент выполнения - и больше ничегоРазбивка по товарным группам и месяцам: ноль по группе виден сразу
У дилера с шестью юридическими лицами - шесть отчётовОдна картина на всю группу компаний, под каким бы лицом ни вошёл сотрудник
Вендор не видел, где сеть теряет продажи целикомОдинаковые строки по всем дилерам: план у 44, продают 4 - вопрос к продвижению группы, а не к партнёру
Каталог с ценами - по запросу менеджеруКаталог и цены сегмента - по одной ссылке, файл готов заранее
Новый дилер - заявка на доступ администратору сайтаДоступ приходит из 1С вместе с данными

В цифрах

ПоказательЗначение
Партнёров сети со своей статистикой в кабинете4 697
Строк плана и факта43 342 - годы, товарные группы, месяцы
Счетов в хранилище79 780 выставленных и оплаченных за два года
Разрезов отчётности в одном хранилище3; новый разрез - без новой таблицы и правок на сайте
Подхват выгрузок сайтомочередь проверяется каждые ~10 секунд
Файлов каталога для дилеров19 - по одному на сегмент покупателей, вместо тысяч персональных
Юридических лиц у крупнейшего партнёра сети64
Товарных групп в разбивке дилера из примера11
Дилеров с годовым планом по группе "Борторасширители"44, продажи за год - у 4
Глубина статистикитекущий и предыдущий год

Кабинет дилера - часть большой B2B-платформы: каталог, персональные цены и двусторонний обмен с 1С. Что вошло в проект целиком - в кейсе B2B e-commerce платформы.

Хотите, чтобы дилеры видели план и факт без писем и таблиц?

Расскажите, как устроена ваша партнёрская сеть и какие отчёты считает 1С. Покажем кабинет на живом проекте и оценим перенос вашей отчётности на сайт.