Переход с конфигурации «Управление торговлей 10.3» на «Управление торговлей 11» — задача комплексная, и один из самых сложных её этапов — перенос маркетинговых акций, в частности, скидок на номенклатуру. Проблема заключается в том, что механизмы управления скидками в этих конфигурациях кардинально различаются. Попытка прямого переноса данных обречена на провал. Давайте разберемся, как подойти к этой задаче правильно, используя «Конвертацию данных».
Прежде чем приступать к настройке правил конвертации, крайне важно понять методологические различия. Это ключ к успешному переносу.
В УТ 10.3:
Документ.УстановкаСкидокНоменклатуры.В УТ 11:
Справочник.СкидкиНаценки.Из-за этих различий стандартный помощник перехода не переносит скидки, а задача их ручной настройки может быть очень трудоемкой. Правильный путь — разработать стратегию переноса с помощью «Конвертации данных», которая воссоздаст логику старых скидок с помощью новых инструментов.
Основная идея заключается в том, чтобы не переносить документы как есть, а проанализировать все действующие скидки в УТ 10, сгруппировать их по проценту и на основе этих групп создать в УТ 11 взаимосвязанную структуру объектов: Скидка → Условие → Сегмент номенклатуры.
Разберем этот процесс по шагам.
Первый и самый важный шаг — собрать информацию обо всех уникальных значениях скидок, которые есть в вашей базе. Нам не важны сами документы, нам важны пары «товар — процент». Но для упрощения задачи мы можем сгруппировать товары по проценту скидки.
Необходимо написать запрос к табличным частям всех проведенных документов УстановкаСкидокНоменклатуры, чтобы получить список всех уникальных процентов скидок. Например, в результате анализа мы выяснили, что в компании используются скидки 3%, 5%, 7% и 10%.
Теперь в правилах конвертации данных (ПКС) для справочника СкидкиНаценки нужно прописать логику создания новых элементов. На каждый уникальный процент из УТ 10 мы создадим один элемент в УТ 11.
УстановкаСкидокНоменклатуры) мы получаем все уникальные проценты из его табличной части.СкидкиНаценки.Это центральная часть нашей логики. Для каждой созданной нами скидки (например, для «Скидка 5% (перенос из УТ 10)») мы должны создать соответствующий сегмент номенклатуры и наполнить его товарами, на которые эта скидка распространялась в УТ 10.
Как это реализовать в «Конвертации данных»:
Справочник.СегментыНоменклатуры.СоставСегментаНоменклатуры.Товары документа УстановкаСкидокНоменклатуры.СоставСегментаНоменклатуры. В поле Номенклатура записываем товар из строки, а в поле Сегмент — ссылку на тот сегмент, который соответствует проценту скидки из этой же строки. Для этого нужно будет найти ранее созданный нами сегмент по наименованию или другому уникальному признаку.После того как мы перенесли сами скидки и создали сегменты с товарами, нужно связать их вместе. В УТ 11 это делается через условия предоставления.
В каждом созданном элементе справочника СкидкиНаценки на закладке «Условия предоставления» нужно добавить условие. Для нашей задачи идеально подходит условие «За номенклатуру, входящую в сегмент».
Этот шаг можно автоматизировать в обработчике «После загрузки» для справочника СкидкиНаценки. После того как элемент скидки создан, мы программно находим соответствующий ему сегмент и добавляем его в табличную часть «Условия предоставления» с нужным видом условия.
Финальный штрих — определить, кому будут предоставляться перенесенные скидки. В УТ 11 скидки "включаются" путем их добавления в типовые или индивидуальные соглашения с клиентами. При массовом переносе самым простым решением будет добавить все созданные скидки в основное типовое соглашение, которое действует для всех клиентов. Эту операцию, как правило, проще выполнить уже в УТ 11 вручную или небольшой обработкой после завершения основного переноса данных.
Таким образом, мы не переносим данные напрямую, а трансформируем их. Мы преобразуем плоскую структуру «товар-скидка» из УТ 10 в логическую, иерархическую модель УТ 11. Этот подход позволяет корректно воссоздать логику работы старой системы в новой, несмотря на кардинальные различия в архитектуре, и является единственно верным при решении подобной задачи.