Ситуация
Комбинат поставляет выпечку и кондитерские изделия в крупные торговые сети «Пятёрочка», «Магнит», «Лента» и другие. Ежемесячно ритейлеры присылают Excel-отчёты с детальными сведениями о реализации. Они содержат данные о торговой точке, регионе, номенклатуре, дате продажи и других метриках.
Объем информации значительный — от нескольких сотен тысяч до миллионов строк в месяц по каждому каналу продаж.
Чтобы проанализировать продажи, сотрудники открывали каждый Excel-файл отдельно и строили в нём сводную таблицу. Так можно было посмотреть показатели только одного ритейлера, например, в разрезе регионов, товарных категорий или отдельных магазинов.
Для сравнения реализации одного товара в разных сетях, анализа регионов или динамики по месяцам и годам приходилось открывать несколько таблиц и вручную сопоставлять данные. Объединить их в одном документе не позволяли ограничения Excel: программа поддерживает чуть больше миллиона строк на листе, а некоторые выгрузки даже за один период приходили в нескольких документах. При большом объёме информации такой анализ занимал много времени, а часть задач выполнить уже не удавалось.
Комбинату требовалась агрегатор, который позволил бы собирать все реестры продаж ритейлеров в одну базу и получать аналитику без ограничений по объёму.
Задача
Разработать решение на платформе 1С, которое позволит:
- импортировать большие Excel-файлы от разных торговых сетей в единую базу без потери информации;
- консолидировать данные в удобной структуре для быстрого построения аналитических сводок;
- сравнивать продажи между сетями, подсетями, форматами точек, регионами и категориями товаров;
- не перегружать основную учетную базу предприятия дополнительными гигабайтами данных.
Решение
Создали автономную конфигурацию на базе БСП
Перед началом разработки нужно было выбрать архитектуру платформы. Рассмотрели три подхода и сравнили их по влиянию на рабочую 1С, удобству сопровождения и трудозатратам.
Остановились на самостоятельной конфигурации 1С. Подключили к ней «1С:Библиотеку стандартных подсистем» (БСП), которая уже содержит готовые механизмы для работы с пользователями, журналом регистрации, регламентными заданиями и обслуживанием.
Продумали структуру выгрузки под максимальную скорость
Чтобы отчёты по десяткам миллионов записей формировались быстро, спроектировали структуру хранения в регистре с большим количеством измерений и отдельными справочниками.
В справочники вынесли:
- годы и месяцы;
- крупных ритейлеров и их подсети;
- торговые точки и их форматы;
- федеральные округа и регионы;
- города и адреса магазинов;
- бренды и номенклатуру;
- категории и группы товаров;
- номера документов.
Пользователь сам определяет структуру аналитики и нужные отборы. Например, можно посмотреть продажи по годам, месяцам, сетям и конкретным позициям. Затем заменить номенклатуру на товарную категорию или добавить регион.
Теперь есть возможность сравнивать продажи разных сетей, отслеживать динамику отдельных товаров, находить регионы с наибольшим оборотом и оценивать результаты разных форматов магазинов.
Стандартная выгрузка данных формируется за несколько секунд. При необходимости результат можно сохранить в Excel для передачи или дополнительной обработки.
Решили проблему затирания данных при разбивке файлов
Во время тестирования обнаружилась проблема с импортом документов, разделённых на несколько частей. Первоначально показатели записывались в 1С пакетами с группировкой по периоду, сети и региону. При обработке первой части записи сохранялись в базе. Когда пользователь загружал вторую, система воспринимала её как тот же набор данных и заменяла уже записанную информацию.
Построчная загрузка исправила бы проблему, но заняла бы несколько часов на один файл.
Проблему решили на уровне регистра, добавив ещё одно измерение — номер документа. Каждая часть выгрузки получила собственный идентификатор, поэтому записи перестали заменять друг друга, а переходить на медленный построчный импорт не пришлось.
Перенесли загрузку в фоновый режим
По мере роста базы время импорта увеличилось. На скорость влияли объём накопленных записей, количество измерений и дополнительные индексы, необходимые для быстрого формирования аналитических форм.
Чтобы не заставлять сотрудников ждать окончания загрузки, разработали регистр заданий:
-
Пользователь выбирает полученные файлы, при необходимости проставляет номера частей и нажимает кнопку «Установить пометку».
-
Документы передаются на сервер, и платформа запускает регламентное задание.
-
Импорт, чтение и обработка информации происходят в фоновом режиме на сервере.
-
В регистре истории сотрудник всегда может посмотреть статус обработки: время добавления в очередь, время начала и завершения операции.
Пользователь может отправить в обработку пакет из нескольких десятков файлов в конце рабочего дня, уйти домой, а утром получить полностью готовые данные для отчетов.
Результат
- Единая база аналитики
Предприятие получило возможность сравнивать объемы и динамику продаж по различным каналам продаж, регионам, форматам магазинов и товарным категориям.
- Сводные данные без ожидания
Даже по массивам в десятки миллионов строк отчёты строятся за считаные секунды.
- Фоновая загрузка
Перенос больших файлов больше не блокирует работу пользователя — процесс проходит на сервере в фоне.
- Без нагрузки на рабочую 1С
Для аналитики использовали отдельный сервер. Это позволило не увеличивать объём рабочей системы и сохранить прежний регламент резервного копирования.
Длительность
Основная разработка и доработки заняли около недели. Проект развивался итеративно с весны до лета 2026 года по мере тестирования у заказчика.
Команда
Со стороны implecs — один разработчик 1С. Со стороны заказчика — администратор, который собирал требования пользователей и тестировал систему.