Почему при обмене между УТ 11 и БП 3.0 к номеру реализации добавляется префикс Х?

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

При настройке синхронизации данных между 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3.0 специалисты часто сталкиваются с загадочным поведением нумерации. Типичная ситуация: документ в УТ имеет номер ООТ1-001776, а после загрузки в БП он превращается в ООТ1-Х00588. Особенно часто это проявляется у документов с видом операции "Передача товара" (межфирменные продажи или комиссия). Разберемся, почему система ведет себя именно так, и где в конфигураторе скрыты механизмы, отвечающие за эту модификацию.

Анализируем механизмы Enterprise Data (КД 3.0)

Современные обмены между конфигурациями 1С строятся на базе технологии Enterprise Data (Конвертация данных 3.0). В отличие от старой версии КД 2.0, где правила были жестко прописаны в XML-файле, здесь основная логика трансформации данных сосредоточена непосредственно внутри конфигурации в специальных модулях менеджеров обмена. Рассмотрим подробнее, как это влияет на нумерацию.

Когда документ выгружается из УТ, он преобразуется в универсальный формат XDTO. При загрузке в БП 3.0 система анализирует входящие данные. Префикс "Х" (или аналогичные буквенные индексы) часто используется разработчиками фирмы "1С" как средство предотвращения коллизий или для визуального разделения потоков документов. Если в БП один и тот же тип документа (например, РеализацияТоваровУслуг) используется для отражения разных хозяйственных операций, которые в УТ являются разными объектами или имеют разную логику нумерации, механизм обмена может принудительно добавить символ в номер, чтобы избежать дублирования в базе-приемнике.

Поиск причины в модуле МенеджерОбменаЧерезУниверсальныйФормат

Основная точка входа для логики трансформации — это общий модуль МенеджерОбменаЧерезУниверсальныйФормат. Если вы столкнулись с префиксом "Х", первым делом проанализируем именно его. Нам необходимо найти процедуры, отвечающие за инициализацию или преобразование свойств загружаемых объектов.

Выясним причину, изучив код. В модуле менеджера обмена ищите функции, связанные с получением номера. Часто это процедуры с именами типа ПолучитьНомерДляДокументаОбъекта или обработчики ПОД (правил обработки данных). Рассмотрим пример кода, который может скрываться внутри:


// Пример логики, которая может добавлять префикс
Если ДанныеXDTO.ВидОперации = "ПередачаНаКомиссию" Тогда
    ПрефиксОперации = "Х";
    Объект.Номер = ПрефиксОперации + СтрЗаменить(ДанныеXDTO.Номер, " ", "");
КонецЕсли;

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

Роль подписки на событие ПриУстановкеНовогоНомера

Если в коде менеджера обмена префикс не найден, проверим стандартные механизмы БП 3.0. В этой конфигурации активно используется подписка на событие ПриУстановкеНовогоНомера. Пройдем по шагам процесс проверки:

  1. Откроем конфигуратор БП 3.0 и найдем подписку УстановитьПрефиксИнформационнойБазыНомеруДокумента.
  2. Посмотрим на обработчик в общем модуле ПрефиксацияОбъектовСобытия.
  3. Проверим наличие расширений. Часто сторонние разработчики или интеграторы добавляют префиксы именно через расширения, чтобы не снимать конфигурацию с поддержки. Ищите расширения, в которых переопределен метод ПриУстановкеНовогоНомераДокумента.

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

Специфика межфирменных продаж (Intercompany)

В конфигурации "Управление торговлей 11" существует функционал Intercompany. При передаче товаров между собственными организациями документы создаются парой. При выгрузке такой передачи в "Бухгалтерию предприятия" срабатывают особые правила. Разберем ситуацию: в БП документ РеализацияТоваровУслуг с видом операции "Передача между организациями" может требовать уникальной нумерации, отличной от торговых операций.

В некоторых версиях правил обмена префикс "Х" зашит как признак того, что документ пришел из обмена и относится к категории перемещений/передач, чтобы не "сбить" счетчик обычных реализаций в БП. Посмотрим на это со стороны базы-приемника: если документ загружается с готовым номером, БП пытается его сохранить. Но если в алгоритме загрузки стоит вызов функции ОбменДаннымиСервер.СформироватьНомерОбъекта, то номер может быть пересчитан с учетом префиксов обмена.

Проверка регистра "Соответствия объектов информационных баз"

Иногда причина кроется не в текущем коде, а в "памяти" системы. Когда объект первый раз попадает из УТ в БП, создается запись в регистре сведений СоответствияОбъектовИнформационныхБаз. Если при первой загрузке (возможно, ошибочной или на старых правилах) документу был присвоен номер с префиксом "Х", система закрепит эту связь.

Рассмотрим порядок действий для исправления:

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

Как выполнить отладку загрузки номера

Чтобы окончательно выяснить, в какой момент приклеивается "Х", воспользуемся отладкой. Поскольку обмен идет через универсальный формат, нам нужно поймать момент работы Менеджера обмена на стороне БП 3.0.

Выполним следующие шаги:

  1. В конфигураторе БП 3.0 установим точку останова в общем модуле ОбменДаннымиСервер в процедуре ВыполнитьЗагрузкуДанныхДляУзлаИнформационнойБазы.
  2. Запустим синхронизацию.
  3. При остановке проследуем внутрь вызова менеджера обмена. Нас интересует метод ИнициализироватьОбъект для типа Документ.РеализацияТоваровУслуг.
  4. Проанализируем переменную Объект.Номер до и после выполнения процедур трансформации.

Важный момент: Если вы видите, что номер меняется в процедуре ПослеЗагрузкиОбъекта, значит, это программная логика правил КД 3.0, призванная разделить нумерацию по типам операций. Чтобы это изменить, придется создать расширение и переопределить логику в модуле МенеджерОбменаЧерезУниверсальныйФормат, найдя соответствующий участок кода по ключевой строке "Х".

Подведем итог: префикс "Х" не появляется "просто так". Это либо результат работы алгоритмов предотвращения коллизий в КД 3.0, либо специфическая настройка для выделения операций межфирменных передач. Тщательный анализ модуля менеджера обмена и проверка регистра соответствий позволят вам найти и устранить эту особенность нумерации.

← На главную