При внедрении «1С:Управление торговлей 11.4» (УТ) в компанию, где ранее учет велся только в «1С:Бухгалтерия предприятия 3.0» (БП), часто возникает задача обратного переноса данных. Типовой обмен настроен таким образом, что первичные документы (поступления, реализации) создаются в торговой базе и транслируются в бухгалтерию. Однако в ситуации «чистой» торговой базы пользователям необходимо оперативно получить документы поступления в УТ для корректного подбора номеров ГТД и контроля остатков. Разберем, как реализовать этот перенос, используя механизмы «Конвертации данных» (КД).
Первым делом нам необходимо разобраться, какая технология обмена используется в современных версиях конфигураций. Начиная с релизов БП 3.0.44 и УТ 11.2, фирма «1С» перевела типовую синхронизацию на формат Enterprise Data (ED), который базируется на «Конвертации данных 3.0». В отличие от классической КД 2.0, обмен здесь происходит не напрямую «объект в объект», а через промежуточное звено — XDTO-пакет (универсальный формат).
Проанализируем ситуацию: если мы хотим изменить типовой обмен, нам придется дорабатывать МенеджерОбменаЧерезУниверсальныйФормат. Это трудоемкая задача, требующая отличного знания структуры XDTO. Однако, если задача разовая или требуется специфический перенос «один в один», использование «Конвертации данных 2.0» остается актуальным и более простым в реализации инструментом. Важно понимать: штатный синхронизатор в интерфейсе программ не примет правила КД2. Для работы с ними нам потребуется внешняя обработка Универсальный обмен данными в формате XML.
Прежде чем приступать к написанию правил, мы должны подготовить «чистую» базу УТ. Перенос документов без предварительной синхронизации справочников приведет к дублированию данных. Рассмотрим шаги подготовки:
Номенклатура, Контрагенты, Склады и Организации. Крайне важно сохранять УИД (уникальные идентификаторы) объектов. Если справочники в УТ уже созданы вручную, придется настраивать правила поиска по ИНН/КПП для контрагентов и по Артикулу/Наименованию для номенклатуры.ВидыЗапасов. Если документ поступления просто «закинуть» в базу без проведения и заполнения этой аналитики, номера ГТД в реализации автоматически не подтянутся.Рассмотрим процесс создания правил для переноса документов «Поступление (акты, накладные, УПД)» из БП в «Приобретение товаров и услуг» в УТ. Разберем по шагам:
Шаг 1: Выгрузка метаданных. С помощью обработки MD83Exp.epf выгружаем структуру метаданных из БП 3.0 и УТ 11.4. Загружаем их в конфигурацию «Конвертация данных 2.1».
Шаг 2: Создание ПВД и ПКО. Создаем правило конвертации объекта (ПКО) для документа. В БП это ПоступлениеТоваровУслуг, в УТ — ПриобретениеТоваровУслуг. Настраиваем сопоставление полей:
Дата -> ДатаНомер -> НомерКонтрагент -> Поставщик и КонтрагентДоговор -> ДоговорШаг 3: Перенос табличной части и ГТД. Это самая важная часть. В БП номер ГТД может храниться непосредственно в табличной части или в справочнике НомераГТД. В УТ 11 нам нужно передать данные так, чтобы заполнилось поле НомерГТД в табличной части Товары. Проанализируем пример кода в обработчике ПриЗагрузке для поиска или создания номера ГТД в приемнике:
// Пример логики поиска номера ГТД в УТ 11
Если ЗначениеЗаполнено(Объект.НомерГТД) Тогда
НайденныйГТД = Справочники.НомераГТД.НайтиПоНаименованию(СтрокаГТД);
Если НайденныйГТД.Пустая() Тогда
НовыйГТД = Справочники.НомераГТД.СоздатьЭлемент();
НовыйГТД.Наименование = СтрокаГТД;
НовыйГТД.Записать();
Объект.НомерГТД = НовыйГТД.Ссылка;
Иначе
Объект.НомерГТД = НайденныйГТД;
КонецЕсли;
КонецЕсли;
Выясним причину, по которой двусторонний обмен может «зациклиться». Если мы настроили обмен так, что документы мигрируют в обе стороны, то при изменении документа в УТ он улетает в БП, там перезаписывается, признается «новым» для обмена и летит обратно в УТ, затирая изменения пользователя. Чтобы этого избежать, при использовании КД2 в правилах выгрузки рекомендуется:
ПередВыгрузкой проверку на источник изменения (например, через дополнительный реквизит или префикс номера).Если разработка собственных правил кажется слишком сложной, стоит обратить внимание на существующие наработки. В сообществе 1С популярны «Правила обмена от Макса», которые оптимизированы именно для перехода с БП на УТ. Такие решения часто включают в себя сложные алгоритмы сопоставления ВидовЗапасов и Партий, что критично для корректного формирования себестоимости в УТ 11.4.
Если нам нужно перенести документы разово, рассмотрим вариант использования обработки «Загрузка данных из табличного документа» или написание простого скрипта через COM-соединение. Проанализируем алгоритм:
V83.COMConnector.Этот метод хорош тем, что не требует изучения механизмов КД, но он работает значительно медленнее и сложнее в поддержке при обновлении конфигураций.
Подведем итог: Перенос документов из БП в УТ через КД 2.0 возможен и часто является более быстрым решением для разовых задач, чем доработка типового Enterprise Data. Однако при этом вся ответственность за целостность данных (особенно в части ГТД и складского учета) ложится на разработчика правил. Для долгосрочного использования рекомендуется осваивать КД 3.0 и расширять типовой формат обмена.