Почему задваивается организация при выгрузке остатков в 1С и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При переносе начальных остатков или документов из одной базы 1С в другую разработчики и бухгалтеры часто сталкиваются с неприятной ситуацией: после загрузки файла XML организация в базе-приемнике дублируется. При этом совпадение кодов, ИНН, КПП и наименований не предотвращает создание нового элемента справочника. Проанализируем причину возникновения этой ошибки и рассмотрим эффективные варианты её решения.

Выясним причину задвоения организации

Разберем механику работы типовой обработки Выгрузка и загрузка данных XML. Данный инструмент предназначен для идентичного переноса данных между одинаковыми конфигурациями. Поиск и сопоставление элементов справочников при этом выполняются исключительно по внутреннему уникальному идентификатору ссылочного объекта — UUID (GUID).

Если организация в базе-приемнике была создана вручную или заведена ранее при другом обмене, платформа присвоила ей новый UUID. При загрузке данных обработка сравнивает идентификаторы. Не найдя в приемнике объекта с UUID из базы-источника, платформа создает новую организацию, несмотря на полное совпадение текстовых реквизитов (ИНН, КПП, Код, Наименование).

Попытка исправить ситуацию простой заменой ссылок через обработку «Поиск и замена значений» нередко приводит к появлению копеечного сальдо в оборотно-сальдовой ведомости или искажению аналитики. Это происходит по следующим причинам:

  1. Справочник Организации в конфигурации «Бухгалтерия предприятия» связан со множеством регистров сведений (учетная политика, история КПП, ответственные лица, регистрация в ИФНС). При замене ссылки в документах подчиненные записи регистров могут остаться привязанными к старому дублю.
  2. В базе-приемнике может быть установлен Период запрета изменения данных. В этом случае обработка пропускает замену ссылок в закрытых периодах, из-за чего часть проводок остается на старой организации.

Способ 1. Использование правил конвертации и обмена по полям поиска

Если требуется перенести остатки без создания дублей, откажемся от стандартной выгрузки по UUID в пользу использования обработки Универсальный обмен данными в формате XML и настроенных правил обмена.

Рассмотрим порядок действий при использовании конфигурации «Конвертация данных» (КД 2.0):

  1. Откроем правила обмена в «Конвертации данных» и найдем правило конвертации объекта (ПКО) для справочника Организации.
  2. На вкладке «Правила поиска» снимем флажок Искать по уникальному идентификатору.
  3. Отметим флажками поля поиска, по которым система должна сопоставлять элементы: ИНН и КПП (или Код).
  4. Сохраним правила обмена в файл XML.
  5. Выгрузку и загрузку данных выполним с помощью обработки Универсальный обмен данными в формате XML, указав сохраненный файл правил.

В этом случае при загрузке документов платформа сначала найдет существующую организацию по ИНН/КПП и подставит ссылку на неё во все переносимые операции.

Способ 2. Программное выравнивание UUID перед переносом

Если нет возможности формировать правила обмена через «Конвертацию данных», заменим UUID организации в базе-источнике на идентификатор организации из базы-приемника перед выгрузкой.

Проанализируем пример программного кода, который позволяет установить нужный UUID для существующей организации в источнике:


// Получаем ссылку на организацию в источнике
ОрганизацияСсылка = Справочники.Организации.НайтиПоКоду("00-000001");

// Идентификатор организации из базы-приемника (строка GUID)
ЗначениеGUID = "12345678-1234-1234-1234-123456789abc";
НовыйUUID = Новый УникальныйИдентификатор(ЗначениеGUID);

// Создаем ссылку с нужным UUID и подменяем её
НоваяСсылка = Справочники.Организации.ПолучитьСсылку(НовыйUUID);

// Выполняем запись нового элемента с переносом реквизитов или используем замену ссылок

После того как уникальные идентификаторы в обеих базах станут равны, обработка Выгрузка и загрузка данных XML корректно привяжет все переносимые документы к существующей организации в приемнике.

Способ 3. Корректная объединение и замена дублей в базе-приемнике

Если загрузка уже выполнена и в базе образовались две организации, разберем алгоритм правильного устранения дубля без потери сальдо:

  1. Проверим и временно отключим Период запрета изменения данных в разделе Администрирование — Настройки пользователей и прав.
  2. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных и откроем типовую обработку Поиск и удаление дублей.
  3. В поле «Искать в» выберем справочник Организации. В качестве главного элемента (оригинала) укажем организацию, которая создавалась в приемнике изначально.
  4. Выполним объединение элементов. Обработка заменит ссылки во всех документах и регистрах.
  5. Отдельно проверим подчиненные справочники (Банковские счета, Регистрация в налоговом органе) на наличие дублирующих записей и объединим их при необходимости.
  6. Выполним перепроведение перенесенных документов Операция (бухгалтерский и налоговый учет) или перезапишем их, чтобы обновленная аналитика правильно отразилась в регионах учета.

Альтернативные варианты ввода остатков

Посмотрим на другие стандартные механизмы, позволяющие избежать проблем со сведением сальдо:

← На главную