Короткий обработчик реальной фазы обмена с конкретными своими объектами. Мобильный поток, обмен образами узлов и обычные элементы данных не подменяются друг другом.
Где и как запускать
Модуль объекта собственного плана УчебныйОбменКниг; сервер / толстый клиент своей учебной РИБ.
Подготовка
Только собственная учебная конфигурация: справочник УчебныеКарточкиОбмена, код Строка 10, наименование 100, реквизит ОсобыйРежимОбмена Булево. Создайте BOOK-001 / Книга; флаг по умолчанию Ложь. Подготовьте план обмена УчебныйОбменКниг с реквизитом КомментарийУчебный Строка 100 и включите свой справочник в его состав.
Для классических событий РИБ нужны два уже подготовленных собственных учебных узла одной учебной распределённой базы. Код не настраивает транспорт, не создаёт начальный образ и не отправляет сообщение при сборке справочника. Не подключайте рабочие базы ради опыта.
Обработчики расположены в модуле объекта собственного плана обмена. Издатель сообщения / получатель вызывает их штатно; прямой вызов процедуры не доказывает обмен. Клиентская директива и первый параметр Элемент формы не добавляются.
Для мобильных событий требуется уже настроенный свой мобильный клиент с автономным режимом. ПередНачаломОтправкиДанныхГлавному работает на мобильном автономном сервере; ПередНачаломОтправкиДанныхПодчиненному, ПередСозданиемНачальногоОбраза и ПриАвтоматическомСозданииНовогоУзла — на основном сервере. Это не перехват произвольного FTP-пакета.
BSL, синхронизация, запись узла, удаление данных у получателя и отправка сообщений при сборке HTML не выполнялись.
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
Если ТипЗнч(ЭлементДанных) = Тип("ФиксированнаяСтруктура") Тогда
Если ЭлементДанных.Свойство("УчебныйКонтракт", Контракт) И Контракт = "Книги" Тогда
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
Сообщить("Получена собственная служебная метка мобильного потока");
Возврат;
КонецЕсли;
КонецЕсли;
Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.УчебныеКарточкиОбмена") Тогда
Если ЭлементДанных.Код = "BOOK-001" И ЭлементДанных.ОсобыйРежимОбмена Тогда
ПолучениеЭлемента = ПолучениеЭлементаДанных.Авто;
Сообщить("Своя книга: режим получения Авто");
КонецЕсли;
КонецЕсли;
КонецПроцедурыРазбор по шагам
Подготовьте только собственную учебную пару и указанные метаданные.
Назначьте процедуру точному событию своего плана.
Для ручного опыта изучите сообщение / принимающую сторону, не считайте одно Сообщить доказательством доставки.
Как проверить результат
Служебная фиксированная структура собственной мобильной пары разобрана отдельно и не выдаётся за объект справочника. Метка не является аутентификацией отправителя.
Авто от главного означает принятие; Авто от подчинённого зависит от зарегистрированных встречных изменений. Принять принудительно принимает элемент и отменяет соответствующую регистрацию; Игнорировать ничего не записывает.
ОтправкаНазад не меняется: пример не регистрирует встречные изменения и не создаёт бесконечный пинг-понг.
Ожидаемый результат
Показана прикладная фильтрация / служебная метка / нормализация своего образа в правильном событии.
На что обратить внимание
Не включайте ОсобыйРежимОбмена у рабочих объектов и не заменяйте конфликтную политику типовой конфигурации этим уроком.
ОтправкаЭлемента и ПолучениеЭлемента — разные системные перечисления; Отказ и Игнорировать в других событиях — обычные Булево.
Сборка справочника не исполняет BSL и не выполняет обмен.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.