При переносе начальных остатков или документов из одной базы 1С в другую разработчики и бухгалтеры часто сталкиваются с неприятной ситуацией: после загрузки файла XML организация в базе-приемнике дублируется. При этом совпадение кодов, ИНН, КПП и наименований не предотвращает создание нового элемента справочника. Проанализируем причину возникновения этой ошибки и рассмотрим эффективные варианты её решения.
Разберем механику работы типовой обработки Выгрузка и загрузка данных XML. Данный инструмент предназначен для идентичного переноса данных между одинаковыми конфигурациями. Поиск и сопоставление элементов справочников при этом выполняются исключительно по внутреннему уникальному идентификатору ссылочного объекта — UUID (GUID).
Если организация в базе-приемнике была создана вручную или заведена ранее при другом обмене, платформа присвоила ей новый UUID. При загрузке данных обработка сравнивает идентификаторы. Не найдя в приемнике объекта с UUID из базы-источника, платформа создает новую организацию, несмотря на полное совпадение текстовых реквизитов (ИНН, КПП, Код, Наименование).
Попытка исправить ситуацию простой заменой ссылок через обработку «Поиск и замена значений» нередко приводит к появлению копеечного сальдо в оборотно-сальдовой ведомости или искажению аналитики. Это происходит по следующим причинам:
Организации в конфигурации «Бухгалтерия предприятия» связан со множеством регистров сведений (учетная политика, история КПП, ответственные лица, регистрация в ИФНС). При замене ссылки в документах подчиненные записи регистров могут остаться привязанными к старому дублю.Если требуется перенести остатки без создания дублей, откажемся от стандартной выгрузки по UUID в пользу использования обработки Универсальный обмен данными в формате XML и настроенных правил обмена.
Рассмотрим порядок действий при использовании конфигурации «Конвертация данных» (КД 2.0):
Организации.ИНН и КПП (или Код).Универсальный обмен данными в формате XML, указав сохраненный файл правил.В этом случае при загрузке документов платформа сначала найдет существующую организацию по ИНН/КПП и подставит ссылку на неё во все переносимые операции.
Если нет возможности формировать правила обмена через «Конвертацию данных», заменим UUID организации в базе-источнике на идентификатор организации из базы-приемника перед выгрузкой.
Проанализируем пример программного кода, который позволяет установить нужный UUID для существующей организации в источнике:
// Получаем ссылку на организацию в источнике
ОрганизацияСсылка = Справочники.Организации.НайтиПоКоду("00-000001");
// Идентификатор организации из базы-приемника (строка GUID)
ЗначениеGUID = "12345678-1234-1234-1234-123456789abc";
НовыйUUID = Новый УникальныйИдентификатор(ЗначениеGUID);
// Создаем ссылку с нужным UUID и подменяем её
НоваяСсылка = Справочники.Организации.ПолучитьСсылку(НовыйUUID);
// Выполняем запись нового элемента с переносом реквизитов или используем замену ссылок
После того как уникальные идентификаторы в обеих базах станут равны, обработка Выгрузка и загрузка данных XML корректно привяжет все переносимые документы к существующей организации в приемнике.
Если загрузка уже выполнена и в базе образовались две организации, разберем алгоритм правильного устранения дубля без потери сальдо:
Организации. В качестве главного элемента (оригинала) укажем организацию, которая создавалась в приемнике изначально.Банковские счета, Регистрация в налоговом органе) на наличие дублирующих записей и объединим их при необходимости.Операция (бухгалтерский и налоговый учет) или перезапишем их, чтобы обновленная аналитика правильно отразилась в регионах учета.Посмотрим на другие стандартные механизмы, позволяющие избежать проблем со сведением сальдо:
ОперацияБух) рекомендуется сформировать документы Ввод начальных остатков. Они корректно заполняют не только бухгалтерские проводки, но и технические регистры накопления и сведений, необходимые для полноценного учета в «1С:Бухгалтерия 8».