---
title: Подключение к подсистеме Префиксация объектов
slug: общие-бсп-подключение-к-подсистемам/подключение-к-подсистеме-префиксация-объектов
---

##  Общее
Подсистема `Префиксация объектов` предназначена для автоматического назначения префиксов объектам с учетом настроек приложения. `Префиксация объектов` ведется в разрезах информационных баз и элементов справочника `Организации`.

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

Префикс имеет фиксированную длину: **3 или 5 символов**. В префиксе нельзя использовать символ «-» (дефис); он используется для разделения префикса c номером и добавляется автоматически. Соответственно, префикс формируется по одному из двух шаблонов: 
ОРИБ- или ИБ-, где 
- ОР – 2 символа префикса справочника Организации; 
- ИБ – 2 символа префикса информационной базы; 
- «-» (дефис) – разделитель префикса.

Для конфигураций, в которых используется подсистема префиксации, длину номеров документов и кодов справочников рекомендуется устанавливать **не менее 11 символов**.

Если префикс информационной базы или префикс организации не указан, то считается, что такой префикс отсутствует, он заменяется двумя нулями – **00**.


> Префикс информационой базы используется только тогда, когда конфигурация опдключена к подсистеме `Обмен данными`

## Установка префикса ИБ

Префикс ИБ устанавливается в настройках конфигурации (в пользовательском режиме):
`НСИ и Администрирование` -> `Синхронизация данных` -> `Префикс информационной базы`
![Изображение](/bsp-prefiksaciya/1.png)

## Установка префикса организации

- Включить справочник `Организации` (создать, если нет) в состав определяемого типа `Организация`
- В справочник `Организации` добавить реквизить `Префикс` (строка, 2 символа)
- Создать **параметр функциональной опции** `Организация`. В свойстве `Использование` указать справочник `Организации`
- Создать **функциональную опцию** `ПрефиксыОрганизаций`, в свойстве `Хранение` которой указать ссылку на созданный выше реквизит `Префикс`

Если объекту требуется устанавливать префикс организации, то в составе реквизитов шапки объекта должен присутствовать реквизит `Организация`. Обязательные значения свойств реквизита указаны в таблице:

| Свойство | Значение                       |
| -------- | ------------------------------ |
| **Имя**  | `Организация`                  |
| **Тип**  | `СправочникСсылка.Организации` |

## Создание/дополнение подписок на события

### Установка нового номера
Следует создать необходимое количество подписок на события для задания номера или кода объекта при его записи, если номер или код не заполнены. Значения свойств подписок задать согласно таблице:

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

*Важно!
Для объектов `Задача` префикс номеров устанавливается подсистемой `Бизнес-процессы и задачи`. Использование подсистемы префиксации для объектов `Задача` будет вызывать ошибки в работе конфигурации.*

В общем модуле `ПрефиксацияОбъектовСобытия` предусмотрено 3 обработчика:
- `УстановитьПрефиксОрганизации` - следует использовать в том случае, если требуется выполнять префиксацию объектов только в разрезе организаций.
- `УстановитьПрефиксИнформационнойБазы` - следует использовать в том случае, если используется подсистема `Обмен данными`, а префиксацию объектов в разрезе организаций выполнять **не требуется**. К таким типам объектов в основном относятся справочники и планы видов характеристик.
- `УстановитьПрефиксИнформационнойБазыИОрганизации` - следует использовать в том случае, если требуется выполнять префиксацию объектов в разрезе информационных баз и организаций одновременно. К таким типам объектов в основном относятся документы.

### Переопределение номера при изменении ключевых реквизитов

Следует создать необходимое количество подписок на события для переназначения номера (кода) объекта при изменении даты или значения реквизита Организация в шапке объекта. После очистки объекту будет назначен новый код или номер.

Значения свойств подписок надо задать согласно таблице:

| Имя свойства   | Описание                                                                                                                                                                                                                    |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Имя**        | Имя следует задавать для удобства визуального восприятия подписки и с учетом ограничений, налагаемых на имена объектов метаданных, например `ПроверитьНомерДокументаПоДатеИОрганизации`.                                    |
| **Источник**   | Источниками событий подписки могут быть только объекты типов: Документы, Справочники, ПланыВидовХарактеристик, БизнесПроцессы. В качестве источников для одной подписки могут быть использованы объекты только одного типа. |
| **Событие**    | `ПередЗаписью`.                                                                                                                                                                                                             |
| **Обработчик** | В качестве процедур – обработчиков подписок следует выбирать экспортные процедуры общего модуля `ПрефиксацияОбъектовСобытия`.                                                                                               |

В общем модуле `ПрефиксацияОбъектовСобытия` предусмотрено пять процедур – обработчиков подписок, каждую из которых необходимо использовать исходя из типа объектов – источников подписок и наличия реквизита `Организация` в шапке этих объектов:

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

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

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

