Рассмотрим частую ситуацию: настроена синхронизация данных между двумя базами, например, из 1С:ERP в 1С:Бухгалтерию. Для одной организации документы переносятся с исходными номерами, а для другой — к номеру документа внезапно добавляется дополнительная буква, например, «В». Номер был ДГЦБ-000015, а в базе-приемнике стал ДГЦБ-В00015. При этом настройки обмена выглядят абсолютно идентичными. Разберемся, почему так происходит и как найти источник этой загадочной буквы.
Появление дополнительного префикса — это почти всегда не ошибка, а результат работы заложенного в систему механизма, который обеспечивает уникальность и корректность данных. Наша задача — найти этот механизм и понять, почему он срабатывает в одном случае и не срабатывает в другом.
Прежде чем погружаться в код и настройки в базе-приемнике, необходимо определить, на какой стороне возникает изменение номера. Проблема может быть как на стороне источника (ERP), так и на стороне приемника (БП).
ДГЦБ-000015).Анализируем результат:
Этот простой шаг сэкономит массу времени и сузит область поисков.
В системе 1С есть несколько стандартных мест, где могут быть заданы префиксы, которые автоматически добавляются к номерам документов. Проверим их в той информационной базе, где происходит изменение номера.
Это одна из самых распространенных, но не очевидных причин. В 1С:ERP существует несколько видов документов, отражающих реализацию, которые в 1С:Бухгалтерии соответствуют одному документу Реализация (акты, накладные).
Например, в БП загружаются как один вид документа:
Реализация товаров и услуг из ERPРеализация услуг и прочих активов из ERPАкт выполненных работ из ERPПередача товаров между организациями из ERPЧтобы в Бухгалтерии можно было отличить, какой именно документ был в ERP, стандартные правила обмена добавляют к номеру специальные префиксы. Например:
Акт выполненных работ.Реализация услуг и прочих активов.В обсуждаемой теме префикс «В», скорее всего, добавляется при выгрузке документа Взаимозачет задолженности из ERP в документ Корректировка долга в БП. Хотя автор вопроса утверждает, что выгружает документ «Реализация товаров и услуг», стоит еще раз внимательно проверить тип исходного документа в ERP. Возможно, для одной организации используется именно стандартная реализация, а для другой — другой вид документа, который при конвертации получает свой служебный префикс.
Если проверка стандартных настроек не дала результата, значит, номер изменяется программно. Здесь потребуется режим отладки и анализ кода конфигурации.
Логика обмена данными описывается в правилах конвертации. Их можно открыть с помощью конфигурации «Конвертация данных» и проанализировать.
РеализацияТоваровУслуг.Перед выгрузкой (в правилах на стороне ERP) и После загрузки (в правилах на стороне БП).Номер. Часто именно там содержится код, который добавляет префиксы при определенных условиях.Это самый надежный способ найти строку кода, которая меняет номер. Выполним отладку на стороне базы-приемника (БП).
РеализацияТоваровУслуг.ПередЗаписью().ЭтотОбъект.Номер.Также полезно установить точку останова на подписках на события, например, на общей подписке ПриУстановкеНовогоНомераДокумента или других, связанных с записью объектов при обмене данными.
Если отладка сложна, можно попробовать найти проблемный код через глобальный поиск по конфигурации (включая все подключенные расширения).
Что искать?
".Номер = ", "Префикс", "УстановитьНовыйНомер" в контексте обработчиков обмена.Подведем итог. Изменение номера документа при синхронизации — это штатное поведение, предназначенное для предотвращения конфликтов нумерации и для идентификации типов исходных документов. Чтобы решить проблему, нужно последовательно пройти все шаги: от анализа файла обмена и проверки простых настроек до глубокого анализа кода с помощью отладчика. Чаще всего причина кроется либо в префиксе организации/подразделения, либо в том, что из системы-источника выгружаются разные по типу документы, которые в приемнике преобразуются в один.