Так уж исторически сложилось, что пришлось много заниматься различными выгрузками из разных конфигураций.
Большинство решений реализовано в виде правил КД 2.0. Но почему то схема: перенес и заработало в жизни как то не получалось. Частенько переход с одной программы на другую растягивался по разных причинам и усложнялся в процессе выполнения. Да еще после перехода часто получалось, что надо точечно доперенести/дозаполнить и т.д. Т.к. некоторые ошибки выявлялись спустя 2-3 месяца.
В таких случаях лично мне не нравилось использование правил, слишком сложно контролировать что перенеслось ровно то, что надо. Слишком долго накладывать условия и проверять, что они правильно сработали. И вообще отладка правил для меня какое-то мучение с кучей потраченного времени.
Другое дело COM соединение. Почему-то на сложных задачах мне так нравится больше.
И вот, в очередной раз адаптируя обработку перехода с УПП на ERP, решил, что стоит выложить. Может, кому пригодится. Эту обработку я переделывал, наверное, не один десяток раз для разных выгрузок из конфигураций 1С 7.7 и 1С 8 в 1С 8. И все эти случаи были с жутко допиленными базами и кучей самых неожиданных костылей.
Общий принцип, заложенный в эту обработку сейчас:
- В базе исходнике создается план обмена. Для регистрации изменений с целью последующей довыгрузки. Причина - редко когда выгрузку можно проверить за день. Обычно проверка занимает 2-3 недели, если база большая. И после проверки надо догрузить новое и измененное старое.
Использование плана обмена в обработке определяется галочкой "ИспользоватьПланОбмена". Сам план обмена ищется по коду плана в базе приемнике.
- В базе приемнике создается план обмена. С целью объединения справочников (когда в процессе выгрузки нужно соединить кривые справочники). В процессе заполняется Регистр сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов и для него нужен план обмена. Так же бывают случаи когда нужно несколько баз сложить в одну при переходе. Этот же регистр позволяет запомнить соединенные справочники. Клиенты очень любят рассказывать, что в разных базах справочники "одинаковые". Только вот они как то не очень складываются и правила "совпадения" бывают крайне не однозначные.
Также в плане обмена включается отбор по организации и эта организация используется в процессе. В данном случае так было удобнее. Организация была создана до того, как начался перенос.
- При переносе справочников и документов, там где получается программа сохраняет GUID исходной базы.
- Конкретно в данном решении в исходной базе были дополнительные справочники, которые выгружались как подчиненные партнеры. Соответственно в базе ERP необходимо было включить раздельное использование контрагентов и партнеров.
- Данные бух. учета и налогового учета в документах никак не заполняются. Все заполнение после переноса.
- Начальные остатки - бух счета вообще не учитываются. Данные остатков товара из регистра партий бух учет. Данные долгов из взаиморасчетов. Без раскладки по документам расчетов, потому что в ERP по договору в целом работает значительно лучше, чем ручная раскладка по накладным в УПП.
- Счета 68, 69, 84, 50, 51 и т.д. вообще не вижу смысла делать перенос остатков.
- Договоры грузятся только с покупателем и поставщиком. Все прочие было принято решение обработать вручную. Там всякие лизинги и займы, их из УПП в ERP автоматически красиво не положить.
Эта обработка предназначена для тех, кто сможет прочитать код, понять и дописать свое. В чистом виде она не взлетит. У меня никогда не было задачи сделать универсальную обработку, которая запустится из коробки и все выгрузит. В каждом конкретном случае она подгонялась под задачу.
Написана на управляемой форме для загрузку в базу на платформе 8.3.15 и выше. Исходная база может быть любая 8.2/8.3. При необходимости переделывается на загрузку из 7.7.
P.S. Писать сюда, что в обработке ошибка или что-то можно сделать по-другому, смысла нет, все равно читать не буду. Кто разбирается, сам поправит и допишет что надо.