БизнесПроцессОбъект.<Имя бизнес-процесса>.ЭтоНовый

Методы · IsNew

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

Синтаксис

ЭтоНовый()

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

Если ВыбБизнесПроцесс.ЭтоНовый() Тогда
    ВыбБизнесПроцесс.Записать();
КонецЕсли;
Полное описание, параметры и ограничения

БизнесПроцессОбъект.<Имя бизнес-процесса>.ЭтоНовый (BusinessProcessObject.<Business process name>.IsNew)

БизнесПроцессОбъект.<Имя бизнес-процесса> (BusinessProcessObject.<Business process name>)

ЭтоНовый (IsNew)

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

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

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

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

Сервер, толстый клиент, внешнее соединение.

Пример:

Если ВыбБизнесПроцесс.ЭтоНовый() Тогда
ВыбБизнесПроцесс.Записать();
КонецЕсли;

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

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

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

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

Различить шесть типов точек сложного маршрута

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

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

Серверный фрагмент для отдельной Учебная85. Не модуль рабочей КА2/УНФ/УТ/БП; маршрут не запускается.

Подготовка

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

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

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

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

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

  6. Только в отдельной пустой Учебная85 создайте задачу УчебнаяЗадача с номером Строка 9, автонумерацией и наименованием Строка 100. Создайте бизнес-процесс УчебныйСложныйПроцесс, номер Строка 9, автонумерация; его свойство Задача — УчебнаяЗадача.

  7. В редакторе карты создайте Старт → условие ПроверитьКоличество. Выход Да соедините с выбором варианта СпособПолучения, выход Нет — с завершением Финиш. У выбора создайте ровно два варианта Самовывоз и Доставка; оба соедините с разделением ПодготовитьПараллельно.

  8. После разделения нарисуйте две параллельные точки действия ПодготовитьКнигу и СогласоватьАдрес. Обе соедините со слиянием ДождатьсяПодготовки. После него: обработка ПересчитатьИтоги → вложенный бизнес-процесс ВыполнитьВложенный → завершение Финиш.

  9. Расположите точки без перекрытия, дайте всем читаемые исходные подписи. Модули процесса/задачи и обработчики точек оставьте пустыми, обновите конфигурацию базы данных. Это учебный чертёж для исследования API, не готовый исполняемый процесс: условия, варианты, адресация и создание вложенного процесса не реализованы.

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

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

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

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

  2. Условие выбирает логический выход Да/Нет, выбор варианта — один из именованных вариантов. Это разные типы элементов.

  3. Разделение предназначено для параллельных ветвей, слияние — для их объединения; выбранный вариант не равен параллельному запуску обеих ветвей.

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

  5. Имя, Значение и четыре геометрических поля только читаются. Геометрию меняют в редакторе, не присваиванием readonly-свойств.

  6. Три заключительные проверки подтверждают состояние собственного незаписанного экземпляра, не рабочие задачи.

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

  1. На каждую из шести точек два Истина и строка диагностики; затем три Истина о новом процессе.

  2. Имена и типы должны соответствовать вашему собственному чертежу. Положительные размеры не доказывают отсутствие перекрытий.

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

Шесть различных точек привязаны к реальному учебному маршруту, без его исполнения.

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

  1. Для исполняемого процесса ещё нужны обработчики условия/выбора, адресация задач и логика вложенного процесса.

  2. Не запускайте этот учебный чертёж как готовый рабочий процесс.

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

Отличить заполненность задачи от готовности её выполнения

У незаписанной задачи с пустыми обработчиками ПроверитьВыполнение возвращает Ложь. ПроверитьЗаполнение проверяет другой контракт и не выполняет задачу.

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

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

Подготовка

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

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

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

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

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

  6. В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.

  7. Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.

  8. Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.

  9. Адресацию задач, групповые/условные/вложенные точки и обработчики маршрута для этой задачи не добавляйте. Модули задачи и процесса, подписки и внешние действия должны быть пустыми. Обновите конфигурацию базы данных.

  10. Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

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

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

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

  2. ПроверитьЗаполнение возвращает успех проверки реквизитов, не разрешение роботу выполнить задачу.

  3. ПроверитьВыполнение вызывает соответствующие обработчики задачи/точки. По справке при отсутствии обработчиков возвращает Ложь.

  4. Методы проверки не заменяют ВыполнитьЗадачу. В этом уроке ни выполнение, ни запись не вызываются.

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

  1. Шесть сообщений Истина при точном соблюдении подготовки.

  2. Если перенесён обработчик другого урока, восстановите отдельную пустую учебную базу, а не ожидайте такой же результат.

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

Разделены заполненность, условия автоматического исполнения и состояние задачи.

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

  1. Не игнорируйте Ложь из ПроверитьВыполнение при проектировании робота.

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

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

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

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

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

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