Перенос данных между идентичными конфигурациями «1С:Бухгалтерия предприятия 3.0» (БП 3.0) — задача стандартная, но использование современного механизма EnterpriseData (ED) вместо привычного обмена через XML (КД 2.0) вызывает у многих разработчиков вопросы. Рассмотрим подробно, как задействовать существующие правила обработки данных (ПОД), избежать дублирования плана счетов и корректно настроить план обмена для переноса остатков.
В типовых конфигурациях 1С, работающих на базе EnterpriseData, правила конвертации уже заложены в логику модуля менеджера обмена. Однако по умолчанию многие документы, такие как Ввод начальных остатков, могут быть исключены из состава синхронизации или правил регистрации. Наша задача — выяснить, как «подтолкнуть» систему к выгрузке нужных данных.
Основная сложность заключается в том, что в КД 3.0 логика перемещена из XML-файла правил внутрь кода конфигурации (общие модули менеджеров обмена). Проанализируем шаги, необходимые для активации переноса остатков.
Для того чтобы объект попал в выгрузку EnterpriseData, он должен быть зарегистрирован на узле плана обмена. Рассмотрим действия, которые необходимо предпринять:
СинхронизацияДанныхЧерезУниверсальныйФормат). Если нет — их нужно добавить в состав метаданных плана обмена.Вся магия EnterpriseData скрыта в модуле МенеджерОбменаЧерезУниверсальныйФормат. Если нам необходимо добавить новые ПОДы или изменить логику существующих, мы должны работать именно с этим объектом. Выясним причину, по которой нужные объекты могут не попадать в файл выгрузки.
В модуле менеджера за процесс отвечают несколько ключевых функций. Нам необходимо убедиться, что в функции ПолучитьПравилаОбработкиДанных описаны правила для наших документов:
Процедура ЗаполнитьПравилаОбработкиДанных(ПравилаОбработки) Экспорт
// Пример добавления правила для ввода остатков по взаиморасчетам
Правило = ПравилаОбработки.Добавить();
Правило.Имя = "Документ_ВводОстатков_Отправка";
Правило.ОбъектВыборки = Метаданные.Документы.ВводОстатков;
Правило.Очередь = 2;
КонецПроцедуры
Если нужного ПОДа нет в типовом менеджере, его придется дописать вручную. Также важно проверить функцию ПриОтправкеДанных, где часто жестко прописываются фильтры по типам объектов.
Одна из главных «граблей» при переносе между БП 3.0 и БП 3.0 — это дублирование предопределенных счетов. Несмотря на то, что счета в обеих базах называются одинаково (например, 41.01), их внутренние идентификаторы (GUID) могут отличаться. Рассмотрим, как заставить систему сопоставлять счета по коду:
ПланСчетовСсылка.Хозрасчетный. Вместо поиска по уникальному идентификатору следует установить приоритет поиска по коду.ПриРазгрузкеДанных или настроив соответствующим образом структуру XDTO.Если мы не хотим снимать конфигурацию с поддержки для правки модуля менеджера обмена, воспользуемся механизмом внешних обработок. Разберем по шагам, как это сделать, так как нужные поля в интерфейсе часто скрыты:
Дополнительно или поля Использовать внешние правила и Имя файла правил. Установим для них флаг видимости.При переносе остатков часто возникают ситуации, когда документ переносится, а связанные с ним справочники (контрагенты, номенклатура) превращаются в битые ссылки. Рассмотрим, как этого избежать:
В EnterpriseData реализован механизм дистанционной выгрузки. Если в правилах конвертации для свойств (ПКС) документа стоит признак «Выгружать объект полностью», то ссылка потянет за собой данные справочника. Если же стоит «Выгружать только ссылку», а объекта в целевой базе нет — мы получим «Объект не найден».
Проверим настройки выгрузки в ПОДах для остатков. Выясним причину: возможно, справочники не зарегистрированы на узле обмена. Проанализируем возможность принудительного включения связанных объектов в пакет данных через расширение состава выгрузки в коде менеджера.
Если стандартный EnterpriseData через план обмена идет тяжело, можно рассмотреть альтернативный подход, который применил автор темы. За основу берется внешняя обработка перехода, например, «Перенос данных из БП в ERP».
Проанализируем этот алгоритм:
Документ_ОстаткиРасчетыСПоставщиками).Важный момент: При использовании этого метода не забудьте прописать дату переноса в параметрах конвертации. Это критично для корректного формирования документов Ввод остатков в целевой базе, так как они должны создаваться последней секундой года или месяца, предшествующего началу учета.
Для успешного переноса остатков из БП 3 в БП 3 через универсальный формат необходимо:
Ввод остатков включены в План обмена и имеют соответствующие ПОД в Менеджере обмена.Используя эти инструкции, мы сможем эффективно использовать гибкость EnterpriseData и Конвертации данных 3.0 для решения сложных задач миграции данных.