Реализация миграции для документа Счет исходящий Для передачи данных сущности из ELMA3/4 в ELMA365 в глобальном модуле необходимо определить класс маппинга. Пример для справочника Страна (с дополнительными полями в конфигурации ELMA3/4). В ELMA365 создаем Приложение (документ) как предложено здесь: Элемент обмена данными (маппинг): using System; using ITino.ELMA.E365.Common.Models; using ITino.ELMA.Accounting.Documents.Models; namespace E365 { public class OutInvoiceDataItem : DocumentDataItem { public override string Path => "app/_clients/rmgOutInvoice"; public string Number { get; set; } public DateTime Date { get; set; } public OutInvoiceDataItem(DOOutInvoice document) : base(document) { } } } Лисенер для регистрации изменений элемента сущности: using EleWise.ELMA.ComponentModel; using EleWise.ELMA.Runtime.NH.Listeners; using NHibernate.Event; using ITino.ELMA.Accounting.Documents.Models; using EleWise.ELMA.Model.Common; using ITino.ELMA.E365.Common.Components; using EleWise.ELMA.Model.Entities; using ITino.ELMA.E365.Common.Managers; using EleWise.ELMA; namespace E365 { [Component] public class OutInvoiceListener : PostFlushEventListener { public override void OnPostInsert(PostInsertEvent @event) { SyncItem(@event.Entity as DOOutInvoice, true); } /// public override void OnPostUpdate(PostUpdateEvent @event) { SyncItem(@event.Entity as DOOutInvoice, true); } public static Pair SyncItem(DOOutInvoice item, bool syncLink = false) { var data = new OutInvoiceDataItem(item); if (item == null) return new Pair(data, item); data.Number = item.IEEDocNumber; data.Date = item.IEEDocDate; E365DataItemManager.Instance.PushItem(typeof(OutInvoiceDataItem), item.Uid, data, item, SR.T("Счет исходящий: {0}", item.Name)); data.PushVersion(); return new Pair(data, item); } } } Обработчик события полной синхронизации справочника. Так же используется для вызова принудительной синхронизации всех данных из хелпера: using System; using System.Linq; using EleWise.ELMA.ComponentModel; using EleWise.ELMA.Model.Services; using ITino.ELMA.E365.Common.Components; using EleWise.ELMA.Model.Managers; using ITino.ELMA.CRM.Models; namespace E365 { [Component] public class CountrySyncHandler : IForceSyncHandler { public Type Type => InterfaceActivator.TypeOf(); public bool Enabled => true; public void Process() { EntityManager.Instance.FindAll().ToList().ForEach(x => CountryListener.SyncItem(x)); } } }