ПланОбменаМенеджер.<Имя плана обмена>.ПустаяСсылка

Методы · EmptyRef

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

Синтаксис

ПустаяСсылка()
Полное описание, параметры и ограничения

ПланОбменаМенеджер.<Имя плана обмена>.ПустаяСсылка (ExchangePlanManager.<Exchange plan name>.EmptyRef)

ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Exchange plan name>)

ПустаяСсылка (EmptyRef)

Доступен, начиная с версии 8.0.

Синтаксис:
ПустаяСсылка()
Возвращаемое значение:
Тип: ПланОбменаСсылка.<Имя плана обмена>.

Описание:

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

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Может использоваться, например, в тех случаях, когда нужно передать пустую ссылку в параметр метода.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Построить собственную ссылку узла без создания узла или обмена

Функциональный Новый создаёт пустую либо плановую ссылку. UUID передаётся элементом массива параметров; непустая ссылка и существующий узел — разные состояния.

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

Полный серверный модуль своей новой пустой Учебная85, платформа 8.5.1.1343. Только собственный периферийный узел, никакого настоящего обмена; здесь не запускался.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу. В Конфигураторе имя корня Учебная85; не используйте рабочую базу или копию действующего обмена.

  2. В отдельной пустой конфигурации Учебная85 создайте Планы обмена → УчебныйОбмен: длина кода 9, тип Строка, наименование длиной 100. Распределённая информационная база выключена; состав плана пустой.

  3. Добавьте реквизит АдресУчебногоУзла: Строка длиной 100, Проверка заполнения = Показывать ошибку. Модуль объекта и подписки должны быть пустыми; не добавляйте отправку сообщений или внешние действия.

  4. Добавьте макет УчебнаяПамятка типа Текстовый документ, одна строка: Этот узел используется только для учебных примеров. История данных для плана не включена. Обновите конфигурацию базы данных.

  5. В своём УчебныйОбмен включите автонумерацию и контроль уникальности кода. РИБ выключена, состав пустой, расширений/подписок нет, модули пустые. Никаких HTTP/почтовых обработчиков или регистрации чужих изменений не добавляйте.

  6. Уроки здесь не запускались в 1С. В ваших базах не создавались узлы, не отправлялись и не принимались сообщения; HTML показывает только код и объяснение.

  7. ДатаОбмена по установленной справке означает дату последнего обмена с мобильным клиентом с автономным режимом. Её нельзя объявлять временем любой синхронизации или сетевым тестом.

  8. ВерсияДанных — непрозрачная строка платформы, не номер принятого сообщения. Все свойства ссылки readonly; изменения выполняются только у своего объекта.

  9. Создайте серверный общий модуль УчебныеСсылкиОбмена и вставьте весь модуль отдельного урока. ВыполнитьПример() Экспорт вызывайте из собственной процедуры формы с &НаСервереБезКонтекста.

  10. Транзакционные уроки временно записывают только свой новый периферийный узел и всегда откатывают запись. Не заменяйте ОтменитьТранзакцию фиксацией; внутри чужой транзакции модуль не допускается.

Процедура ВыполнитьПример() Экспорт
    Если Метаданные.ПланыОбмена.Найти("УчебныйОбмен") = Неопределено Тогда
        ВызватьИсключение "Сначала создайте собственный учебный план обмена";
    КонецЕсли;
    ТипСсылки = Тип("ПланОбменаСсылка.УчебныйОбмен");
    Пустая = Новый(Тип("ПланОбменаСсылка.УчебныйОбмен"));
    Идентификатор = Новый УникальныйИдентификатор;
    Параметры = Новый Массив;
    Параметры.Добавить(Идентификатор);
    Плановая = Новый(Тип("ПланОбменаСсылка.УчебныйОбмен"), Параметры);
    Сообщить(ТипЗнч(Пустая) = ТипСсылки);
    Сообщить(Пустая.Пустая());
    Сообщить(Пустая = ПланыОбмена.УчебныйОбмен.ПустаяСсылка());
    Сообщить(Не Плановая.Пустая());
    Сообщить(Плановая.УникальныйИдентификатор() = Идентификатор);
    Сообщить(Плановая = ПланыОбмена.УчебныйОбмен.ПолучитьСсылку(Идентификатор));
    Сообщить(Плановая.ПолучитьОбъект() = Неопределено);
    Сообщить("Ссылка не создала узел и не запустила обмен");
КонецПроцедуры

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

  1. Проверить точную платформу и собственный подготовленный план УчебныйОбмен.

  2. Создать пустую ссылку по прикладному Тип и сравнить её с ПустаяСсылка менеджера.

  3. Создать новый UUID, затем отдельный массив и добавить UUID одним элементом.

  4. Построить плановую ссылку функциональным Новый и сравнить с ПолучитьСсылку того же UUID.

  5. Проверить ПолучитьОбъект=Неопределено; данные отсутствующего узла не читать и Записать не вызывать.

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

  1. Семь сравнений Истина: тип, пустота, равенство пустых ссылок, непустота, UUID, равенство плановых и отсутствие объекта.

  2. Узел в список не добавлен; сообщение обмена не создано.

  3. Второй аргумент Новый — массив, не непосредственный UUID.

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

Показана реальная идентичность собственной прикладной ссылки без записи и сетевых операций.

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

  1. Новый UUID и непустая ссылка не подтверждают существование узла; отдельно проверяется ПолучитьОбъект.

  2. Нулевые счётчики и дата не доказывают успешный обмен. Этот блок не формирует/не читает сообщения и не открывает соединения.

  3. Не присваивайте свойствам ссылки и не устанавливайте ЭтотУзел=Истина для имитации текущей базы.

  4. Откат базы не отменяет внешние действия обработчиков, поэтому урок допускается только в своей пустой конфигурации с пустыми модулями и подписками.

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

Проверить семейство ссылки: четыре своих типа и три неподходящих значения

ТипВсеСсылки возвращает ОписаниеТипов семейства, не коллекцию записей. Классифицируем семь своих значений и отдельно запрещаем бизнес-действие для распознанных пустых ссылок.

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

Полный серверный модуль новой собственной УчебныеСемейства85, 8.5.1.1343. Только четыре пустые ссылки и семь собственных значений в памяти; записи и обмена нет.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, корневая конфигурация УчебныеСемейства85, платформа точно 8.5.1.1343. Это не копия УТ/КА2/УНФ/БП. Объекты ниже создаются в Конфигураторе, данные в них не вводятся.

  2. Справочники → Добавить: единственный УчебныеТовары85. Код Строка 9, наименование Строка 50, без владельца, иерархии, предопределённых элементов и дополнительных реквизитов. Модули пустые.

  3. Планы видов характеристик → Добавить: единственный УчебныеСвойства85. Код Строка 9, наименование Строка 50, тип значений характеристик Строка 30. Модули пустые, без дополнительных реквизитов, предопределённых элементов и обработчиков.

  4. Планы счетов → Добавить: единственный УчебныеСчета85. Длина кода 9, наименование 50, без предопределённых счетов и дополнительных реквизитов; модули пустые. Для этого урока счета не создаются и состав субконто не используется.

  5. Планы обмена → Добавить: единственный УчебныеУзлы85. Код Строка 9, наименование Строка 50, распределённая информационная база выключена, состав плана пустой. Не создавайте узлы, сообщения, регистрации изменений и начальные образы; модули пустые.

  6. Других объектов этих четырёх семейств не добавляйте. Документов, регистров, расширений, подписок и фоновых заданий для урока нет. Обновите конфигурацию базы данных.

  7. Создайте серверный общий модуль УчебныеСемействаПримеры. Вставьте весь модуль и вызовите ВыполнитьПример() Экспорт из своей серверной команды обработки. Не вставляйте экспортную процедуру в тело другой процедуры.

  8. Пустые ссылки получаются из своих конкретных менеджеров. Непустые объекты не ищутся по первой строке, кодам или UUID; запись и обмен не выполняются. Данные семи тестов существуют только в собственном массиве в памяти.

  9. Здесь пример в 1С не запускался. Контракты сверены с установленной справкой 8.5.1.1343. Распознавание семейства типа не является проверкой заполнения, существования записи, разрешения доступа или пригодности для бизнес-операции.

Процедура ВыполнитьПример() Экспорт
    Если Метаданные.Справочники.Количество() <> 1
        Или Метаданные.Справочники.Найти("УчебныеТовары85") = Неопределено Тогда
        ВызватьИсключение "Нужен только собственный объект УчебныеТовары85";
    КонецЕсли;
    Если Метаданные.ПланыСчетов.Количество() <> 1
        Или Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
        ВызватьИсключение "Нужен только собственный объект УчебныеСчета85";
    КонецЕсли;
    Если Метаданные.ПланыВидовХарактеристик.Количество() <> 1
        Или Метаданные.ПланыВидовХарактеристик.Найти("УчебныеСвойства85") = Неопределено Тогда
        ВызватьИсключение "Нужен только собственный объект УчебныеСвойства85";
    КонецЕсли;
    Если Метаданные.ПланыОбмена.Количество() <> 1
        Или Метаданные.ПланыОбмена.Найти("УчебныеУзлы85") = Неопределено Тогда
        ВызватьИсключение "Нужен только собственный объект УчебныеУзлы85";
    КонецЕсли;
    ТипыТоваров = Справочники.ТипВсеСсылки();
    ТипыСчетов = ПланыСчетов.ТипВсеСсылки();
    ТипыСвойств = ПланыВидовХарактеристик.ТипВсеСсылки();
    ТипыУзлов = ПланыОбмена.ТипВсеСсылки();
    Сообщить(ТипЗнч(ТипыТоваров) = Тип("ОписаниеТипов"));
    Сообщить(ТипЗнч(ТипыСчетов) = Тип("ОписаниеТипов"));
    Сообщить(ТипЗнч(ТипыСвойств) = Тип("ОписаниеТипов"));
    Сообщить(ТипЗнч(ТипыУзлов) = Тип("ОписаниеТипов"));
    Тесты = Новый Массив;
    Тесты.Добавить(Новый Структура("Значение,Ожидается", Справочники.УчебныеТовары85.ПустаяСсылка(), "Справочник"));
    Тесты.Добавить(Новый Структура("Значение,Ожидается", ПланыСчетов.УчебныеСчета85.ПустаяСсылка(), "ПланСчетов"));
    Тесты.Добавить(Новый Структура("Значение,Ожидается", ПланыВидовХарактеристик.УчебныеСвойства85.ПустаяСсылка(), "ПланВидовХарактеристик"));
    Тесты.Добавить(Новый Структура("Значение,Ожидается", ПланыОбмена.УчебныеУзлы85.ПустаяСсылка(), "ПланОбмена"));
    Тесты.Добавить(Новый Структура("Значение,Ожидается", 7, "НеПоддерживается"));
    Тесты.Добавить(Новый Структура("Значение,Ожидается", "УчебныеТовары85", "НеПоддерживается"));
    Тесты.Добавить(Новый Структура("Значение,Ожидается", Неопределено, "НеПоддерживается"));
    Распознано = 0;
    Отклонено = 0;
    Для Каждого Тест Из Тесты Цикл
        ТипВхода = ТипЗнч(Тест.Значение);
        Если ТипыТоваров.СодержитТип(ТипВхода) Тогда
            Категория = "Справочник";
        ИначеЕсли ТипыСчетов.СодержитТип(ТипВхода) Тогда
            Категория = "ПланСчетов";
        ИначеЕсли ТипыСвойств.СодержитТип(ТипВхода) Тогда
            Категория = "ПланВидовХарактеристик";
        ИначеЕсли ТипыУзлов.СодержитТип(ТипВхода) Тогда
            Категория = "ПланОбмена";
        Иначе
            Категория = "НеПоддерживается";
        КонецЕсли;
        Если Категория <> Тест.Ожидается Тогда
            ВызватьИсключение "Семейство своего тестового значения определено неверно";
        КонецЕсли;
        Сообщить(Строка(ТипВхода) + " → " + Категория);
        Если Категория = "НеПоддерживается" Тогда
            Отклонено = Отклонено + 1;
            Сообщить("Значение не преобразуется из числа или строки в ссылку");
        Иначе
            Распознано = Распознано + 1;
            Если ЗначениеЗаполнено(Тест.Значение) Тогда
                ВызватьИсключение "Тест должен содержать только собственную пустую ссылку";
            КонецЕсли;
            Сообщить("Семейство распознано, но ссылка пустая: бизнес-действие запрещено");
        КонецЕсли;
    КонецЦикла;
    Если Тесты.Количество() <> 7 Или Распознано <> 4 Или Отклонено <> 3 Тогда
        ВызватьИсключение "Не подтверждено прохождение всех семи своих тестов";
    КонецЕсли;
    Сообщить("Распознано 4 пустых типизированных ссылки, отклонено 3 нессылочных значения");
    Сообщить("Определение типа не проверяет существование записи и не разрешает бизнес-операцию");
КонецПроцедуры

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

  1. Проверить точную платформу, имя собственной новой конфигурации и наличие только своих четырёх объектов метаданных.

  2. Получить по одному ОписаниеТипов от менеджера семейства. Справочники — менеджер всех справочников, Справочники.УчебныеТовары85 — менеджер конкретного справочника.

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

  4. Добавить отрицательные проверки: число 7, строка с названием справочника и Неопределено. Название или числовое значение не преобразуется в ссылку.

  5. Для каждого теста взять ТипЗнч и проверить принадлежность через СодержитТип. Проверяется тип, не имя объекта и не результат Строка.

  6. Сравнить фактическую категорию с собственной ожидаемой. Несоответствие вызывает исключение, а не скрывается в итоговом количестве.

  7. После распознавания отдельно проверить ЗначениеЗаполнено: четыре своих ссылки пустые, поэтому бизнес-действие не выполняется.

  8. Проверить все семь тестов: четыре распознаны как семейства, три отклонены. Записи, обмена и проверки существования объекта в этом опыте нет.

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

  1. Четыре проверки возвращаемого ОписаниеТипов показывают Истина.

  2. Все семь категорий совпадают с заданными ожидаемыми: Справочник, ПланСчетов, ПланВидовХарактеристик, ПланОбмена и три НеПоддерживается.

  3. Четыре ссылки распознаны по типу, но отдельно признаны пустыми; код не использует их как существующие записи.

  4. Итог 4/3 получен после проверки каждого теста, а не вместо проверки содержимого. База и сообщения обмена не изменяются.

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

Разобрана проверка входного типа до бизнес-операции и различие между семейством, конкретным типом, заполнением и существованием записи.

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

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

  2. ОписаниеТипов не перечисляет элементы информационной базы. Здесь не выполняются выборки и не читаются данные пустых ссылок.

  3. Тип характеристики Строка не является типом ссылки на элемент плана видов характеристик; этот урок проверяет именно ссылку.

  4. Тип узла плана обмена не даёт разрешения регистрировать изменения, отправлять сообщения или создавать начальный образ.

  5. Заполненная ссылка тоже может вести к отсутствующей записи; этого отдельного условия типовая классификация не доказывает.

  6. Здесь только статическая проверка по справке; запуск в 1С не подтверждён.

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

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

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

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

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