Переход с устаревших конфигураций на платформе «1С:Предприятие 8.2» (таких как «1С:Комплексная автоматизация 1.1» или «1С:Управление производственным предприятием 1.3») на современные системы («1С:Комплексная автоматизация 2.4», «1С:ERP 2») всегда сопряжен с серьезной переработкой структуры нормативно-справочной информации (НСИ). Одним из наиболее сложных и важных этапов является перенос контрагентов. Сложность заключается в том, что одна сущность из старой базы должна превратиться в две связанные сущности в новой.
В этой статье мы подробно разберем, как решить эту задачу с помощью программного инструмента «Конвертация данных 2.1» (КД 2). Мы проанализируем архитектурные различия справочников, изучим готовые механизмы от разработчиков «1С» и рассмотрим пошаговые алгоритмы ручной настройки правил обмена.
Выясним, почему архитектура справочников изменилась, и как правильно перенести данные без потери связей и возникновения дублей.
Прежде чем приступать к написанию правил конвертации, нам необходимо четко понимать концептуальные различия между базами источника и приемника:
СправочникСсылка.Контрагенты. Он хранил в себе как юридическую информацию (ИНН, КПП, юридический адрес, банковские счета), так и управленческую структуру (с какими конкретно филиалами мы ведем торговую деятельность, холдинги, группы компаний).СправочникСсылка.Партнеры — управленческий справочник. Он предназначен для ведения структуры холдингов, сетевых клиентов, фактических торговых точек и брендов. Партнеры не содержат ИНН, КПП и банковских реквизитов. Именно с партнерами связываются сделки, заказы и коммерческие соглашения.СправочникСсылка.Контрагенты — регламентированный справочник. В нем хранятся строго юридические лица или индивидуальные предприниматели, их ИНН, КПП, ОГРН, адреса регистрации и банковские счета. Эти данные используются для формирования первичных документов (ТОРГ-12, Счет-фактура) и регламентированной отчетности.При этом в КА 2.4 справочник Контрагенты имеет обязательный реквизит Партнер. Таким образом, реализуется связь «многие контрагенты (юрлица) подчинены одному партнеру (управленческой сущности/холдингу)». При переносе данных перед нами встает задача: как из одного элемента справочника Контрагенты источника получить два связанных объекта приемника — Партнер и Контрагент.
Рассмотрим два основных пути решения этой задачи: использование стандартных правил от фирмы «1С» и самостоятельную настройку правил «с нуля».
Разработчики фирмы «1С» уже предусмотрели штатные механизмы перехода с КА 1.1 на КА 2.4. Нам не нужно изобретать велосипед — готовые правила обмена уже встроены в саму конфигурацию-приемник. Извлечем их для последующего использования и доработки.
Разберем этот процесс по шагам:
ПравилаОбмена_КА11_КА2 или ПравилаОбмена_УПП13_ERP2..xml.После импорта в КД 2.1 мы получим полностью готовую и протестированную структуру правил обмена. Проанализировав эти правила, мы увидим готовые ПКО (Правила конвертации объектов) для переноса контрагентов, партнеров, их контактной информации, соглашений и договоров. Это сэкономит десятки часов работы.
Если готовые правила по каким-то причинам не подходят или вы хотите настроить перенос «с нуля», разберем технический прием каскадной выгрузки в КД 2. Этот способ основан на связи ПКО через свойства объектов.
Проанализируем алгоритм настройки:
Шаг 1. Создание ПКО для справочника Партнеры
Сначала настроим правила создания управленческого объекта — Партнера. Создаем новое ПКО:
СправочникСсылка.КонтрагентыСправочникСсылка.ПартнерыКонтрагенты_ПартнерыВ настройках ПКС (Правил конвертации свойств) сопоставляем наименование контрагента из источника с реквизитами партнера в приемнике (такими как Наименование, РабочееНаименование, ПубличноеНаименование). Также необходимо перенести признаки деятельности (является ли объект клиентом или поставщиком). В КА 1.1 это были флажки Покупатель и Поставщик в карточке контрагента, а в КА 2.4 — булевы реквизиты Клиент и Поставщик в справочнике Партнеры.
Настроим поля поиска для Партнера. Рекомендуется использовать поиск по наименованию или по уникальному идентификатору (УИД) источника, если перенос выполняется впервые.
Шаг 2. Создание ПКО для справочника Контрагенты
Теперь создаем правило для выгрузки регламентированного контрагента:
СправочникСсылка.КонтрагентыСправочникСсылка.КонтрагентыКонтрагентыСопоставляем реквизиты ИНН, КПП, ОГРН, Юридическое/Физическое лицо и т.д. В качестве полей поиска для контрагента лучше всего выбрать связку ИНН + КПП.
Шаг 3. Связывание объектов через свойства
В ПКО Контрагенты находим реквизит приемника Партнер. Нам нужно заполнить его тем партнером, который создается из этого же контрагента источника. Настроим ПКС для этого свойства следующим образом:
Ссылка (то есть передаем сам выгружаемый элемент справочника Контрагенты).Контрагенты_Партнеры.Как работает этот механизм при выгрузке и загрузке:
Когда выгрузка дойдет до ПКО Контрагенты, система начнет обрабатывать его свойства. Дойдя до реквизита Партнер, КД 2 увидит, что для него назначено ПКО Контрагенты_Партнеры, а в качестве источника передана ссылка на текущего контрагента. Программа временно переключится на выполнение правила Контрагенты_Партнеры, сформирует в XML-файле узел выгрузки Партнера, получит его уникальный идентификатор и запишет его в узел Контрагента как ссылку на Партнера.
При загрузке в КА 2.4 сначала будет прочитан и создан объект Партнер, а затем будет создан объект Контрагент, в реквизит Партнер которого автоматически запишется ссылка на только что созданного партнера. Связь успешно установится без написания сложного программного кода.
Иногда стандартной каскадной выгрузки бывает недостаточно. Например, если у вас в КА 1.1 заведено несколько карточек контрагентов для разных филиалов (с одинаковым ИНН, но разными КПП и адресами), а в КА 2.4 вы хотите объединить их под одним общим партнером (головной организацией). В этом случае потребуется программное управление выгрузкой.
Для реализации такой логики мы можем использовать обработчик событий «Перед выгрузкой» или «После выгрузки» в ПКО Контрагенты. Мы можем принудительно инициализировать выгрузку партнера с передачей параметров поиска.
Посмотрим на пример программного кода, который можно прописать в обработчике ПКО:
// Пример программного вызова выгрузки партнера по правилу
ПараметрыВыгрузки = Новый Структура;
ПараметрыВыгрузки.Вставить("ГоловнойКонтрагент", Источник.ГоловнойКонтрагент);
// Принудительно выгружаем партнера по специальному ПКО
ВыгрузитьПоПравилу(Источник, , ПараметрыВыгрузки, , "Контрагенты_Партнеры");
Этот подход позволяет гибко управлять процессом: вы можете программно анализировать ИНН контрагента, искать, нет ли уже созданного партнера с таким ИНН, и связывать контрагентов-филиалов с одним родителем-партнером, избегая замусоривания базы дублирующимися партнерами.
При переносе данных из КА 1.1 в КА 2.4 необходимо учитывать несколько критически важных настроек в базе-приемнике:
Перед началом загрузки зайдите в КА 2.4 в раздел НСИ и администрирование -> Настройка НСИ и разделов -> CRM и маркетинг. Обратите внимание на опцию «Независимо вести партнеров и контрагентов».
В КА 1.1 адреса и телефоны хранятся в регистре сведений КонтактнаяИнформация, подчиненном контрагентам. В КА 2.4 контактная информация может принадлежать как партнеру, так и контрагенту. Нам нужно решить, куда ее переносить. Практика показывает, что телефоны и фактические адреса удобнее переносить на уровень Партнера (так как с ним работают менеджеры по продажам), а юридические адреса — на уровень Контрагента (для подстановки в печатные формы регламентированных документов).
При использовании стандартного переноса «один в один» для каждого контрагента создается свой партнер. Если у вас в базе КА 1.1 велся учет по филиалам («Сбербанк Москва», «Сбербанк СПБ»), вы получите двух партнеров. Чтобы избежать дублей, настройте алгоритм поиска в ПКО Контрагенты_Партнеры так, чтобы поиск партнера шел по ИНН головной организации. Это позволит объединить филиалы под одной управленческой карточкой партнера в КА 2.4.
Используя приведенные методики и готовые правила из макетов конфигурации, мы сможем быстро и без ошибок настроить сложнейший переход по интеграции контрагентов и партнеров в новых конфигурациях линейки «1С:Предприятие 8.3».