Почему при синхронизации 1С:ERP и 1С:Бухгалтерия к номеру документа добавляется префикс?

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

Рассмотрим частую ситуацию: настроена синхронизация данных между двумя базами, например, из 1С:ERP в 1С:Бухгалтерию. Для одной организации документы переносятся с исходными номерами, а для другой — к номеру документа внезапно добавляется дополнительная буква, например, «В». Номер был ДГЦБ-000015, а в базе-приемнике стал ДГЦБ-В00015. При этом настройки обмена выглядят абсолютно идентичными. Разберемся, почему так происходит и как найти источник этой загадочной буквы.

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

Шаг 1: Локализация проблемы — анализируем файл обмена

Прежде чем погружаться в код и настройки в базе-приемнике, необходимо определить, на какой стороне возникает изменение номера. Проблема может быть как на стороне источника (ERP), так и на стороне приемника (БП).

  1. Выполните выгрузку данных из 1С:ERP, но не загружайте их в Бухгалтерию. Вместо этого сохраните данные в XML-файл обмена.
  2. Откройте этот XML-файл в любом текстовом редакторе (например, Notepad++).
  3. Найдите в файле проблемный документ по его исходному номеру (например, ДГЦБ-000015).

Анализируем результат:

Этот простой шаг сэкономит массу времени и сузит область поисков.

Шаг 2: Проверка стандартных настроек префиксации

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

  1. Префикс информационной базы. В настройках узла плана обмена может быть указан префикс для всей информационной базы (для массового исправления номеров подойдет обработка изменения нумерации). Он служит для того, чтобы номера документов из разных баз не пересекались. Откройте настройки синхронизации данных и проверьте, не установлен ли там искомый префикс «В».
  2. Префикс организации. Это самая частая причина. Откройте карточку организации, по которой происходит проблемный обмен, и проверьте поле «Префикс». Например, если префикс организации «ДГ», а в настройках обмена добавляется еще один, они могут комбинироваться.
  3. Префикс обособленного подразделения. Если в 1С:Бухгалтерии используется учет по обособленным подразделениям (особенно в версии КОРП), у каждого подразделения также может быть свой префикс. Если документ при загрузке привязывается к такому подразделению, его префикс будет добавлен к номеру. Проверьте карточку соответствующего подразделения.

Шаг 3: Анализ типового механизма соответствия документов

Это одна из самых распространенных, но не очевидных причин. В 1С:ERP существует несколько видов документов, отражающих реализацию, которые в 1С:Бухгалтерии соответствуют одному документу Реализация (акты, накладные).

Например, в БП загружаются как один вид документа:

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

В обсуждаемой теме префикс «В», скорее всего, добавляется при выгрузке документа Взаимозачет задолженности из ERP в документ Корректировка долга в БП. Хотя автор вопроса утверждает, что выгружает документ «Реализация товаров и услуг», стоит еще раз внимательно проверить тип исходного документа в ERP. Возможно, для одной организации используется именно стандартная реализация, а для другой — другой вид документа, который при конвертации получает свой служебный префикс.

Шаг 4: Поиск проблемы в коде (для разработчиков)

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

Проверка правил конвертации

Логика обмена данными описывается в правилах конвертации. Их можно открыть с помощью конфигурации «Конвертация данных» и проанализировать.

  1. Найдите в правилах объект — документ РеализацияТоваровУслуг.
  2. Проверьте обработчики событий для этого объекта, особенно Перед выгрузкой (в правилах на стороне ERP) и После загрузки (в правилах на стороне БП).
  3. Обратите особое внимание на обработчики для свойства Номер. Часто именно там содержится код, который добавляет префиксы при определенных условиях.

Отладка процесса загрузки

Это самый надежный способ найти строку кода, которая меняет номер. Выполним отладку на стороне базы-приемника (БП).

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

Также полезно установить точку останова на подписках на события, например, на общей подписке ПриУстановкеНовогоНомераДокумента или других, связанных с записью объектов при обмене данными.

Глобальный поиск и расширения

Если отладка сложна, можно попробовать найти проблемный код через глобальный поиск по конфигурации (включая все подключенные расширения).

Что искать?

Подведем итог. Изменение номера документа при синхронизации — это штатное поведение, предназначенное для предотвращения конфликтов нумерации и для идентификации типов исходных документов. Чтобы решить проблему, нужно последовательно пройти все шаги: от анализа файла обмена и проверки простых настроек до глубокого анализа кода с помощью отладчика. Чаще всего причина кроется либо в префиксе организации/подразделения, либо в том, что из системы-источника выгружаются разные по типу документы, которые в приемнике преобразуются в один.

← На главную