Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Синтаксис
УстановитьСсылкуНового(<Ссылка>)Полное описание, параметры и ограничения
ПланВидовРасчетаОбъект.<Имя плана видов расчета>.УстановитьСсылкуНового (ChartOfCalculationTypesObject.<Chart of calculation types name>.SetNewObjectRef)
ПланВидовРасчетаОбъект.<Имя плана видов расчета> (ChartOfCalculationTypesObject.<Chart of calculation types name>)
УстановитьСсылкуНового (SetNewObjectRef)
Доступен, начиная с версии 8.0.
Синтаксис:
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: ПланВидовРасчетаСсылка.<Имя плана видов расчета>.
Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Доступность:
Сервер, толстый клиент, внешнее соединение.
См. также:
ПланВидовРасчетаМенеджер.<Имя плана видов расчета>, метод ПолучитьСсылку
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Назначить будущий идентификатор виду расчёта без записи
ПолучитьСсылку создаёт типизированную ссылку, но существование вида надо проверять отдельно. Плановый UUID не является начислением или кодом вида.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу, имя корня УчебныеРасчеты85. Не изменяйте рабочие ЗУП/КА2/УНФ/УТ/БП. Пример технический: зарплата, налоги и выплаты не рассчитываются.
Планы видов расчёта → Добавить: УчебныеНачисления85. ТипКода Строка, ДлинаКода 10, ДлинаНаименования 100. ИспользованиеПериодаДействия включено; ЗависимостьОтВидовРасчета=ПоПериодуДействия.
В настройке базовых планов видов расчёта выберите только сам УчебныеНачисления85. Это позволяет учебным видам ссылаться на другие виды того же плана. Предопределённые виды, пользовательские реквизиты и табличные части не создавайте.
Модули объекта/менеджера оставьте пустыми, регистры расчёта и бизнес-алгоритмы не добавляйте. Обновите конфигурацию БД и создайте серверный ВыполнитьПример() Экспорт собственной обработки.
Фрагмент вставляется внутрь процедуры. Все виды и строки зависимостей создаются только в памяти; Записать, блокировки, удаления объектов и привилегированный режим не вызываются.
Случайные ссылки зависимостей — ПЛАНОВЫЕ идентификаторы, соответствующих сохранённых видов нет. Они нужны для разбора типизированных списков, а не для запуска расчёта.
Описание = Метаданные.ПланыВидовРасчета.Найти("УчебныеНачисления85");
Если Описание = Неопределено Тогда
ВызватьИсключение "Создайте собственный план УчебныеНачисления85";
КонецЕсли;
Если Описание.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
Или Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
Или Не Описание.ИспользованиеПериодаДействия
Или Описание.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия Тогда
ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.БазовыеВидыРасчета.Количество() <> 1
Или Не Описание.БазовыеВидыРасчета.Содержит(Описание) Тогда
ВызватьИсключение "Выберите только собственный план как базовый";
КонецЕсли;
Менеджер = ПланыВидовРасчета.УчебныеНачисления85;
Премия = Менеджер.СоздатьВидРасчета();
Премия.Код = "BONUS";
Премия.Наименование = "Учебная премия";
Премия.ПериодДействияБазовый = Истина;
Премия.ДополнительныеСвойства.Вставить("Метка", "Не реальное начисление");
Идентификатор = Новый УникальныйИдентификатор;
Плановая = Менеджер.ПолучитьСсылку(Идентификатор);
Премия.УстановитьСсылкуНового(Плановая);
Сообщить(Премия.ПолучитьСсылкуНового() = Плановая);
Сообщить(Премия.ЭтоНовый());
Сообщить(Не Плановая.Пустая());
Сообщить(Плановая.УникальныйИдентификатор() = Идентификатор);
Сообщить(Плановая.Метаданные().Имя = "УчебныеНачисления85");
Сообщить(Плановая.ПолучитьОбъект() = Неопределено);
Пустая = Менеджер.ПустаяСсылка();
Сообщить(Пустая.Пустая());
Сообщить(ТипЗнч(Пустая) = ТипЗнч(Плановая));Разбор по шагам
Генерируем новый случайный UUID; не используем существующую ссылку вида расчёта.
УстановитьСсылкуНового связывает будущую идентичность с объектом Премия в памяти.
Плановая ссылка непустая и имеет правильный тип, но ПолучитьОбъект возвращает Неопределено.
Пустая ссылка того же типа отличается по Пустая(). Не читаем Код/Наименование несуществующей плановой ссылки.
Как проверить результат
Восемь логических сообщений дают Истина.
У объекта задана будущая ссылка, однако сохранённого вида нет; список видов не изменился.
Ожидаемый результат
Разделены код вида, тип ссылки, UUID и наличие записи в базе.
На что обратить внимание
Непустая ссылка не доказывает наличие определения и его пригодность для расчёта.
Не назначайте существующую ссылку новому виду для эксперимента.
Запись не выполняется; свойства сохранённого вида по этой ссылке не проверяются.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.