При настройке стандартной синхронизации данных между конфигурациями 1С:ERP Управление предприятием и 1С:Документооборот специалисты часто сталкиваются с жестким требованием системы: обязательной установкой префикса информационной базы. Для многих организаций, где нумерация документов уже устоялась и не предполагает наличие буквенных или дополнительных цифровых индексов, это становится серьезной проблемой. Разберем подробно, почему так происходит, какие риски несет удаление префикса и как решить задачу элегантно, не ломая логику системы.
Для начала проанализируем, зачем вообще нужен префикс. В типовых решениях на базе Библиотеки стандартных подсистем (БСП) префикс выполняет две критически важные, но разные функции:
ПриУстановкеНовогоНомера. Это гарантирует уникальность номеров при объединении данных из разных баз в одной системе-приемнике.Проблема в том, что помощник настройки синхронизации не позволяет завершить процесс, если поле «Префикс этой базы» не заполнено. Многие администраторы пытаются обмануть систему, устанавливая префикс на этапе настройки и удаляя его сразу после. Рассмотрим, почему это может быть опасно.
Если мы установим префикс, завершим настройку, а затем очистим его в настройках синхронизации или константах, мы можем столкнуться со следующими последствиями:
Одним из простых способов, предложенных в сообществе, является использование префикса 00. Рассмотрим этот вариант. Если установить префикс из двух нулей, номера документов примут вид 00-00000001. Это может подойти, если в компании уже используется цифровая нумерация с лидирующими нулями. Однако это все равно меняет визуальное представление документа в печатных формах и реестрах, что часто неприемлемо для бухгалтерии.
Проанализируем наиболее технологичный способ: оставить префикс в настройках синхронизации (чтобы обмен работал корректно), но запретить ему попадать в номера документов и коды справочников. Для этого мы создадим небольшое расширение. В расширении нам нужно перехватить процедуру, отвечающую за установку номера. Посмотрим на пример реализации логики в модуле расширения:
&После("ПриУстановкеНовогоНомера")
Процедура Расш_ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
// Очищаем префикс базы, оставляя только префикс организации (если он нужен)
// или полностью обнуляем переменную Префикс для чисто цифровой нумерации
Префикс = "";
КонецПроцедуры
Этот метод позволяет «обмануть» механизм нумерации. При создании нового документа система будет видеть, что в настройках базы префикс есть, но в момент формирования конкретного номера расширение будет его очищать. Таким образом, в базе ERP нумерация останется чистой, а для целей обмена префикс будет зафиксирован в узле плана обмена.
Выясним еще одну особенность. В ERP префикс часто хранится в нескольких местах: в настройке конкретной синхронизации и в общей константе ПрефиксИнформационнойБазы. Попробуем следующий алгоритм:
ЭР).В некоторых релизах БСП этого достаточно, чтобы механизм ПриУстановкеНовогоНомера перестал подхватывать префикс, при этом сам узел обмена (в плане обмена) сохранит свой код и работоспособность.
Если требования заказчика категоричны и использование стандартного префикса запрещено в любом виде, рассмотрим вариант отказа от типовой синхронизации. Мы можем написать простую обработку по выгрузке справочников, используя COM-соединение или HTTP-сервисы. Рассмотрим пример логики выгрузки через регистрацию изменений:
// Пример регистрации изменений для своего обмена
ПланОбменаСсылка = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("МойОбменВДокументооборот");
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ПланОбменаСсылка, НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
ДанныеОбъекта = ВыборкаИзменений.Получить();
// Логика передачи данных в ДО через веб-сервис
ПередатьВДокументооборот(ДанныеОбъекта);
КонецЦикла;
Такой подход полностью снимает вопрос префиксов, так как вы сами контролируете состав передаваемых данных и правила их сопоставления в базе-приемнике. Однако это потребует затрат на разработку и поддержку кода при обновлениях конфигурации.
Проанализировав все варианты, мы рекомендуем придерживаться следующей стратегии: установить требуемый префикс в помощнике синхронизации, но заблокировать его влияние на нумерацию с помощью расширения. Это сохранит целостность стандартного механизма обмена данными и обеспечит неизменность номеров документов в ERP, что удовлетворит требования как технических специалистов, так и бизнес-пользователей.