Своя книга: ПолучениеЭлементаДанных.Авто

Учебные задачи

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

Где и как запускать

Модуль объекта собственного плана УчебныйОбменКниг; сервер / толстый клиент своей учебной РИБ.

Подготовка

  1. Только собственная учебная конфигурация: справочник УчебныеКарточкиОбмена, код Строка 10, наименование 100, реквизит ОсобыйРежимОбмена Булево. Создайте BOOK-001 / Книга; флаг по умолчанию Ложь. Подготовьте план обмена УчебныйОбменКниг с реквизитом КомментарийУчебный Строка 100 и включите свой справочник в его состав.

  2. Для классических событий РИБ нужны два уже подготовленных собственных учебных узла одной учебной распределённой базы. Код не настраивает транспорт, не создаёт начальный образ и не отправляет сообщение при сборке справочника. Не подключайте рабочие базы ради опыта.

  3. Обработчики расположены в модуле объекта собственного плана обмена. Издатель сообщения / получатель вызывает их штатно; прямой вызов процедуры не доказывает обмен. Клиентская директива и первый параметр Элемент формы не добавляются.

  4. Для мобильных событий требуется уже настроенный свой мобильный клиент с автономным режимом. ПередНачаломОтправкиДанныхГлавному работает на мобильном автономном сервере; ПередНачаломОтправкиДанныхПодчиненному, ПередСозданиемНачальногоОбраза и ПриАвтоматическомСозданииНовогоУзла — на основном сервере. Это не перехват произвольного FTP-пакета.

  5. BSL, синхронизация, запись узла, удаление данных у получателя и отправка сообщений при сборке HTML не выполнялись.

Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
    Если ТипЗнч(ЭлементДанных) = Тип("ФиксированнаяСтруктура") Тогда
        Если ЭлементДанных.Свойство("УчебныйКонтракт", Контракт) И Контракт = "Книги" Тогда
            ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать;
            Сообщить("Получена собственная служебная метка мобильного потока");
            Возврат;
        КонецЕсли;
    КонецЕсли;
    Если ТипЗнч(ЭлементДанных) = Тип("СправочникОбъект.УчебныеКарточкиОбмена") Тогда
        Если ЭлементДанных.Код = "BOOK-001" И ЭлементДанных.ОсобыйРежимОбмена Тогда
            ПолучениеЭлемента = ПолучениеЭлементаДанных.Авто;
            Сообщить("Своя книга: режим получения Авто");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Подготовьте только собственную учебную пару и указанные метаданные.

  2. Назначьте процедуру точному событию своего плана.

  3. Для ручного опыта изучите сообщение / принимающую сторону, не считайте одно Сообщить доказательством доставки.

Как проверить результат

  1. Служебная фиксированная структура собственной мобильной пары разобрана отдельно и не выдаётся за объект справочника. Метка не является аутентификацией отправителя.

  2. Авто от главного означает принятие; Авто от подчинённого зависит от зарегистрированных встречных изменений. Принять принудительно принимает элемент и отменяет соответствующую регистрацию; Игнорировать ничего не записывает.

  3. ОтправкаНазад не меняется: пример не регистрирует встречные изменения и не создаёт бесконечный пинг-понг.

Ожидаемый результат

Показана прикладная фильтрация / служебная метка / нормализация своего образа в правильном событии.

На что обратить внимание

  1. Не включайте ОсобыйРежимОбмена у рабочих объектов и не заменяйте конфликтную политику типовой конфигурации этим уроком.

  2. ОтправкаЭлемента и ПолучениеЭлемента — разные системные перечисления; Отказ и Игнорировать в других событиях — обычные Булево.

  3. Сборка справочника не исполняет BSL и не выполняет обмен.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.