Перенос данных между конфигурациями — задача, с которой рано или поздно сталкивается любой специалист 1С. В случае с 1С:Бухгалтерия государственного учреждения ред. 1.0 (БГУ) ситуация осложняется строгой привязкой документов к бюджетным классификаторам и особенностями работы на обычных формах. В данной статье мы разберем, как наиболее эффективно перенести платежные поручения, сохранив целостность данных и избежав появления дублей в справочниках.
Если конфигурации в обеих базах абсолютно идентичны (совпадают релизы и нет уникальных доработок, влияющих на структуру метаданных), самым быстрым способом будет использование стандартной обработки ВыгрузкаЗагрузкаДанныхXML.epf. Этот инструмент позволяет напрямую передать объекты из одной базы в другую.
Рассмотрим порядок действий:
ПлатежноеПоручение.Проанализируем главную опасность этого метода: обработка сопоставляет объекты по их внутреннему идентификатору — GUID. Если организация «ООО Иванов» была создана вручную в обеих базах, их GUID будут разными, даже если названия и ИНН совпадают. В результате загрузки в базе-приемнике появится второй элемент «ООО Иванов». Это критическая проблема для учета, поэтому данный метод подходит только в том случае, если база-приемник изначально была создана как копия базы-источника.
Чтобы избежать дублирования справочников, разберем более профессиональный подход — создание правил обмена в конфигурации «Конвертация данных» (КД). Этот способ позволяет нам самостоятельно определить, как система должна искать существующие объекты в базе-приемнике.
Выясним, как настроить правила для корректного поиска. Для справочника Контрагенты в БГУ 1.0 недостаточно искать только по наименованию. Мы рекомендуем установить «Поля поиска» по следующей связке:
Разберем ситуацию программной настройки в КД. В обработчике «Поля поиска» для ПКО Контрагенты мы можем прописать уточняющую логику:
Если СвойстваПоиска["ЭтоГруппа"] = Ложь Тогда
// Ищем только по ИНН и КПП для элементов
СвойстваПоиска.Вставить("ИНН", Объект.ИНН);
СвойстваПоиска.Вставить("КПП", Объект.КПП);
КонецЕсли;
При таком подходе, если программа найдет в базе-приемнике контрагента с таким же ИНН и КПП, она подставит его в платежное поручение, а не создаст новый объект. Это решает проблему «сидения бухов неровно» и появления хаоса в справочниках.
Если бюджетная организация небольшая, а базы сильно замусорены, рассмотрим альтернативный, «полуручной» метод. В 1С:БГУ предусмотрен штатный механизм обмена с банковскими системами.
Выполним следующие шаги:
Посмотрим на преимущества: этот метод заставляет пользователя (или администратора) вручную подтвердить сопоставление данных. Это гарантирует отсутствие дублей, так как сопоставление идет на уровне логики бизнес-процесса, а не только по GUID.
Проанализируем специфику БГУ 1.0. Платежное поручение в этой программе не может существовать без привязки к рабочему плану счетов. При переносе крайне важно убедиться в следующем:
Для минимизации ошибок при массовом переносе, рассмотрим использование префиксов информационных баз. Установим в базе-приемнике уникальный префикс (например, «ПЕР»). При загрузке документов номера платежек получат этот префикс, что позволит легко отфильтровать перенесенные данные от созданных на месте.
Также полезно использовать расширенные версии обработки XML с диска ИТС, которые поддерживают режим «Проверять наличие объектов при загрузке». Это позволит увидеть потенциальные дубли до того, как они будут записаны в базу данных.
Подведем итог: для быстрого переноса между точными копиями выбираем ВыгрузкаЗагрузкаДанныхXML. Для регулярного обмена или переноса в рабочую базу с риском дублей — используем Конвертацию данных с настроенными полями поиска по ИНН/КПП. А для разового и контролируемого переноса небольшого объема данных отлично подойдет механизм Клиент-Банк.