При переходе на новые версии систем управления торговлей (например, «Управление торговлей для Украины», редакция 2.3 или аналогичные решения на платформе 8.3) перед компаниями часто встает вопрос: как перенести накопленную базу лояльных покупателей, если их число исчисляется миллионами? С одной стороны, бизнес требует полноценного CRM-функционала и сквозной аналитики, с другой — технические специалисты опасаются критического падения производительности системы.
Разберем детально этот спор, проанализируем аргументы обеих сторон и найдем оптимальное архитектурное решение, которое позволит сохранить баланс между удобством работы и скоростью базы данных.
Рассмотрим ситуацию. У нас есть несколько миллионов записей о покупателях. В старой системе они хранились упрощенно, по сути, как атрибуты карты лояльности. В новой системе 1С предлагается использовать справочник Партнеры (или Контрагенты), который является «тяжелым» объектом с множеством реквизитов, табличных частей и связей.
Позиция аналитика: необходимо использовать стандартный справочник Партнеры. Это позволит использовать типовые отчеты, вести полноценные взаиморасчеты, управлять заказами и использовать инструменты CRM без доработки системы.
Позиция программиста: создание миллионов записей в справочнике Партнеры перегрузит базу. Это приведет к росту индексов, замедлению полнотекстового поиска и проблемам при обновлении конфигурации.
Проанализируем, почему программисты так активно сопротивляются заполнению основного справочника:
ДинамическоеСчитывание. При попытке выполнить простой поиск или наложить фильтр в справочнике с миллионами записей, SQL-запрос может выполняться недопустимо долго, вызывая блокировки для других пользователей.СправочникОбъект.Партнеры при чтении в память тянет за собой все свои реквизиты. Если для розничного покупателя нам нужны только ФИО и телефон, то система все равно будет оперировать структурой, предназначенной для крупных оптовиков (с холдингами, сегментами и т.д.).Прежде чем принимать решение, проанализируем сценарии использования данных. Рассмотрим важный вопрос: какое подчинение данных нам необходимо?
Выясним причину необходимости хранения всех миллионов записей. Если 90% этих клиентов не совершали покупок последние два года, стоит ли их тянуть в рабочую «мастер-базу»? Рассмотрим альтернативный вариант: перенос только «живых» клиентов, а архивных — в отдельную аналитическую базу.
В типовых конфигурациях 1С реализовано разделение на управленческих партнеров и анкетные данные. Мы можем хранить анкеты (ФИО, дата рождения, пол) в справочнике Физические лица, который значительно «легче» справочника Партнеры.
В этом случае логика работы будет следующей:
Карту лояльности.Физические лица.Это позволит строить отчеты по продажам в разрезе держателей карт, не захламляя основной справочник Партнеры.
Проанализируем ситуацию, когда нам все же нужны анкетные данные для CRM (рассылки, аналитика), но мы не хотим раздувать справочники. Мы можем вынести всю дополнительную информацию в Регистр сведений.
Пример структуры такого регистра:
РегистрСведений.ДанныеКлиентовПоКартам:
- Измерение: КартаЛояльности (СправочникСсылка.ИнформационныеКарты)
- Ресурс: ФИО (Строка)
- Ресурс: Телефон (Строка)
- Ресурс: ДатаРождения (Дата)
Поиск по индексированным полям регистра (например, по телефону) в SQL работает на порядок быстрее, чем полнотекстовый поиск по тяжелому справочнику.
Рассмотрим подход, который часто используют при внедрении ERP-систем. Перед миграцией данных необходимо провести процедуру Data Cleaning (очистка данных):
Партнеры для активной работы.Партнеры.Если вы, как аналитик, настаиваете на стандартном функционале, предложите программистам провести нагрузочное тестирование. Это самый весомый аргумент в споре профессионалов.
Попробуем выполнить следующие шаги:
Партнеры.Если тесты покажут, что система «захлебывается», программисты окажутся правы, и нужно будет переходить к Решению 1 или 2. Если же SQL-сервер и оборудование справляются (например, при использовании SSD-массивов и достаточного объема ОЗУ), то использование стандартного функционала будет предпочтительнее для бизнеса.
Выясним итог: истина, как всегда, посередине. Использовать справочник Партнеры для миллионов записей в рознице — это риск, который часто не оправдан. В 90% случаев для розницы достаточно связки «Карта лояльности + Данные в регистре/физлице». Это сохраняет производительность системы на годы вперед и при этом дает маркетингу все необходимые данные для анализа.
Помните, что 1С — это гибкая платформа, и попытка втиснуть миллионы строк в объект, предназначенный для сложного B2B взаимодействия, может стать «миной замедленного действия» для вашего проекта.