---
title: Обмен данными переопределяемый
slug: bsp/обмен-данными-переопределяемый
---


## ПриОпределенииПрефиксаИнформационнойБазыПоУмолчанию
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Определяет префикс кодов и номеров объектов информационной базы по умолчанию.
//
// Параметры:
//  Префикс - Строка, 2 - префикс кодов и номеров объектов информационной базы по умолчанию.
//
Процедура ПриОпределенииПрефиксаИнформационнойБазыПоУмолчанию(Префикс) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриОпределенииПрефиксаИнформационнойБазыПоУмолчанию(Префикс) 
```
</details>

## ПолучитьПланыОбмена
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Определяет список планов обмена, которые используют функционал подсистемы обмена данными.
//
// Параметры:
//  ПланыОбменаПодсистемы - Массив из ОбъектМетаданныхПланОбмена - массив планов обмена конфигурации,
//                          которые используют функционал подсистемы обмена данными.
//                          Элементами массива являются объекты метаданных планов обмена.
//
// Пример:
//   ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменБезИспользованияПравилКонвертации);
//   ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ОбменСБиблиотекойСтандартныхПодсистем);
//   ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.РаспределеннаяИнформационнаяБаза);
//
Процедура ПолучитьПланыОбмена(ПланыОбменаПодсистемы) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПолучитьПланыОбмена(ПланыОбменаПодсистемы) 
```
</details>

## ПриВыгрузкеДанных
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Обработчик при выгрузке данных.
// Используется для переопределения стандартной обработки выгрузки данных.
// В данном обработчике должна быть реализована логика выгрузки данных:
// выборка данных для выгрузки, сериализация данных в файл сообщения или сериализация данных в поток.
// После выполнения обработчика выгруженные данные будут отправлены получателю подсистемой обмена данными.
// Формат сообщения для выгрузки может быть произвольным.
// В случае ошибок при отправке данных следует прерывать выполнение обработчика
// методом ВызватьИсключение с описанием ошибки.
//
// Параметры:
//
//  СтандартнаяОбработка - Булево - в данный параметр передается признак выполнения стандартной (системной) обработки
//                                 события.
//   Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная
//   обработка события производиться не будет. Отказ от стандартной обработки не отменяет действие.
//   Значение по умолчанию - Истина.
//
//  Получатель - ПланОбменаСсылка - узел плана обмена, для которого выполняется выгрузка данных.
//
//  ИмяФайлаСообщения - Строка - имя файла, в который необходимо выполнить выгрузку данных.
//   Если этот параметр заполнен, то система ожидает,
//   что данные будут выгружены в файл. После выгрузки система выполнит отправку данных из этого файла.
//   Если параметр пустой, то система ожидает, что данные будут выгружены в параметр ДанныеСообщения.
//
//  ДанныеСообщения - Произвольный - если параметр ИмяФайлаСообщения пустой,
//   то система ожидает, что данные будут выгружены в этот параметр.
//
//  КоличествоЭлементовВТранзакции - Число - определяет максимальное число элементов данных,
//   которые помещаются в сообщение в рамках одной транзакции базы данных.
//   При необходимости в обработчике следует реализовать логику
//   установки транзакционных блокировок на выгружаемые данные.
//   Значение параметра задается в настройках подсистемы обмена данными.
//
//  ИмяСобытияЖурналаРегистрации - Строка - имя события журнала регистрации текущего сеанса обмена данными.
//   Используется для записи в журнал регистрации данных (ошибок, предупреждений, информации) с заданным именем события.
//   Соответствует параметру ИмяСобытия метода глобального контекста ЗаписьЖурналаРегистрации.
//
//  КоличествоОтправленныхОбъектов - Число - счетчик отправленных объектов.
//   Используется для определения количества отправленных объектов
//   для последующей фиксации в протоколе обмена.
//
Процедура ПриВыгрузкеДанных(СтандартнаяОбработка, Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриВыгрузкеДанных(СтандартнаяОбработка, );
```
</details>

## ПриЗагрузкеДанных
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Обработчик при загрузке данных.
// Используется для переопределения стандартной обработки загрузки данных.
// В данном обработчике должна быть реализована логика загрузки данных:
// необходимые проверки перед загрузкой данных, сериализация данных из файла сообщения или сериализация данных из
// потока.
// Формат сообщения для загрузки может быть произвольным.
// В случае ошибок при получении данных следует прерывать выполнение обработчика
// методом ВызватьИсключение с описанием ошибки.
//
// Параметры:
//
//  СтандартнаяОбработка - Булево - в данный параметр передается признак выполнения
//   стандартной (системной) обработки события.
//   Если в теле процедуры-обработчика установить данному параметру значение Ложь,
//   стандартная обработка события производиться не будет.
//   Отказ от стандартной обработки не отменяет действие.
//   Значение по умолчанию: Истина.
//
//  Отправитель - ПланОбменаСсылка - узел плана обмена, для которого выполняется загрузка данных.
//
//  ИмяФайлаСообщения - Строка - имя файла, из которого требуется выполнить загрузку данных.
//   Если параметр не заполнен, то данные для загрузки передаются через параметр ДанныеСообщения.
//
//  ДанныеСообщения - Произвольный - параметр содержит данные, которые необходимо загрузить.
//   Если параметр ИмяФайлаСообщения пустой,
//   то данные для загрузки передаются через этот параметр.
//
//  КоличествоЭлементовВТранзакции - Число - определяет максимальное число элементов данных,
//   которые читаются из сообщения и записываются в базу данных в рамках одной транзакции.
//   При необходимости в обработчике следует реализовать логику записи данных в транзакции.
//   Значение параметра задается в настройках подсистемы обмена данными.
//
//  ИмяСобытияЖурналаРегистрации - Строка - имя события журнала регистрации текущего сеанса обмена данными.
//   Используется для записи в журнал регистрации данных (ошибок, предупреждений, информации) с заданным именем события.
//   Соответствует параметру ИмяСобытия метода глобального контекста ЗаписьЖурналаРегистрации.
//
//  КоличествоПолученныхОбъектов - Число -счетчик полученных объектов.
//   Используется для определения количества загруженных объектов
//   для последующей фиксации в протоколе обмена.
//
Процедура ПриЗагрузкеДанных(СтандартнаяОбработка, Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриЗагрузкеДанных(СтандартнаяОбработка, );
```
</details>

## РегистрацияИзмененийНачальнойВыгрузкиДанных
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Обработчик регистрации изменений для начальной выгрузки данных.
// Используется для переопределения стандартной обработки регистрации изменений.
// При стандартной обработке будут зарегистрированы изменения всех данных из состава плана обмена.
// Если для плана обмена предусмотрены фильтры ограничения миграции данных,
// то использование этого обработчика позволит повысить производительность начальной выгрузки данных.
// В обработчике следует реализовать регистрацию изменений с учетом фильтров ограничения миграции данных.
// Если для плана обмена используются ограничения миграции по дате или по дате и организациям,
// то можно воспользоваться универсальной процедурой
// ОбменДаннымиСервер.ЗарегистрироватьДанныеПоДатеНачалаВыгрузкиИОрганизациям.
// Обработчик используется только для универсального обмена данными с использованием правил обмена
// и для универсального обмена данными без правил обмена и не используется для обменов в РИБ.
// Использование обработчика позволяет повысить производительность
// начальной выгрузки данных в среднем в 2-4 раза.
//
// Параметры:
//
//   Получатель - ПланОбменаСсылка - узел плана обмена, в который требуется выгрузить данные.
//   СтандартнаяОбработка - Булево - в данный параметр передается признак выполнения стандартной
//                          (системной) обработки события.
//                          Если в теле процедуры-обработчика установить данному параметру значение Ложь,
//                          стандартная обработка события производиться не будет.
//                          Отказ от стандартной обработки не отменяет действие.
//                          Значение по умолчанию - Истина.
//   Отбор - Массив из ОбъектМетаданных
//         - ОбъектМетаданных - определяет отбор по объектам метаданных,
//           для которых следует выполнить регистрацию изменений.
//
Процедура РегистрацияИзмененийНачальнойВыгрузкиДанных(Знач Получатель, СтандартнаяОбработка, Отбор) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.РегистрацияИзмененийНачальнойВыгрузкиДанных(Получатель, СтандартнаяОбработка, Отбор) 
```
</details>

## ПриКоллизииИзмененийДанных
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Обработчик при коллизии изменений данных.
// Событие возникает при получении данных, если в текущей информационной базе изменен тот же объект,
// что получен из сообщения обмена и эти объекты различаются.
// Используется для переопределения стандартной обработки коллизий изменений данных.
// Стандартная обработка коллизий предполагает получение изменений от главного узла
// и игнорирование изменений, полученных от подчиненного узла.
// В данном обработчике должен быть переопределен параметр ПолучениеЭлемента,
// если требуется изменить поведение по умолчанию.
// В данном обработчике можно задать поведение системы при возникновении коллизии изменений данных в разрезе данных,
// в разрезе свойств данных, в разрезе отправителей или для всей информационной базы в целом, или для всех данных в
// целом.
// Обработчик вызывается как в обмене в распределенной информационной базе (РИБ),
// так и во всех остальных обменах, в том числе в обменах по правилам обмена.
//
// Параметры:
//  ЭлементДанных - Произвольный - элемент данных, прочитанный из сообщения обмена данными.
//                  Элементами данных могут быть КонстантаМенеджерЗначения.<Имя константы>,
//                  объекты базы данных (кроме объекта "Удаление объекта"), наборы записей регистров,
//                  последовательностей или перерасчетов.
//
//  ПолучениеЭлемента - ПолучениеЭлементаДанных - определяет, будет ли прочитанный элемент данных записан в базу данных
//                                               или нет в случае коллизии.
//   При вызове обработчика параметр имеет значение Авто, что означает действия по умолчанию
//   (принимать от главного, игнорировать от подчиненного).
//   Значение данного параметра может быть переопределено в обработчике.
//
//  Отправитель - ПланОбменаСсылка - узел плана обмена, от имени которого выполняется получение данных.
//
//  ПолучениеОтГлавного - Булево -  в распределенной информационной базе обозначает признак получения данных от главного
//                                узла.
//   Истина - выполняется получение данных от главного узла, Ложь - от подчиненного.
//   В обменах по правилам обмена принимает значение Истина - если в правилах обмена приоритет объекта
//   при коллизии установлен в значение "Выше" (значение по умолчанию) или не указан;
//   Ложь - если в правилах обмена приоритет объекта при коллизии установлен в значение "Ниже" или "Совпадает".
//   Во всех остальных типах обмена данными параметр принимает значение Истина.
//
Процедура ПриКоллизииИзмененийДанных(Знач ЭлементДанных, ПолучениеЭлемента, Знач Отправитель, Знач ПолучениеОтГлавного) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриКоллизииИзмененийДанных(ЭлементДанных, ПолучениеЭлемента, Отправитель, ПолучениеОтГлавного) 
```
</details>

## ПриНастройкеПодчиненногоУзлаРИБ
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Обработчик начальной настройки ИБ после создания узла РИБ.
// Вызывается в момент первого запуска подчиненного узла РИБ (в том числе АРМ).
//
Процедура ПриНастройкеПодчиненногоУзлаРИБ() Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ() 
```
</details>

## ПриПолученииДоступныхВерсийФормата
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает доступные для использования версии универсального формата EnterpriseData.
//
// Параметры:
//   ВерсииФормата - Соответствие - соответствие номера версии формата,
//                   общему модулю, в котором находятся обработчики выгрузки/загрузки для данной версии.
//
// Пример:
//   ВерсииФормата.Вставить("1.2", <ИмяОбщегоМодуляСПравиламиКонвертации>);
//
Процедура ПриПолученииДоступныхВерсийФормата(ВерсииФормата) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата(ВерсииФормата) 
```
</details>

## ПриПолученииДоступныхРасширенийФормата
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает доступные для использования расширения универсального формата EnterpriseData.
//
// Параметры:
//   РасширенияФормата - Соответствие из КлючИЗначение:
//     * Ключ - Строка - URI пространства имен схемы расширения формата.
//     * Значение - Строка - номер расширяемой версии формата.
//
Процедура ПриПолученииДоступныхРасширенийФормата(РасширенияФормата) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриПолученииДоступныхРасширенийФормата(РасширенияФормата) 
```
</details>

## ПриИзмененииОпцииАвтономногоРежимаРаботы
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Вызывается в событии ПриЗаписи константы ЭтоАвтономноеРабочееМесто.
// Позволяет переопределить стандартную обработку при изменении значения.
//
// Параметры:
//   ПредыдущееЗначение - Булево - значение константы ЭтоАвтономноеРабочееМесто до изменения.
//   НовоеТекущее - Булево - записываемое значение константы ЭтоАвтономноеРабочееМесто до изменения.
//   СтандартнаяОбработка - Булево - отключение стандартного поведения системы при записи константы
//                                   (значение по-умолчанию Истина).
//
Процедура ПриИзмененииОпцииАвтономногоРежимаРаботы(ПредыдущееЗначение, НовоеТекущее, СтандартнаяОбработка) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриИзмененииОпцииАвтономногоРежимаРаботы(ПредыдущееЗначение, НовоеТекущее, СтандартнаяОбработка) 
```
</details>

## ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Заполняет массив типов, исключаемых из проверки устранения проблемы
// (см. РегистрыСведений.РезультатыОбменаДанными.ЗарегистрироватьУстранениеПроблемы).
//
// Параметры:
//  Типы - Массив из ОбъектМетаданных
//
Процедура ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы(Типы) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриЗаполненииТиповИсключаемыхИзПроверкиУстраненияПроблемы(Типы) 
```
</details>

## ПриПоискеИмениПланаОбменаЧерезУниверсальныйФормат
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Вызывается в функции ОбменДаннымиСервер.НайтиИмяПланаОбменаЧерезУниверсальныйФормат
// Позволяет переопределить имя плана обмена, которое будет использоваться при обмене с корреспондирующее базой.
// Только для обмена через EnterpriseData
//
// Параметры:
//   ИмяПланаОбмена - Строка - имя плана обмена корреспондирующей базы,
//                    для которого подбираем соответствие из метаданных конфигурации.
//   ИдентификаторНастройки- Строка - идентификатор варианта настройки (ВариантНастройки), корреспондирующей базы.
//   НайденноеИмяПланаОбмена - Строка - если информационная база уже содержит план обмена с именем ИмяПланаОбмена,
//       то параметр будет равен ИмяПланаОбмена.
//       Иначе параметр будет содержать имя Глобального плана обмена.
//       Параметр может быть переопределен
//
Процедура ПриПоискеИмениПланаОбменаЧерезУниверсальныйФормат( Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриПоискеИмениПланаОбменаЧерезУниверсальныйФормат();
```
</details>

## ПриПереопределенииРеквизитовСсылочногоТипаУзлаПланаОбмена
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Вызывается в Модуле ОбменДаннымиСобытия.
// Позволяет переопределить стандартную обработку РеквизитыСсылочногоТипаУзлаПланаОбмена.
//
// Параметры:
//   УзелПланаОбменаОбъект - ПланОбменаОбъект - ссылка на план обмена.
//   Результат - ТаблицаЗначений - данные заполненные в процедуре ОбменДаннымиСобытия.РеквизитыСсылочногоТипаУзлаПланаОбмена:
//      * Порядок - Число.
//      * ИмяОбъекта - Строка - полное имя объекта метаданных.
//      * ТипОбъектаСтрокой - Строка.
//      * ИмяПланаОбмена - Строка.
//      * ИмяТабличнойЧасти - Строка - имя табличной части плана обмена.
//      * РеквизитыРегистрации - Строка - ключ объектов регистрации.
//      * СтруктураРеквизитовРегистрации - Структура:
//         * Ключ - Строка - имя реквизита или имя колонки плана обмена.
//         * Значение - ЛюбаяСсылка - ссылка на регистрируемый объект
//
Процедура ПриПереопределенииРеквизитовСсылочногоТипаУзлаПланаОбмена(УзелПланаОбменаОбъект, Результат) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриПереопределенииРеквизитовСсылочногоТипаУзлаПланаОбмена(УзелПланаОбменаОбъект, Результат) 
```
</details>

## ПриПроверкеКорректностиИмениПланаОбменаEnterpriseData
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устарела. В процедуре нет необходимости. Теперь для поиска плана обмена используется параметр Глобальный
// (см процедуру ПриПолученииНастроек в менеджере универсального плана обмена)
// Вызывается при проверке имени плана обмена универсального формата.
// Допускает настройку синхронизацию между планами обменов EnterpriseData с отличающимися имена.
//
// Параметры:
//   ИмяПланаОбмена - Строка - имя плана обмена универсального формата,
//                             для которого подбираем соответствие из метаданных конфигурации.
//   ВариантНастройки - Строка - идентификатор варианта настройки, используется для уточнения поиска.
//                               Может быть не заполнен, например, при проверке формата полученного сообщения обмена.
//   ПланОбменаРаспознан - Булево - признак того, что переданное имя плана обмена распознано и работу можно продолжить.
//
Процедура ПриПроверкеКорректностиИмениПланаОбменаEnterpriseData(ИмяПланаОбмена, ВариантНастройки, ПланОбменаРаспознан) Экспорт
```

Пример вызова
```bsl
ОбменДаннымиПереопределяемый.ПриПроверкеКорректностиИмениПланаОбменаEnterpriseData(ИмяПланаОбмена, ВариантНастройки, ПланОбменаРаспознан) 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
