Как настроить частичный и выборочный перенос данных в 1С Конвертация данных 2.1

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При подготовке тестовых баз, разделении учета или переносе начальной информации из 1С:Управление производственным предприятием часто требуется перенести лишь часть объектов конфигурации. Автоматическое создание правил в 1С:Конвертация данных 2.1 генерирует правила для всех справочников и документов подряд, что приводит к избыточной выгрузке данных. Разберем по шагам, как правильно настроить выборочный обмен и исключить перенос ненужной информации.

Понятие ключевых элементов: ПВД, ПКО и ПКС

Для понимания логики выборочной выгрузки проанализируем структуру правил конвертации:

  1. Правила выгрузки данных (ПВД) — определяют точку входа, то есть какие именно таблицы базы-источника считываются при запуске обмена. Если для объекта нет активного ПВД, сам по себе он выгружаться не начнет.
  2. Правила конвертации объектов (ПКО) — описывают сопоставление полей и логику создания конкретного объекта в базе-приемнике. ПКО срабатывает либо по вызову из ПВД, либо каскадно при выгрузке ссылки на объект из другого документа или справочника.
  3. Правила конвертации свойств (ПКС) — задают соответствие реквизитов и табличных частей между источником и приемником.

Способ 1. Управление составом правил выгрузки данных (ПВД)

Если правила уже созданы автоматически, самым простым решением является отключение или удаление лишних правил выгрузки данных. Посмотрим, как это работает:

  1. Перейдем в дерево правил на вкладку Правила выгрузки данных.
  2. Отключим активность (снимем признак включения) или удалим те ПВД, объекты которых не должны выгружаться в качестве самостоятельных сущностей.
  3. Оставим активными только те ПВД, которые соответствуют утвержденному списку переносимых документов и справочников (например, только справочник Номенклатура или документы ввода остатков).

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

Способ 2. Предотвращение каскадной выгрузки связанных объектов по ссылкам

Частая проблема выборочного переноса заключается в том, что даже при отключенном ПВД объект все равно переносится, если на него ссылается выгружаемый документ. Разберем, как ограничить вытягивание связанных данных:

  1. В настройках целевого ПКО установим флаг Не создавать новый объект в приемнике, если он не найден. Это защитит базу-приемник от создания дублей и лишних элементов.
  2. В свойствах ПКО включим признак Выгружать объект полностью только при наличии ссылки или настроим признак Не замещать существующие объекты при загрузке.
  3. В конкретных ПКС, ссылающихся на второстепенные справочники, установим признак Не выгружать значение либо переопределим передачу значения.
  4. В обработчике ПКО Перед выгрузкой установим программный фильтр. Если объект не удовлетворяет условию, выгрузка отменяется:

Если Источник.ПометкаУдаления Тогда
    Отказ = Истина;
КонецЕсли;

Способ 3. Использование произвольных алгоритмов и фильтров в ПВД

Когда требуется перенести данные одного вида объекта не целиком, а по определенному условию (например, документы только за определенный период или по выбранной организации), стандартной выборки недостаточно. Рассмотрим программную настройку отбора в ПВД:

  1. Откроем нужное Правило выгрузки данных и переключим способ выборки на Произвольный алгоритм.
  2. В обработчике Перед обработкой напишем запрос для точечной выборки необходимых данных и передадим результат в обработку выгрузки:

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   Ссылка
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг
    |ГДЕ
    |   Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |   И Проведен = ИСТИНА";

Запрос.УстановитьПараметр("ДатаНачала", Параметры.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", Параметры.ДатаОкончания);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    ВыгрузитьПоПравилу(Выборка.Ссылка, , , , "ПоступлениеТоваровУслуг");
КонецЦикла;

Способ 4. Настройка отборов в универсальной обработке выгрузки

Если правила уже сформированы, а фильтры требуется менять оперативно перед каждым обменом, воспользуемся возможностями внешней обработки Универсальный обмен данными XML:

  1. Откроем обработку в базе-источнике и загрузим файл правил обмена.
  2. На вкладке Выгружаемые данные снимем флаги со всех ненужных объектов.
  3. Для оставленных объектов развернем колонку Отбор и настроим фильтрацию по реквизитам (пометка удаления, организация, дата, статус).
  4. На вкладке Параметры укажем граничные условия, если они предусмотрены в алгоритмах правил.

Оптимизация производительности при выгрузке из УПП

Выгрузка крупных информационных массивов из базы УПП требует контроля расхода оперативной памяти. Проанализируем ключевые рекомендации для стабильной работы:

  1. В обработке Универсальный обмен данными XML обязательно включим опцию Выгружать данные порциями и зададим размер порции от 500 до 2000 объектов. Это предотвратит переполнение памяти и аварийное завершение процесса.
  2. При переносе исторических документов закрытых периодов целесообразно переносить сформированные движения регистров накопления и сведений, чтобы избежать необходимости массового перепроведения документов в базе-приемнике.
  3. Если целью является получение чистой базы с разделенным учетом по организациям, рассмотрим вариант использования типового механизма Свертка информационной базы с последующей очисткой лишних данных вместо ручного переноса через правила конвертации.
← На главную