Создает новый объект на основе переданных параметров. Такая форма записи будет вызывать ошибку при проверке модулей в конфигураторе, так как при проверке модулей в конфигураторе не определены типы прикладных объектов. Также может быть создан с использованием функциональной формы оператора Новый. Например, Задача = Новый(Тип("ЗадачаСсылка.ВыписатьСчет"));
Синтаксис
Новый ЗадачаСсылка.<Имя задачи>(<УникальныйИдентификатор>)Полное описание, параметры и ограничения
ЗадачаСсылка.<Имя задачи>.По умолчанию
ЗадачаСсылка.<Имя задачи> (TaskRef.<Task name>)
По умолчанию
Доступен, начиная с версии 8.2.
Синтаксис:
Новый ЗадачаСсылка.<Имя задачи>(<УникальныйИдентификатор>)
Параметры:
<УникальныйИдентификатор> (необязательный)
Тип: Массив.
Уникальный идентификатор ссылки.
Если идентификатор не указан, создается пустая ссылка.
Описание:
Создает новый объект на основе переданных параметров.
Такая форма записи будет вызывать ошибку при проверке модулей в конфигураторе, так как при проверке модулей в конфигураторе не определены типы прикладных объектов.
Также может быть создан с использованием функциональной формы оператора Новый.
Например, Задача = Новый(Тип("ЗадачаСсылка.ВыписатьСчет"));
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Создать пустые ссылки функциональными конструкторами и задать отсутствие связей
Документированное Новый(Тип(...)) без идентификатора: точные собственные типы, отличие от Неопределено, сравнение с менеджерами и реальные новые черновики только в памяти.
Где и как запускать
Полный серверный общий модуль УчебныйЦикл85, собственный стенд УчебныеПустыеСсылки85; отдельный управляемый модуль клиента.
Подготовка
Новая пустая конфигурация УчебныеПустыеСсылки85 на платформе8.5.1.1343, управляемое приложение и толстый клиент Windows. Рабочие конфигурации и неизвестные чужие виды объектов не используются.
Задачи → УчебнаяЗадача85: номер Строка9 с автонумерацией, Наименование100. Бизнес-процессы → УчебныйПроцесс85: номер Строка9, автонумерация, Задача=УчебнаяЗадача85.
Карта собственного процесса: Старт → одиночное действие Опыт85 → Финиш без адресации, вложенных/групповых точек и обработчиков. Этот урок не запускает маршрут.
Модули задачи, процесса, менеджеров и точки пустые. Запись, ПриКопировании, обработчики создания формы, обмен, история и внешние действия не нужны.
Общие → Общие модули → УчебныйЦикл85: Сервер и ВызовСервера Истина, Глобальный/Привилегированный Ложь; остальные флаги и повторное использование выключены. Вставьте основной модуль полностью.
Обработки → Запуск85 → управляемая форма Форма: ПодтверждаюПустойСтенд85 и Занято85 Булево исходно Ложь; Итог85 Строка неограниченной длины только для просмотра.
Вставьте отдельный полный модуль формы из дополнительного блока; команда ВыполнитьПример85 назначена кнопке, Действие=ВыполнитьСвойЦикл85. Клиентская процедура ВыполнитьСвойЦикл85 передаёт согласие серверному УчебныйЦикл85.ВыполнитьПример85.
F7 и обновление только своего стенда. runtimeVerifiedScenarios=0: 1С, функциональные конструкторы, назначение связей и черновики здесь реально не запускались.
Справка обоих конструкторов прямо предупреждает, что прямой синтаксис Новый ЗадачаСсылка.<Имя> или Новый БизнесПроцессСсылка.<Имя> вызывает ошибку проверки модулей. Код использует документированную функциональную форму.
ТипЗадачи и ТипПроцесса получают именно типы собственных ссылок, не объектов/менеджеров. Конструктор вызывается без идентификатора; второй массив параметров функциональному Новый не передаётся.
После согласия будущий ручной опыт получает пустые значения, проверяет их тип/Пустая, сравнивает с менеджерскими пустыми ссылками и назначает реальным новым черновикам.
Дополнительных реквизитов базы и пользовательского UUID нет. Создание значений ссылок не пишет запись, новые черновики тоже не записываются.
Это отдельный самостоятельный урок: результаты предыдущего урока с откатом не используются. Нет транзакции, DB-записи/удаления, сети, файлов, архива или резервной копии.
Функция ВыполнитьПример85(Согласие) Экспорт
Если Не Согласие Тогда
ВызватьИсключение "Только собственный новый стенд УчебныеПустыеСсылки85 с согласием";
КонецЕсли;
ТипЗадачи = Тип("ЗадачаСсылка.УчебнаяЗадача85");
ТипПроцесса = Тип("БизнесПроцессСсылка.УчебныйПроцесс85");
ПустаяЗадача = Новый(Тип("ЗадачаСсылка.УчебнаяЗадача85"));
ПустойПроцесс = Новый(Тип("БизнесПроцессСсылка.УчебныйПроцесс85"));
Если ТипЗнч(ПустаяЗадача) <> ТипЗадачи Или ТипЗнч(ПустойПроцесс) <> ТипПроцесса Тогда
ВызватьИсключение "Функциональные конструкторы должны вернуть точные собственные ссылочные типы";
КонецЕсли;
Если Не ПустаяЗадача.Пустая() Или Не ПустойПроцесс.Пустая() Тогда
ВызватьИсключение "Без идентификатора конструкторы должны создавать пустые ссылки";
КонецЕсли;
Если ПустаяЗадача = Неопределено Или ПустойПроцесс = Неопределено Тогда
ВызватьИсключение "Типизированная пустая ссылка не равна Неопределено";
КонецЕсли;
Если ПустаяЗадача <> Задачи.УчебнаяЗадача85.ПустаяСсылка()
Или ПустойПроцесс <> БизнесПроцессы.УчебныйПроцесс85.ПустаяСсылка() Тогда
ВызватьИсключение "Конструкторы не совпали с собственными менеджерскими пустыми ссылками";
КонецЕсли;
Задача = Задачи.УчебнаяЗадача85.СоздатьЗадачу();
Задача.Дата = ТекущаяДата();
Задача.Наименование = "Отдельная задача только в памяти";
Задача.БизнесПроцесс = ПустойПроцесс;
Задача.ТочкаМаршрута = БизнесПроцессы.УчебныйПроцесс85.ПустаяСсылкаНаТочкуМаршрута();
Процесс = БизнесПроцессы.УчебныйПроцесс85.СоздатьБизнесПроцесс();
Процесс.Дата = ТекущаяДата();
Процесс.ВедущаяЗадача = ПустаяЗадача;
Если Задача.БизнесПроцесс <> ПустойПроцесс Или Процесс.ВедущаяЗадача <> ПустаяЗадача Тогда
ВызватьИсключение "Собственные типизированные пустые значения не назначились реальным черновикам";
КонецЕсли;
Если Не Задача.ТочкаМаршрута.Пустая() Тогда
ВызватьИсключение "Отдельный черновик задачи не должен относиться к точке маршрута";
КонецЕсли;
Если Не Задача.ЭтоНовый() Или Не Процесс.ЭтоНовый()
Или Не Задача.Ссылка.Пустая() Или Не Процесс.Ссылка.Пустая() Тогда
ВызватьИсключение "Черновики должны оставаться новыми незаписанными объектами";
КонецЕсли;
Если Задача.Выполнена Или Процесс.Стартован Или Процесс.Завершен Тогда
ВызватьИсключение "Создание пустых ссылок не должно имитировать исполнение маршрута";
КонецЕсли;
Возврат "Два функциональных конструктора создали реальные типизированные пустые ссылки, не Неопределено. Они назначены своим новым черновикам как отсутствие связей. Объекты остались незаписанными и неисполненными.";
КонецФункцииУправляемый запуск функциональных конструкторов
УчебныеПустыеСсылки85 → Обработки → Запуск85 → Формы → Форма → Модуль
Полный модуль своей управляемой формы: согласие, занятость и серверный вызов УчебныйЦикл85.ВыполнитьПример85.
&НаКлиенте
Процедура ВыполнитьСвойЦикл85(Команда)
Если Не ПодтверждаюПустойСтенд85 Или Занято85 Тогда
ВызватьИсключение "Нужно собственное подтверждение и отсутствие другого опыта";
КонецЕсли;
Занято85 = Истина;
Попытка
Итог85 = УчебныйЦикл85.ВыполнитьПример85(ПодтверждаюПустойСтенд85);
Исключение
Занято85 = Ложь;
Итог85 = ОписаниеОшибки();
ВызватьИсключение;
КонецПопытки;
Занято85 = Ложь;
КонецПроцедурыРазбор по шагам
Проверяются собственная конфигурация, согласие. Два значения Тип берутся по именам реально подготовленных собственных метаданных.
Новый(Тип("ЗадачаСсылка.УчебнаяЗадача85")) и Новый(Тип("БизнесПроцессСсылка.УчебныйПроцесс85")) вызывают конструкторы ссылок без идентификатора. Это создание ссылочных значений, не вызов СоздатьЗадачу/СоздатьБизнесПроцесс.
ТипЗнч подтверждает разные точные собственные типы. Пустая подтверждает отсутствие идентичности записи; сравнение с Неопределено объясняет другое значение/тип.
Пустые значения сопоставляются с ПустаяСсылка своих менеджеров. Это контроль результата настоящих конструкторов, а не замена их менеджерским вызовом.
Настоящие менеджеры создают новые редактируемые задачу и процесс только в памяти. Пустой процесс назначается БизнесПроцесс задачи, пустая задача — ВедущаяЗадача процесса.
Отдельная задача получает пустую собственную ссылку точки маршрута; отсутствие связи проверяется. Это не назначение точки Старт и не запуск workflow.
В конце подтверждается ЭтоНовый, пустая собственная идентичность черновиков и исходные флаги. Клиент получает только текст проверки, никакие объекты не сохраняются.
Как проверить результат
Функциональные конструкторы реально используются в полном основном коде; оба получают ровно значение Тип своего ссылочного вида.
Результаты имеют точные разные ссылочные типы, Пустая=Истина, не равны Неопределено.
Конструкторские пустые значения равны пустым ссылкам собственных менеджеров.
Реальные новые черновики содержат ожидаемые пустые связи; задача вне маршрута, процесс без ведущей задачи.
ЭтоНовый=Истина и собственные ссылки черновиков пустые; нет записи, выполнения задачи или старта процесса.
Ожидаемый результат
При будущем ручном запуске два документированных функциональных конструктора дают типизированные пустые значения; новые черновики используют их как отсутствие связей и остаются в памяти.
На что обратить внимание
Новый(Тип(...)) — функциональная форма оператора, первый аргумент здесь Тип. Это не Новый Структура и не строковое имя метаданного объекта вместо Тип.
Прямой синтаксис прикладной ссылки указан в справке с предупреждением о проверке модулей. Для копируемого учебного кода используется документированная функциональная форма.
Тип ЗадачаСсылка отличается от ЗадачаОбъект; тип БизнесПроцессСсылка отличается от БизнесПроцессОбъект. Конструктор ссылки не создаёт редактируемый объект базы.
Неопределено — отсутствие значения, пустая ссылка — значение конкретного ссылочного типа без идентичности. Их нельзя выдавать за одно и то же.
Конструктор без идентификатора создаёт пустую ссылку. Пользовательский UUID не передаётся, существование записи не угадывается и не утверждается.
В установленной русской справке задачи тип необязательного параметра идентификатора указан как Массив, у процесса как УникальныйИдентификатор. Этот урок намеренно не использует неоднозначный параметр и не обещает поддерживаемую форму с ним.
ПустаяСсылка менеджера нужна здесь для сравнения значений, а не чтобы скрыть отсутствующий конструктор. Оба функциональных Новый выполнены в основном коде.
Пустой БизнесПроцесс у задачи означает отсутствие породившего процесса; пустая ВедущаяЗадача у процесса означает отсутствие ведущей задачи, не реальную вложенность.
Пустая точка маршрута не является точкой Старт. Создание черновика или пустой ссылки не выполняет задачу и не запускает/завершает процесс.
ЭтоНовый относится к редактируемому объекту, не к пустой ссылке. Не вызывайте объектные методы записи/выполнения на ссылочном значении.
Сравнение типизированных значений и назначение в объект памяти не сохраняют базу. Код не вызывает Записать, удаление, транзакцию или произвольный обработчик.
Все проверки статические, runtimeVerifiedScenarios=0. Реальный запуск конструктора/1С не подтверждён; новых резервных копий, архивов или внешних действий нет.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.