ПланОбменаОбъект.<Имя плана обмена>.ЭтоНовый

Методы · IsNew

Определяет, записан ли узел в базу данных.

Синтаксис

ЭтоНовый()

Примеры платформы

Если Объект.ЭтоНовый() Тогда
    Объект.Наименование = "Новый узел";
КонецЕсли;
Полное описание, параметры и ограничения

ПланОбменаОбъект.<Имя плана обмена>.ЭтоНовый (ExchangePlanObject.<Exchange plan name>.IsNew)

ПланОбменаОбъект.<Имя плана обмена> (ExchangePlanObject.<Exchange plan name>)

ЭтоНовый (IsNew)

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

Синтаксис:
ЭтоНовый()
Возвращаемое значение:
Тип: Булево.
Истина - изменяется еще ни разу не записанный узел; Ложь - узел уже записан.
Описание:

Определяет, записан ли узел в базу данных.

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

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

Пример:

Если Объект.ЭтоНовый() Тогда
Объект.Наименование = "Новый узел";
КонецЕсли;

Использование в версии:

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

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

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

Заполнить черновик и отдельно изменить его копию

Своя структура задаёт код и имя узла через явное копирование разрешённых полей. Копия остаётся новой; изменение её имени не меняет исходный объект.

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

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

Подготовка

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

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

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

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

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

  9. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи. УчебныйОбмен не является существующим рабочим обменом КА2 или УТ.

  10. Узел каждый раз новый и периферийный. Существующие узлы и текущий узел базы не меняются. Запись, блокировка и удаление далее выполняются только над своим новым UUID в собственной отменяемой транзакции.

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

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

  1. Данные целиком сформированы в примере, не прочитаны из существующего рабочего узла.

  2. Заполнить инициирует ОбработкаЗаполнения. Пустой учебный обработчик не выдаём за готовый алгоритм переноса структуры.

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

  4. Скопировать создаёт новый объект, а не вторую переменную того же изменяемого объекта.

  5. Меняем имя копии и сравниваем оба имени; обе записи остаются только в памяти.

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

  1. Семь сравнений Истина.

  2. Новый код здесь учебный литерал; он не проверен на уникальность для реальной записи, которая не вызывается.

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

Проверены заполнение и независимое изменение своего нового узла.

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

  1. Не записывайте фиксированный учебный код в рабочий план обмена.

  2. Модуль заполнения рабочей конфигурации может выполнять другие операции; этот урок требует пустой учебный модуль.

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

Разобрать устаревший метод комментария истории

Старый метод без параметров не рекомендуется с 8.3.15. У собственного черновика показываем отдельный диагностический вызов и затем современное свойство без записи версии.

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

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

Подготовка

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

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

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

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

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

  9. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи. УчебныйОбмен не является существующим рабочим обменом КА2 или УТ.

  10. Узел каждый раз новый и периферийный. Существующие узлы и текущий узел базы не меняются. Запись, блокировка и удаление далее выполняются только над своим новым UUID в собственной отменяемой транзакции.

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

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

  1. В локальной справке старый метод имеет синтаксис без аргументов и помечен Не рекомендуется с 8.3.15.

  2. Для знакомства с наследуемым кодом вызываем его только на своём новом черновике. Возможная ошибка показана пользователю, а не скрыта.

  3. В новом коде используется ЗаписьИсторииДанных.КомментарийВерсии — явная строка у параметров будущей записи.

  4. История в учебном плане выключена и Записать не вызывается. Поэтому не объявляем созданную версию или сохранённый комментарий.

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

  1. Три итоговые проверки Истина; диагностическое сообщение старого вызова может быть успешным или содержать явную ошибку.

  2. Объект остаётся новым с пустой ссылкой. Никакая версия истории не проверяется как записанная.

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

Разобраны граница устаревшего API и рекомендуемое современное свойство.

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

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

  2. Не добавляйте выдуманный строковый параметр старому методу: локальная справка его не объявляет.

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

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

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

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

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