Как исправить рассинхронизацию и перепутанные расчетные счета при обмене между УТ 10.3 и БП 2.0?

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

При настройке регулярного обмена данными между конфигурациями «1С:Управление торговлей 10.3» (УТ) и «1С:Бухгалтерия предприятия 2.0» (БП) пользователи часто сталкиваются с проблемой появления дублирующихся элементов в справочниках. Особенно критичной эта ситуация становится, когда дело касается банковских или расчетных счетов организации. В этой статье мы подробно разберем, почему возникает такая рассинхронизация, как устроены внутренние механизмы сопоставления объектов в 1С и какими способами можно исправить перепутанные расчетные счета без потери связанных документов.

Выясняем глубинную причину проблемы

Расчетные счета в обеих конфигурациях представляют собой подчиненные справочники (владельцем является справочник Организации или Контрагенты). При осуществлении обмена данными, построенного на классической технологии «Конвертация данных 2.1», правила сопоставления объектов работают по жестко заданному алгоритму со следующим приоритетом:

  1. Поиск по уникальному идентификатору (GUID / UUID): Система пытается найти объект в базе-приемнике, у которого внутренний GUID полностью совпадает с GUID пришедшего объекта из базы-источника.
  2. Поиск по регистру сведений «Соответствие объектов информационных баз»: Если GUID не совпадают, система проверяет специальную таблицу соответствий. Если там есть запись, связывающая конкретный объект УТ с конкретным объектом БП, то сопоставление выполняется на ее основе.
  3. Поиск по полям поиска: Если предыдущие шаги не дали результата, система ищет объект по ключевым реквизитам. Для расчетных счетов это обычно связка: Владелец (Организация) + Номер счета + БИК банка.

Рассмотрим ситуацию, описанную в теме форума. В базе БП 2.0 вручную создали новый расчетный счет (РС-2) с новым GUID, не связанным с РС-1 из УТ. Старый расчетный счет РС-1 в БП переписали на другой банк (изменился БИК). В УТ также отредактировали расчетный счет.

Когда запустился очередной обмен, правила поиска в БП не смогли сопоставить РС-1 из УТ со счетом РС-2 (так как у них разные GUID и номера), а также не смогли найти соответствие со старым РС-1 (поскольку у того в БП изменился БИК). Программа посчитала пришедший из УТ счет «новым» объектом и создала в БП еще один дублирующий элемент. В результате в БП появилось два расчетных счета РС-1 с разными внутренними идентификаторами.

Ниже мы подробно разберем четыре практических метода исправления этой ситуации, начиная от простых пользовательских манипуляций и заканчивая профессиональной технической корректировкой регистров обмена.

---

Способ 1. Прямая ручная правка регистра соответствий (Рекомендуемый системный метод)

Для того чтобы в будущем обмен из УТ (счета РС-1) сразу безболезненно попадал в БП на счет РС-2, нам необходимо скорректировать запись в регистре сведений на стороне базы-приемника. Этот регистр хранит жесткие связи «Источник-Получатель».

Проанализируем шаги по реализации этого метода:

  1. Определяем GUID расчетного счета в базе УТ 10.3: Для этого воспользуемся любой консолью запросов или внешней обработкой получения уникального идентификатора. Программный код для получения GUID выглядит следующим образом:
    
    СсылкаНаСчет = Справочники.БанковскиеСчета.НайтиПоРеквизиту("НомерСчета", "40702810XXXXXXXXXXXX");
    ИдентификаторУТ = Строка(СсылкаНаСчет.УникальныйИдентификатор());
    Сообщить("GUID счета в УТ: " + ИдентификаторУТ);
    
  2. Переходим в базу БП 2.0: Открываем регистр сведений Соответствие объектов информационных баз. Найти его можно через главное меню: Операции -> Регистры сведений -> Соответствие объектов информационных баз.
  3. Находим ошибочную запись: В списке записей ищем строку, где в колонке Собственный объект указан старый или некорректный расчетный счет организации, а в колонке уникального идентификатора источника прописан полученный нами ранее GUID счета из УТ.
  4. Выполняем замену: Меняем значение в поле Собственный объект на ваш новый актуальный расчетный счет (РС-2). Сохраняем запись регистра.

После этой несложной манипуляции при следующем автоматическом обмене 1С пропустит этап поиска по полям сопоставления и сразу запишет данные из УТ в нужный расчетный счет РС-2 в БП.

---

Способ 2. Использование универсальной обработки «Поиск и замена значений»

Если в базе БП 2.0 уже созданы дубли и по ним проведены документы (например, платежные поручения или выписки), простое удаление дублирующего счета невозможно. Нам необходимо корректно перенаправить все ссылки документов со старого некорректного счета на новый. Сделать это можно с помощью классической обработки «Поиск и замена значений» для обычных форм.

Разберем данный алгоритм по шагам:

  1. Запускаем обработку «Поиск и замена значений» в базе БП 2.0.
  2. В колонке «Что заменять» выбираем ошибочный дублирующийся расчетный счет (РС-1).
  3. В колонке «На что заменять» указываем правильный, действующий расчетный счет (РС-2).
  4. Нажимаем кнопку «Найти ссылки». Программа просканирует всю базу данных и выведет список документов и регистров, где фигурирует старый счет.
  5. Нажимаем кнопку «Выполнить замену». Обработка в транзакции перезапишет ссылки во всех найденных объектах.
  6. После успешной замены помечаем дублирующийся счет РС-1 на удаление и окончательно удаляем его через стандартную процедуру Операции -> Удаление помеченных объектов.

Этот способ хорош тем, что нам не нужно искусственно менять номера счетов или БИК банков для выполнения слияния дублей.

---

Способ 3. Пользовательский метод автора темы (Обходной путь через переименование)

Рассмотрим метод, которым успешно воспользовался автор темы на форуме (Сообщение 9). Этот способ подходит для пользователей, не имеющих доступа к программированию и специализированным обработкам, но требующий аккуратности.

Алгоритм действий следующий:

  1. Создаем в базе БП новый временный расчетный счет (назовем его РС-3).
  2. Во всех существующих расчетных счетах организации временно прописываем абсолютно одинаковый номер счета и БИК. Это необходимо для того, чтобы стандартная обработка Поиск и замена дублирующихся элементов (которая ищет строго по совпадению реквизитов) распознала их как полные дубли.
  3. Запускаем обработку поиска дублей. С ее помощью заменяем ссылки с РС-2 на временный счет РС-3, а затем перенаправляем ссылки со старого РС-1 на РС-2.
  4. После проведения всех замен удаляем пустой некорректный счет РС-1.
  5. Возвращаем настоящие номера счетов и БИК банков в исходное правильное состояние для оставшихся счетов.

Важное примечание: Этот метод является рабочим, однако он несет в себе риски временного нарушения логики работы Клиент-Банка, если в этот момент начнется загрузка выписок. Используйте его только при монопольном доступе к базе данных.

---

Способ 4. Интерактивное сопоставление при обмене

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

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

---

Важные подводные камни, о которых необходимо помнить

При проведении любых работ по исправлению расчетных счетов важно учитывать два технологических аспекта:

Мы настоятельно рекомендуем перед выполнением любых массовых замен объектов или ручной корректировки регистров сведений делать полную резервную копию (архив выгрузки .dt) обеих информационных баз!

← На главную