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