Как перенести только один реквизит справочника в 1С с помощью Конвертации данных 2.1?

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

Часто при настройке обмена данными между информационными базами 1С возникает задача: обновить конкретный реквизит у уже существующих элементов справочника, не затрагивая при этом остальные поля. В «Конвертации данных 2.1» (КД 2.1) это решаемая задача, но она требует понимания механизма поиска объектов и правил их записи.

Основные принципы настройки правил конвертации

Чтобы выполнить точечное обновление реквизита, нам необходимо правильно настроить Правила Конвертации Объектов (ПКО). Основная ошибка новичков заключается в попытке выгрузить «весь объект целиком», что приводит к перезаписи всех его свойств. Давайте разберем, как избежать лишних действий и настроить обмен правильно.

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

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

Давайте проанализируем ситуацию, когда у нас есть два справочника с одинаковой структурой, но в приемнике реквизит ДополнительныйРеквизит пустой, а в источнике он заполнен. Мы хотим «дозаполнить» его, не испортив остальные данные.

Сначала откроем конфигурацию Конвертация данных 2.1 и перейдем в правило конвертации нужного справочника. В списке Свойства выберем только Код (или Наименование) и наш ДополнительныйРеквизит. Для свойства поиска установим признак Поиск.

Затем перейдем в настройки самого ПКО. Здесь мы должны обратить внимание на панель управления объектом. Выставив Не создавать новый объект, мы гарантируем, что обмен затронет только существующие записи. Поскольку мы не трогаем остальные свойства, они останутся в базе-приемнике в первозданном виде.

Альтернативные способы обновления данных

Если задача носит разовый характер, не всегда рационально создавать полноценные правила в КД 2.1. В таких случаях программисты 1С часто прибегают к использованию универсальных обработок.

Рассмотрим вариант загрузки из внешних файлов. Существуют обработки, которые позволяют считать данные из ТабличногоДокумента (Excel, CSV) и программно найти объект в базе. Пример алгоритма такого решения:


// Пример логики поиска и обновления реквизита
СпрСсылка = Справочники.Номенклатура.НайтиПоКоду(КодИзФайла);
Если НЕ СпрСсылка.Пустая() Тогда
    Объект = СпрСсылка.ПолучитьОбъект();
    Объект.ДополнительныйРеквизит = НовоеЗначение;
    Объект.Записать();
КонецЕсли;

Этот метод работает максимально быстро, однако требует осторожности. Всегда создавайте резервную копию базы перед запуском любых групповых обработок. Ошибка в критериях поиска может привести к массовому изменению данных не в тех элементах, где планировалось.

Рекомендации по безопасности и тестированию

Работа с Конвертацией данных требует внимательности. Если в процессе обмена вы случайно укажете правило поиска для вложенных объектов, система может попытаться создать дубли и в связанных справочниках. Проверяйте, не выгружаются ли вместе с целевым реквизитом ссылочные типы данных, которые могут вызвать каскадное создание новых элементов.

Подводя итог: для точечного обновления используйте минимальный набор свойств в ПКО и корректную настройку флагов Не создавать новый объект. Если же проект требует частых обновлений из файлов, рассмотрите использование специализированных обработок загрузки из табличных частей, которые позволяют точечно управлять изменениями без изменения общей логики обмена.

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

← На главную