Как перенести данные одной организации из Бухгалтерии предприятия в Бухгалтерию предприятия КОРП с сохранением всей истории

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

Перенос данных между различными редакциями или версиями конфигураций 1С — задача всегда ответственная, особенно когда речь идет о переходе с обычной Бухгалтерии предприятия (ПРОФ) на версию КОРП. Сложность заключается не только в разнице метаданных, но и в необходимости сохранить ссылочную целостность, аналитику и корректность остатков по конкретной организации, не затрагивая при этом данные других компаний в целевой базе. В данной статье мы разберем наиболее эффективные методики решения этой задачи, проанализируем возможные ошибки и предложим пошаговый алгоритм действий.

Постановка задачи и анализ ситуации

Рассмотрим типовую ситуацию: у нас есть исходная информационная база (ИБ-1), в которой ведется учет по двум организациям (Орг1 и Орг2). Нам необходимо перенести все данные только по Орг2 в уже существующую рабочую базу Бухгалтерия предприятия КОРП (ИБ-2), где уже есть свои данные по другой организации (Орг1-корп). Важное условие — перенос должен включать всю историю документов, справочников и движений по регистрам, чтобы оборотно-сальдовая ведомость в новой базе сошлась "копейка в копейку" с исходной.

Основные сложности, с которыми мы можем столкнуться:

  1. Различия в структуре данных: в версии КОРП во многих регистрах появляется дополнительный разрез учета — Подразделение.
  2. Риск возникновения дублей предопределенных элементов и классификаторов (валюты, единицы измерения, страны).
  3. Проблемы производительности при использовании универсальных обработок выгрузки на больших объемах данных.

Метод 1: Использование РИБ и апгрейда конфигурации (наиболее надежный)

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

Шаг 1: Создание частичной копии через РИБ

В исходной базе ПРОФ настроим синхронизацию данных через механизм РИБ (Распределенная информационная база) с фильтром по организации. Рассмотрим, как это сделать:

  1. Создадим новый узел РИБ. В настройках укажем фильтр: выгружать данные только по Орг2.
  2. Создадим начальный образ подчиненного узла.
  3. В результате мы получим чистую базу ПРОФ, где присутствуют только данные Орг2 и все необходимые связанные справочники.

Шаг 2: Апгрейд конфигурации до КОРП

Теперь нашу промежуточную базу нужно превратить из ПРОФ в КОРП. Для этого выполним следующие действия:

  1. Скачаем дистрибутив обновления для перехода с версии ПРОФ на КОРП для вашего текущего релиза (номера версий должны совпадать, например, 3.0.163.26).
  2. Через конфигуратор выполним обновление конфигурации, выбрав файл обновления (.cfu) или файл полной конфигурации КОРП (.cf).
  3. Запустим базу в режиме "Предприятие" для выполнения обработчиков обновления. На этом этапе система автоматически добавит необходимые реквизиты КОРП (например, признак организации с обособленными подразделениями).

Шаг 3: Объединение с целевой базой КОРП

Когда у нас есть база Орг2 в формате КОРП, ее данные можно перелить в целевую базу ИБ-2 (где уже живет Орг1-корп) с помощью обработки "Выгрузка и загрузка данных XML". Поскольку конфигурации теперь идентичны, проблем с несовпадением полей не возникнет.

Метод 2: Универсальный обмен данными XML с предварительной подготовкой

Если вариант с РИБ кажется избыточным, можно воспользоваться универсальной выгрузкой, но с соблюдением строгих правил синхронизации GUID (уникальных идентификаторов).

Выясним причину появления дублей: при загрузке данных в новую базу система ищет объекты по внутреннему идентификатору. Если в целевой базе уже есть справочник Валюты (например, "руб."), созданный вручную или загруженный из другого источника, его GUID не совпадет с GUID рубля из исходной базы, и система создаст второй "руб.".

Рекомендации по синхронизации:

  1. Перед основным переносом выгрузите из целевой базы (ИБ-2) базовые классификаторы: Валюты, КлассификаторЕдиницИзмерения, СтраныМира.
  2. Загрузите их в исходную базу (ИБ-1) с заменой. Это "выровняет" идентификаторы.
  3. При самой выгрузке данных организации используйте фильтры не только по документам, но и по всем связанным регистрам сведений.

Разберем важный программный нюанс. При использовании обработки "Универсальный обмен данными XML" крайне важно, чтобы загрузка происходила в режиме обмена. Это отключает проверки в модулях объектов, которые могут помешать записи исторических данных.


// Пример логики, которую использует обработка при включенном режиме загрузки
Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать();

Борьба с дублями после переноса

Даже при самой тщательной подготовке дубли справочников могут возникнуть. Рассмотрим, как эффективно их устранить:

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

Важное предостережение: В некоторых обсуждениях упоминается очистка дублей напрямую через SQL-запросы. Мы настоятельно не рекомендуем использовать этот метод. Прямое удаление записей в таблицах SQL игнорирует объектную логику 1С и может привести к появлению "битых ссылок" (<Объект не найден>) во всей базе, что потребует сложного технического восстановления.

Особенности учета в КОРП-версии

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

После переноса данных необходимо:

Итоговый чек-лист действий

Рассмотрим краткий план работы для успешного результата:

  1. Создаем архивные копии обеих баз.
  2. Синхронизируем базовые справочники (классификаторы) между базами по GUID.
  3. Выделяем данные Орг2 в отдельную базу (через РИБ или выгрузку XML).
  4. Обновляем полученную базу Орг2 до версии КОРП.
  5. Переносим данные из обновленной базы Орг2 в целевую базу КОРП через XML.
  6. Выполняем поиск и удаление дублей.
  7. Проверяем Оборотно-сальдовую ведомость (ОСВ) в обеих базах — данные должны совпасть до копейки.
  8. Проводим тестирование и исправление базы в конфигураторе.

Такой системный подход гарантирует, что история учета будет сохранена в полном объеме, а работа Орг1-корп в целевой базе не будет нарушена.

← На главную