Как реализовать перенос остатков между базами 1С:Бухгалтерия предприятия 3.0 через EnterpriseData

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

Перенос данных между идентичными конфигурациями «1С:Бухгалтерия предприятия 3.0» (БП 3.0) — задача стандартная, но использование современного механизма EnterpriseData (ED) вместо привычного обмена через XML (КД 2.0) вызывает у многих разработчиков вопросы. Рассмотрим подробно, как задействовать существующие правила обработки данных (ПОД), избежать дублирования плана счетов и корректно настроить план обмена для переноса остатков.

Анализ проблемы: почему стандартные правила не всегда работают

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

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

Шаг 1. Настройка состава плана обмена и правил регистрации

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

  1. Проверим, включены ли документы ввода остатков в состав используемого плана обмена (обычно это СинхронизацияДанныхЧерезУниверсальныйФормат). Если нет — их нужно добавить в состав метаданных плана обмена.
  2. Используем обработку «Регистрация изменений для обмена». Если ПОДы в правилах конвертации существуют, ручная регистрация документов ввода остатков может инициировать их выгрузку.
  3. Разберем ситуацию с правилами регистрации (ПР). Правила регистрации для КД 3.0 по-прежнему готовятся в конфигурации «Конвертация данных 2.1». Проанализируем, не стоит ли там фильтр по дате или типу объекта, который блокирует регистрацию документов остатков.

Шаг 2. Работа с менеджером обмена в КД 3.0

Вся магия EnterpriseData скрыта в модуле МенеджерОбменаЧерезУниверсальныйФормат. Если нам необходимо добавить новые ПОДы или изменить логику существующих, мы должны работать именно с этим объектом. Выясним причину, по которой нужные объекты могут не попадать в файл выгрузки.

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


Процедура ЗаполнитьПравилаОбработкиДанных(ПравилаОбработки) Экспорт
    
    // Пример добавления правила для ввода остатков по взаиморасчетам
    Правило = ПравилаОбработки.Добавить();
    Правило.Имя = "Документ_ВводОстатков_Отправка";
    Правило.ОбъектВыборки = Метаданные.Документы.ВводОстатков;
    Правило.Очередь = 2;
    
КонецПроцедуры

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

Шаг 3. Решение проблемы задвоения плана счетов

Одна из главных «граблей» при переносе между БП 3.0 и БП 3.0 — это дублирование предопределенных счетов. Несмотря на то, что счета в обеих базах называются одинаково (например, 41.01), их внутренние идентификаторы (GUID) могут отличаться. Рассмотрим, как заставить систему сопоставлять счета по коду:

Шаг 4. Подключение внешних правил обмена

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

  1. Перейдем в раздел Администрирование — Синхронизация данных — Настройки синхронизации.
  2. Откроем параметры нашего узла обмена.
  3. Воспользуемся командой Еще — Изменить форму.
  4. Найдем в дереве элементов группу Дополнительно или поля Использовать внешние правила и Имя файла правил. Установим для них флаг видимости.
  5. Теперь мы можем выгрузить типовой менеджер обмена в виде внешней обработки, внести в него правки (добавить ПОДы для остатков) и загрузить обратно в настройку.

Шаг 5. Обработка «Объект не найден» и битые ссылки

При переносе остатков часто возникают ситуации, когда документ переносится, а связанные с ним справочники (контрагенты, номенклатура) превращаются в битые ссылки. Рассмотрим, как этого избежать:

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

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

Радикальный метод: использование готовых механизмов перехода

Если стандартный EnterpriseData через план обмена идет тяжело, можно рассмотреть альтернативный подход, который применил автор темы. За основу берется внешняя обработка перехода, например, «Перенос данных из БП в ERP».

Проанализируем этот алгоритм:

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

Резюме

Для успешного переноса остатков из БП 3 в БП 3 через универсальный формат необходимо:

  1. Убедиться, что документы Ввод остатков включены в План обмена и имеют соответствующие ПОД в Менеджере обмена.
  2. Настроить поиск Плана счетов по коду во избежание дублей.
  3. При необходимости использовать внешнюю обработку правил, подключив её через скрытые настройки формы синхронизации.
  4. Следить за полнотой выгрузки связанных справочников, чтобы избежать появления битых ссылок.

Используя эти инструкции, мы сможем эффективно использовать гибкость EnterpriseData и Конвертации данных 3.0 для решения сложных задач миграции данных.

← На главную