Как перенести скидки на товары из УТ 10.3 в УТ 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Переход с конфигурации «Управление торговлей 10.3» на «Управление торговлей 11» — задача комплексная, и один из самых сложных её этапов — перенос маркетинговых акций, в частности, скидок на номенклатуру. Проблема заключается в том, что механизмы управления скидками в этих конфигурациях кардинально различаются. Попытка прямого переноса данных обречена на провал. Давайте разберемся, как подойти к этой задаче правильно, используя «Конвертацию данных».

Анализ различий в механизмах скидок УТ 10 и УТ 11

Прежде чем приступать к настройке правил конвертации, крайне важно понять методологические различия. Это ключ к успешному переносу.

В УТ 10.3:

В УТ 11:

Из-за этих различий стандартный помощник перехода не переносит скидки, а задача их ручной настройки может быть очень трудоемкой. Правильный путь — разработать стратегию переноса с помощью «Конвертации данных», которая воссоздаст логику старых скидок с помощью новых инструментов.

Стратегия переноса скидок через «Конвертацию данных»

Основная идея заключается в том, чтобы не переносить документы как есть, а проанализировать все действующие скидки в УТ 10, сгруппировать их по проценту и на основе этих групп создать в УТ 11 взаимосвязанную структуру объектов: Скидка → Условие → Сегмент номенклатуры.

Разберем этот процесс по шагам.

  1. Анализ и группировка скидок в базе-источнике (УТ 10)

    Первый и самый важный шаг — собрать информацию обо всех уникальных значениях скидок, которые есть в вашей базе. Нам не важны сами документы, нам важны пары «товар — процент». Но для упрощения задачи мы можем сгруппировать товары по проценту скидки.

    Необходимо написать запрос к табличным частям всех проведенных документов УстановкаСкидокНоменклатуры, чтобы получить список всех уникальных процентов скидок. Например, в результате анализа мы выяснили, что в компании используются скидки 3%, 5%, 7% и 10%.

  2. Создание элементов справочника «Скидки (наценки)» в УТ 11

    Теперь в правилах конвертации данных (ПКС) для справочника СкидкиНаценки нужно прописать логику создания новых элементов. На каждый уникальный процент из УТ 10 мы создадим один элемент в УТ 11.

    • В обработчике «Перед выгрузкой» для источника (документа УстановкаСкидокНоменклатуры) мы получаем все уникальные проценты из его табличной части.
    • Для каждого уникального процента мы создаем объект для выгрузки. Например, если в документе есть скидки 5% и 10%, мы создадим два объекта для выгрузки в справочник СкидкиНаценки.
    • Важный момент: чтобы избежать дублей, нужно использовать поиск по уже созданным элементам. Удобно в наименовании указывать процент, чтобы и визуально, и программно было легко их идентифицировать. Например: «Скидка 5% (перенос из УТ 10)», «Скидка 10% (перенос из УТ 10)». В качестве уникального идентификатора для поиска можно использовать сам процент скидки.
    • В правилах конвертации для этих элементов нужно установить способ применения скидки — «Процент».
  3. Создание и наполнение сегментов номенклатуры

    Это центральная часть нашей логики. Для каждой созданной нами скидки (например, для «Скидка 5% (перенос из УТ 10)») мы должны создать соответствующий сегмент номенклатуры и наполнить его товарами, на которые эта скидка распространялась в УТ 10.

    Как это реализовать в «Конвертации данных»:

    • Создаем правило конвертации для объекта Справочник.СегментыНоменклатуры.
    • Так же, как и со скидками, на каждый уникальный процент скидки из УТ 10 мы будем создавать один сегмент в УТ 11. Наименование можно задать по аналогии: «Товары со скидкой 5% (перенос из УТ 10)».
    • Самое главное — настроить правила для заполнения состава сегмента. Состав сегмента хранится в регистре сведений СоставСегментаНоменклатуры.
    • Нужно создать правило конвертации для этого регистра. В качестве источника данных будет выступать табличная часть Товары документа УстановкаСкидокНоменклатуры.
    • В правиле нужно будет прописать логику: для каждой строки из табличной части мы создаем запись в регистре СоставСегментаНоменклатуры. В поле Номенклатура записываем товар из строки, а в поле Сегмент — ссылку на тот сегмент, который соответствует проценту скидки из этой же строки. Для этого нужно будет найти ранее созданный нами сегмент по наименованию или другому уникальному признаку.
  4. Настройка условий предоставления скидки

    После того как мы перенесли сами скидки и создали сегменты с товарами, нужно связать их вместе. В УТ 11 это делается через условия предоставления.

    В каждом созданном элементе справочника СкидкиНаценки на закладке «Условия предоставления» нужно добавить условие. Для нашей задачи идеально подходит условие «За номенклатуру, входящую в сегмент».

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

    • Для «Скидка 5% (перенос из УТ 10)» мы добавляем условие, что скидка предоставляется на товары из сегмента «Товары со скидкой 5% (перенос из УТ 10)».
    • И так для каждого уникального процента.
  5. Определение области действия скидок

    Финальный штрих — определить, кому будут предоставляться перенесенные скидки. В УТ 11 скидки "включаются" путем их добавления в типовые или индивидуальные соглашения с клиентами. При массовом переносе самым простым решением будет добавить все созданные скидки в основное типовое соглашение, которое действует для всех клиентов. Эту операцию, как правило, проще выполнить уже в УТ 11 вручную или небольшой обработкой после завершения основного переноса данных.

Итог

Таким образом, мы не переносим данные напрямую, а трансформируем их. Мы преобразуем плоскую структуру «товар-скидка» из УТ 10 в логическую, иерархическую модель УТ 11. Этот подход позволяет корректно воссоздать логику работы старой системы в новой, несмотря на кардинальные различия в архитектуре, и является единственно верным при решении подобной задачи.

← На главную