---
name: bsp-prefixes
description: "Use this skill when the agent needs to extract a clean document or catalog number for display by stripping the infobase prefix, the organization prefix, and user prefixes; needs to compute the print-ready number for a document with given strip-rules; needs to determine the user prefix of a coded object; needs to change the infobase (distributed database node) prefix and continue existing numbering; needs to add the computed-prefix field to a data composition schema; or needs to implement an event handler that resets the object number/code when the date or organization changes. Do not use for setting up a data exchange plan, registering exchange changes, or building queries for the RIB. Do not use for adding an organization as a metadata object."
metadata:
  scope: bsp-3.1.11
  version: "3.1.11"
  layer: L3
  related_subsystems:
    - ПрефиксацияОбъектов
  related_skills:
    - bsp-fundamentals
    - bsp-base-common
    - bsp-data-exchange
---

# BSP Prefixes (ПрефиксацияОбъектов: префиксы номеров и кодов)

Скил по подсистеме **«ПрефиксацияОбъектов»** — обслуживает автоматическое назначение и обработку префиксов в номерах документов и кодах справочников/ПВХ/бизнес-процессов. Префиксы нужны в двух разрезах: **информационной базы** (РИБ/распределённая БД, чтобы различать, в какой из бал номера) и **организации** (чтобы вести сквозную нумерацию по организациям). Цель скила — показать, как правильно разбирать и формировать номера, и в каких случаях нужно вмешиваться в логику префиксации через переопределяемые модули.

Скил не описывает **обмен данными** (планы обмена, регистрация изменений — `bsp-data-exchange`) и **синхронизацию данных** как процесс. Здесь — только формат номера, программный разбор префиксов и подписки на события для объектов с префиксами.

## When to use

- Нужно из номера документа или кода справочника получить «чистый» номер на печать — убрать префикс ИБ, префикс организации и/или пользовательский префикс.
- Нужно сформировать «номер на печать» из номера объекта с учётом настраиваемых правил удаления префиксов (через `НомерНаПечать` или переопределяемый обработчик `ПриПолученииНомераНаПечать`).
- Нужно извлечь пользовательский префикс из номера/кода (для логики формирования печатной формы, разбора, миграции данных).
- Нужно добавить вычисляемое поле `Номер.СПрефиксом` в схему компоновки данных (для отчётов и динамических списков).
- Нужно программно изменить префикс текущей ИБ (например, при смене префикса узла РИБ) с продолжением сквозной нумерации.
- Нужно переопределить логику вычисления «базового номера» или «базового кода» для объектов с нестандартным форматом номера/кода.
- Нужно реализовать переопределяемый обработчик события при изменении номера/кода в прикладной конфигурации.

## Не использовать, если

- Нужно настроить **план обмена** (создание узлов, регистрация изменений, обработка коллизий) — это `bsp-data-exchange`. Префиксация объектов лишь **потребляет** префикс ИБ, но саму инфраструктуру обмена не предоставляет.
- Нужно **зарегистрировать изменения** объекта для обмена — `ПланыОбмена[ИмяПлана].ЗарегистрироватьИзменения(...)` (платформенный API), а не функции подсистемы.
- Нужно **добавить организацию** как объект метаданных или **создать элемент справочника организаций** — это прикладная задача, общие модули префиксации здесь не помогут.
- Нужно **узнать текущий префикс ИБ** (для отладки) — есть `ОбменДаннымиСервер.ПрефиксИнформационнойБазы()` в подсистеме «Обмен данными» (вызывается из `ПрефиксацияОбъектовСобытия.ПриОпределенииПрефиксаИнформационнойБазы`).
- Нужно настроить **синхронизацию данных** через универсальный формат (EnterpriseData) — отдельный раздел БСП, не покрывается этим скиллом.

## Core concepts

### Где живут модули подсистемы

Подсистема `ПрефиксацияОбъектов` входит в группу «Технологические механизмы и программные интерфейсы» (наряду с `БазоваяФункциональность`, `ПодключаемыеКоманды`, `ОбновлениеВерсииИБ`). Карта модулей:

| Модуль | Назначение | Стабильность |
|---|---|---|
| `ПрефиксацияОбъектовКлиентСервер` | **Стабильный API для прикладного кода**: разбор номера, формирование номера на печать, извлечение пользовательского префикса. Клиент + Сервер + Внешнее соединение | ✅ стабильный |
| `ПрефиксацияОбъектовКлиентСерверПереопределяемый` | Крючок для замещения логики `НомерНаПечать` (например, нестандартный формат номера) | ✅ переопределяемый (не вызывать, а реализовать) |
| `ПрефиксацияОбъектовПереопределяемый` | Крючки для вычисления базового номера/кода при нестандартных форматах, а также карта префиксообразующих реквизитов | ✅ переопределяемый |
| `ПрефиксацияОбъектовПовтИсп` | Кэш соответствия «объект метаданных → имя реквизита организации» | ✅ стабильный (внутренний, кэшируется) |
| `ПрефиксацияОбъектовСлужебный` | Внутренний API: добавление вычисляемого поля в СКД, изменение префикса ИБ с транзакционной перенумерацией | ⚠️ служебный |
| `ПрефиксацияОбъектовСобытия` | Обработчики подписок на события (`УстановитьПрефиксОрганизации`, `УстановитьПрефиксИнформационнойБазы`, проверки при записи), а также событийные методы для получения префиксов | ✅ стабильный (подписки и `ПриОпределении…`); **не вызывать напрямую** обработчики из прикладного кода |

### ⚠️ `ПрефиксацияОбъектов` как общий модуль — НЕ СУЩЕСТВУЕТ

Самая частая ловушка: попытка вызвать «по аналогии» `ПрефиксацияОбъектов.НомерНаПечать(...)`. Такого **общего модуля нет** — в дереве конфигурации есть подсистема `ПрефиксацияОбъектов` (`Subsystems/СтандартныеПодсистемы/Subsystems/ПрефиксацияОбъектов.xml`), но не общий модуль с тем же именем. Стабильный API лежит в `ПрефиксацияОбъектовКлиентСервер`. Проверить существование модуля — по `CommonModules/<Имя>/Ext/Module.bsl` в дереве конфигурации.

### Схема префиксации

Номер объекта в БСП формируется по фиксированному шаблону: `[ОО][ИБ]-[ПП]ННН…`, где:

| Позиция | Что | Где задаётся | Пример |
|---|---|---|---|
| `ОО` (2 символа) | Префикс организации | Реквизит «Префикс» элемента справочника организаций (через функциональную опцию) | `ОР` |
| `ИБ` (2 символа) | Префикс информационной базы (узла РИБ) | Константа `ПрефиксУзлаРаспределеннойИнформационнойБазы` | `ИБ` |
| `ПП` (2 символа) | Пользовательский префикс (опционально) | Свободная строка в начале номера после стандартного префикса | `АВ` |
| `ННН…` | Собственно номер | Автонумерация | `0000123` |

Итоговый пример: `ОРИБ-АВ0000123`. На печать выводится **без** префикса организации и лидирующих нулей: `ИБ-АВ123`. Если префикс ИБ/организации не задан, считается `00` (два нуля); при печати лидирующие нули снимаются.

### Узел РИБ (информационная база)

Префикс ИБ задаётся в подсистеме «Обмен данными» через константу `ПрефиксУзлаРаспределеннойИнформационнойБазы`. Подсистема «Префиксация объектов» **читает** этот префикс через `ПрефиксацияОбъектовСобытия.ПриОпределенииПрефиксаИнформационнойБазы` (если подсистема обмена подключена) или возвращает пустую строку. Поэтому менять префикс ИБ средствами только префиксации **нельзя** — это сквозной признак, обслуживаемый обменом.

### Подписки на события

Префиксация работает через подписки на события объектов метаданных (`Справочники`, `Документы`, `ПланыВидовХарактеристик`, `БизнесПроцессы`, `Задачи`). Обработчики подписок — в `ПрефиксацияОбъектовСобытия`:

- `УстановитьПрефиксОрганизации` — назначает префикс организации в `ПриУстановкеНовогоКода` / `ПриУстановкеНомера`.
- `УстановитьПрефиксИнформационнойБазы` — то же для префикса ИБ.
- `УстановитьПрефиксИнформационнойБазыИОрганизации` — оба сразу.
- `ПроверитьКодСправочникаПоОрганизации`, `ПроверитьНомерДокументаПоДате`, `ПроверитьНомерДокументаПоДатеИОрганизации` и т. п. — обнуляют номер/код, если изменилась дата или организация, чтобы платформа сформировала новый номер в правильном периоде.

Из прикладного кода эти обработчики **не вызываются** — платформа 1С дёргает их через подписки. Если нужно переопределить логику — реализуется в `ПрефиксацияОбъектовПереопределяемый`.

### Префиксообразующие реквизиты

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

## Key methods

| Метод | Сигнатура | Сервер/Клиент | Назначение | Пример вызова | Стабильность |
|---|---|---|---|---|---|
| `ПрефиксацияОбъектовКлиентСервер.НомерНаПечать` | `НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь)` | Клиент + Сервер + Внешнее соединение | Преобразует номер объекта в строку для печати: удаляет префикс организации, опционально — префикс ИБ и пользовательский префикс, снимает лидирующие нули. Перед стандартной обработкой вызывает `ПрефиксацияОбъектовКлиентСерверПереопределяемый.ПриПолученииНомераНаПечать` | `ПечатныйНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(НомерДокумента);` | ✅ стабильный |
| `ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта` | `УдалитьПрефиксыИзНомераОбъекта(Знач НомерОбъекта, УдалитьПрефиксОрганизации = Ложь, УдалитьПрефиксИнформационнойБазы = Ложь)` | Клиент + Сервер + Внешнее соединение | Удаляет указанные префиксы из номера (без снятия лидирующих нулей). Незначащие символы префиксов («0») также удаляются | `Номер = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта("0ФГЛ-000001234", Истина, Истина);` // `"000001234"` | ✅ стабильный |
| `ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта` | `УдалитьЛидирующиеНулиИзНомераОбъекта(Знач НомерОбъекта)` | Клиент + Сервер + Внешнее соединение | Удаляет лидирующие нули из номера, сохраняя стандартный префикс и пользовательский префикс на своих местах | `Номер = ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта("00ИБ-000001234");` // `"ИБ-1234"` | ✅ стабильный |
| `ПрефиксацияОбъектовКлиентСервер.УдалитьПользовательскиеПрефиксыИзНомераОбъекта` | `УдалитьПользовательскиеПрефиксыИзНомераОбъекта(Знач НомерОбъекта)` | Клиент + Сервер + Внешнее соединение | Удаляет все нецифровые символы пользовательского префикса (т. е. всё, что не входит в цифровую часть справа). Используется, когда стандартный префикс нужно сохранить, а пользовательский — отбросить | `Номер = ПрефиксацияОбъектовКлиентСервер.УдалитьПользовательскиеПрефиксыИзНомераОбъекта("ОР00-АВ00777");` // `"ОР00-00777"` | ✅ стабильный |
| `ПрефиксацияОбъектовКлиентСервер.ПользовательскийПрефикс` | `ПользовательскийПрефикс(Знач НомерОбъекта)` | Клиент + Сервер + Внешнее соединение | Извлекает пользовательский префикс (часть между стандартным префиксом и цифрами номера) | `Префикс = ПрефиксацияОбъектовКлиентСервер.ПользовательскийПрефикс("ОР00-АВ00777");` // `"АВ"` | ✅ стабильный |
| ⚠️ `ПрефиксацияОбъектовСлужебный.ДобавитьРасширениеПоляНомер` | `ДобавитьРасширениеПоляНомер(СхемаКомпоновкиДанных)` | Сервер | Добавляет в схему компоновки данных вычисляемое поле `Номер.СПрефиксом` (если в наборе данных есть поле `Номер`). Используется в отчётах/динамических списках, чтобы не дублировать логику «номер с префиксом» в запросе | `ПрефиксацияОбъектовСлужебный.ДобавитьРасширениеПоляНомер(СхемаКомпоновки);` | ⚠️ служебный |
| ⚠️ `ПрефиксацияОбъектовСлужебный.ИзменитьПрефиксИБ` | `ИзменитьПрефиксИБ(Параметры, АдресРезультата = "")` | Сервер | Выполняет изменение префикса ИБ в транзакции: записывает новое значение константы `ПрефиксУзлаРаспределеннойИнформационнойБазы` и (если передан `ПродолжитьНумерацию = Истина`) перенумеровывает существующие номера последних в периоде элементов. Требует подключённой подсистемы «Обмен данными» | `ПрефиксацияОбъектовСлужебный.ИзменитьПрефиксИБ(Новый Структура("НовыйПрефиксИБ, ПродолжитьНумерацию", "НБ", Истина), АдресРезультата);` | ⚠️ служебный |

## Patterns

### 1. Получить номер документа на печать с правилами удаления префиксов

```bsl
// В модуле объекта или обработке печати — формирование строки номера для вывода
НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(
    НомерДокумента,
    УдалитьПрефиксИБ,           // Истина, если в макете номер без префикса узла РИБ
    УдалитьПользовательский);   // Истина, если пользовательский префикс не нужен
```

Перед стандартной обработкой функция вызывает переопределяемый `ПрефиксацияОбъектовКлиентСерверПереопределяемый.ПриПолученииНомераНаПечать`. Если в прикладной конфигурации реализован этот обработчик и `СтандартнаяОбработка = Ложь`, функция вернёт то, что выставлено в `НомерОбъекта` внутри обработчика.

### 2. Извлечь пользовательский префикс из номера

```bsl
// Номер вида "ОР00-АВ00777" — пользовательский префикс "АВ"
Префикс = ПрефиксацияОбъектовКлиентСервер.ПользовательскийПрефикс(Номер);

// Если нужно снять лидирующие нули в самом номере, оставив пользовательский префикс
НомерБезНулей = ПрефиксацияОбъектовКлиентСервер.УдалитьЛидирующиеНулиИзНомераОбъекта(Номер);
```

`ПользовательскийПрефикс` отделяет часть между стандартным префиксом (ООГГ или ГГ) и первой цифрой. Если номер не содержит пользовательского префикса, возвращается пустая строка.

### 3. Переопределить «базовый номер» для нестандартного формата

Когда прикладной документ использует нестандартный формат номера (например, `АБВГ0012345`, где буквы — старые префиксы, не разделены дефисом), стандартный алгоритм `ПрефиксацияОбъектовСлужебный.ОбработатьДанныеДляПродолженияНумерации` не сможет корректно вычислить базовый номер. В этом случае реализуется `ПрефиксацияОбъектовПереопределяемый.ПриИзмененииНомера`:

```bsl
// В модуле ПрефиксацияОбъектовПереопределяемый (прикладной, не БСП):
Процедура ПриИзмененииНомера(Объект, Знач Номер, БазовыйНомер, СтандартнаяОбработка) Экспорт
    Если ТипЗнч(Объект) = Тип("ДокументОбъект._ДемоРеализацияТоваров") Тогда
        Если Сред(Номер, 5, 1) <> "-" Тогда
            // Нестандартный формат "АБВГ0012345": три старых префикса (ИБ, Орг, Подр) по 1 символу
            СтандартнаяОбработка = Ложь;
            БазовыйНомер = Сред(Номер, 4); // пропускаем 3 префикса
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
```

`СтандартнаяОбработка = Ложь` отключает стандартный алгоритм вычисления базового номера (который по умолчанию ищет первую нецифровую позицию справа и оставляет только цифровой хвост).

### 4. Зарегистрировать «префиксообразующий» реквизит с нестандартным именем

Если в прикладном документе организация хранится не в реквизите `Организация`, а, например, в `ГоловнаяОрганизация`, нужно сообщить об этом БСП. Иначе подписка `УстановитьПрефиксОрганизации` не найдёт реквизит и не сформирует префикс.

```bsl
// В модуле ПрефиксацияОбъектовПереопределяемый:
Процедура ПолучитьПрефиксообразующиеРеквизиты(Объекты) Экспорт
    Строка = Объекты.Добавить();
    Строка.Объект   = Метаданные.Документы.РеализацияТоваров;
    Строка.Реквизит = "ГоловнаяОрганизация";
КонецПроцедуры
```

Таблица `Объекты` (параметр) заранее создана БСП; достаточно заполнить её строки. Результат кэшируется в `ПрефиксацияОбъектовПовтИсп`.

### 5. Изменить префикс ИБ программно (фоновое задание)

```bsl
// В обработке или форме — запуск изменения префикса с продолжением нумерации
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("НовыйПрефиксИБ", "НБ");
ПараметрыВыполнения.Вставить("ПродолжитьНумерацию", Истина);

АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
ПрефиксацияОбъектовСлужебный.ИзменитьПрефиксИБ(ПараметрыВыполнения, АдресРезультата);
```

⚠️ Метод **служебный** — обратная совместимость не гарантируется. В прикладном коде предпочтительно запускать через стандартный механизм смены префикса узла РИБ в подсистеме «Обмен данными» (если таковая подключена). Внутри БСП этот метод используется только при ручной смене префикса.

### 6. Добавить поле «Номер с префиксом» в СКД отчёта

```bsl
// В модуле объекта отчёта или в обработчике «Перед компоновкой»:
ПрефиксацияОбъектовСлужебный.ДобавитьРасширениеПоляНомер(СхемаКомпоновкиДанных);
```

В схеме появляется вычисляемое поле `Номер.СПрефиксом` с выражением `"Номер"` (поле выводится как есть, включая префиксы). Используется в отчётах и динамических списках, где в запросе уже есть `Номер` — повторно подставлять `ПрефиксацияОбъектовКлиентСервер.НомерНаПечать` в запросе не нужно.

## Anti-patterns

### ❌ Вызывать `ПрефиксацияОбъектов.НомерНаПечать` (модуль не существует)

```bsl
// ❌ ОШИБКА КОМПИЛЯЦИИ: Общий модуль не найден
ПечатныйНомер = ПрефиксацияОбъектов.НомерНаПечать(Номер);
```

```bsl
// ✅ Стабильный API в модуле с суффиксом КлиентСервер
ПечатныйНомер = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер);
```

Подсистема `ПрефиксацияОбъектов` (`Subsystems/СтандартныеПодсистемы/Subsystems/ПрефиксацияОбъектов.xml`) **не является общим модулем** с тем же именем. Проверить существование — по `CommonModules/<Имя>/Ext/Module.bsl`.

### ❌ Реализовать свой разбор номера через `Сред`/`Лев`

```bsl
// ❌ Хрупко: не учитывает незначащие нули, пользовательский префикс,
    //          различие 5-символьного (с организацией) и 3-символьного префикса
НомерБезПрефикса = Сред(Номер, 6);
```

```bsl
// ✅ Делегировать функции подсистемы
НомерБезПрефикса = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(
    Номер, Истина, Истина);
```

Внутри `УдалитьПрефиксыИзНомераОбъекта` уже обработаны: проверка наличия дефиса на позиции 3 или 5, разделение префикса организации (2 символа) и префикса ИБ (2 символа), удаление незначащих нулей. Свой код на `Сред`/`Лев` пропустит эти случаи.

### ❌ Пытаться установить префикс ИБ через константу напрямую

```bsl
// ❌ Не обновляет префикс в подсистеме обмена, ломает нумерацию в РИБ
Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Установить("НБ");
```

```bsl
// ⚠️ Только через служебный API (если действительно нужно программно)
ПрефиксацияОбъектовСлужебный.ИзменитьПрефиксИБ(
    Новый Структура("НовыйПрефиксИБ, ПродолжитьНумерацию", "НБ", Истина),
    АдресРезультата);
```

В обычном сценарии префикс ИБ меняется через интерфейс подсистемы «Обмен данными» (Администрирование → Синхронизация данных). Программная установка нужна только в обработках миграции и при автоматизированной смене узла.

### ❌ Вызывать обработчики подписок напрямую из прикладного кода

```bsl
// ❌ Обработчики подписок дёргаются платформой 1С автоматически
ПрефиксацияОбъектовСобытия.УстановитьПрефиксОрганизации(Источник, Истина, "");
```

```bsl
// ✅ Если нужно изменить логику — реализовать в переопределяемом модуле
//    ПрефиксацияОбъектовПереопределяемый.ПриИзмененииНомера / ПриИзмененииКода
//    и/или ПолучитьПрефиксообразующиеРеквизиты
```

Обработчики `ПрефиксацияОбъектовСобытия.УстановитьПрефикс…` и `Проверить…` подключены как **подписки на события** платформы. Прямой вызов нарушает контракт подписки и не пройдёт валидацию в Конфигураторе.

### ❌ Игнорировать `ПрефиксацияОбъектовПереопределяемый` при нестандартном формате номера

```bsl
// ❌ Стандартный алгоритм пытается найти цифровой хвост через Сред/СтрНайти.
//    Для номера "АБВГ0012345" (3 префикса по 1 символу без дефиса) даст неверный результат.
БазовыйНомер = "12345";
```

```bsl
// ✅ Реализовать обработчик в прикладном ПрефиксацияОбъектовПереопределяемый
Процедура ПриИзмененииНомера(Объект, Знач Номер, БазовыйНомер, СтандартнаяОбработка) Экспорт
    Если Сред(Номер, 5, 1) <> "-" Тогда
        СтандартнаяОбработка = Ложь;
        БазовыйНомер = Сред(Номер, 4); // пропускаем 3 префикса по 1 символу
    КонецЕсли;
КонецПроцедуры
```

Без переопределения при смене префикса ИБ документы со старым форматом получат неправильные «базовые номера» и перенумерация в `ПрефиксацияОбъектовСлужебный.ОбработатьДанныеДляПродолженияНумерации` отработает некорректно.

## How to explore deeper

### Какие общие модули открыть

- `CommonModules/ПрефиксацияОбъектовКлиентСервер/Ext/Module.bsl` — **стабильный API** (5 функций в области `#Область ПрограммныйИнтерфейс`). Это основной источник для прикладной разработки.
- `CommonModules/ПрефиксацияОбъектовСлужебный/Ext/Module.bsl` — служебный API: `ДобавитьРасширениеПоляНомер` (для СКД), `ИзменитьПрефиксИБ` (программная смена префикса). Область `#Область СлужебныйПрограммныйИнтерфейс`.
- `CommonModules/ПрефиксацияОбъектовСобытия/Ext/Module.bsl` — обработчики подписок и `ПриОпределенииПрефиксаИнформационнойБазы/Организации`. Не вызывать напрямую.
- `CommonModules/ПрефиксацияОбъектовПереопределяемый/Ext/Module.bsl` — шаблон реализации `ПриИзмененииНомера`/`ПриИзмененииКода`/`ПолучитьПрефиксообразующиеРеквизиты` с примерами в `_Демо` (на примере `_ДемоРеализацияТоваров`).
- `CommonModules/ПрефиксацияОбъектовКлиентСерверПереопределяемый/Ext/Module.bsl` — шаблон `ПриПолученииНомераНаПечать` (если нужно переопределить вывод номера на печать).

### Grep-шаблоны

```text
# Найти все экспортные методы стабильного API префиксации
^(Функция|Процедура) [А-ЯA-Z][А-ЯA-Za-z_]+\(.*\) Экспорт
   в CommonModules/ПрефиксацияОбъектовКлиентСервер/Ext/Module.bsl

# Служебный API (⚠️ — обратная совместимость не гарантируется)
^#Область СлужебныйПрограммныйИнтерфейс
   в CommonModules/ПрефиксацияОбъектовСлужебный/Ext/Module.bsl

# Проверить, что в прикладном коде используется стабильный модуль, а не несуществующий
^(Функция|Процедура) НомерНаПечать\(
```

### Где в дереве метаданных искать подписки на события

В Конфигураторе: «Подписки на события» → три подписки с именами, начинающимися на `УстановитьПрефикс…` (например, `УстановитьПрефиксИнформационнойБазыИОрганизацииСправочники`). Источник подписки — конкретные справочники/документы/ПВХ/бизнес-процессы, для которых включена префиксация. Если в прикладной конфигурации объект не попал в подписку — префикс ему не назначается, даже если объект имеет автонумерацию.

### Связанные объекты метаданных

- **Константа `ПрефиксУзлаРаспределеннойИнформационнойБазы`** — хранит префикс текущей ИБ; поставляется подсистемой «Обмен данными», подсистемой «Префиксация объектов» только читается.
- **Функциональная опция `ПрефиксыОрганизаций`** (с параметром `Организация`) — поставляет префикс организации. В демо-конфигурации заменяется на `_ДемоПрефиксыОрганизаций`.
- **Определяемый тип `Организация`** — должен включать `СправочникСсылка.Организации` (или прикладной справочник организаций). Если в определяемом типе разрешён `Строка`, префикс организации всегда будет пустым.
