Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Синтаксис
УстановитьСсылкуНового(<Ссылка>)Полное описание, параметры и ограничения
ДокументОбъект.<Имя документа>.УстановитьСсылкуНового (DocumentObject.<Document name>.SetNewObjectRef)
ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)
УстановитьСсылкуНового (SetNewObjectRef)
Доступен, начиная с версии 8.0.
Синтаксис:
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: ДокументСсылка.<Имя документа>.
Ссылка, которая будет назначена при записи нового объекта.
Описание:
Устанавливает значение для нового (созданного и еще не записанного) объекта, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ДокументМенеджер.<Имя документа>, метод ПолучитьСсылку
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Назначить своему новому черновику ссылку будущей записи
UUID генерируется уроком, менеджер создаёт значение ссылки, а объект хранит её назначение для будущей записи. ПолучитьСсылкуНового не выполняет сохранение.
Где и как запускать
Полный серверный модуль новой собственной Учебная85, точная 8.5.1.1343. Непроводимая заявка; временные собственные записи только с отменой транзакции. Код здесь не запускался.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.
Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.
Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.
У своего документа и товара модули пустые, подписок, расширений и внешних обработчиков нет. История данных выключена; проведение УчебнаяЗаявка запрещено, движения/регистры не создаются.
Номер заявки здесь строковый длиной 9, с автонумерацией. Для иной числовой нумерации нельзя копировать проверки Строка. Дата задаётся собственным литералом, не читается из рабочего документа.
Свойства ссылки readonly. Непустой UUID/ссылка не означает наличие записи, а ВерсияДанных — непрозрачная строка, не номер документа или версия конфигурации.
Примеры здесь не запускались в 1С. Только код и установленная справка 8.5.1.1343; ваши документы не создавались, не проводились и не удалялись.
Создайте серверный общий модуль УчебныеСсылкиДокументов и вставьте весь модуль одного урока. ВыполнитьПример() Экспорт вызывайте из своей процедуры формы с &НаСервереБезКонтекста; обновите конфигурацию БД.
Для этого блока корень Учебная85, единственный справочник УчебныеТовары, единственный непроводимый документ УчебнаяЗаявка; регистров нет. Модули объекта/менеджера и подписки пустые, история выключена, расширений, обменов и фоновых заданий нет.
Запускайте полный модуль одного урока отдельно, единственным пользователем. Нельзя заменять проверки имени/схемы рабочими объектами или передавать документ, найденный по первой строке.
Уроки с записью/пометкой/удалением сами создают новый товар и новую заявку внутри своей транзакции, отслеживают только их ссылки и отменяют всё при успехе/ошибке. Фиксации нет; не вызывайте их внутри чужой транзакции.
Уроки черновика/времени/макета вообще не записывают документы. Все помощники и подготовленные данные предоставлены в полном модуле, внешняя библиотека не нужна.
Прямое Удалить не проверяет ссылочную целостность; откат учебной транзакции не делает этот метод безопасным для рабочего документа. Допустима только своя новая пустая база без внешних обработчиков. Здесь 1С не запускалась.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
ВызватьИсключение "Сначала подготовьте собственную УчебнаяЗаявка";
КонецЕсли;
Если Метаданные.Справочники.Количество() <> 1
Или Метаданные.Документы.Количество() <> 1
Или Метаданные.РегистрыНакопления.Количество() <> 0
Или Метаданные.РегистрыСведений.Количество() <> 0
Или Метаданные.РегистрыБухгалтерии.Количество() <> 0 Тогда
ВызватьИсключение "Нужны только собственные товар и непроводимая заявка, без регистров";
КонецЕсли;
Черновик = Документы.УчебнаяЗаявка.СоздатьДокумент();
Черновик.Дата = Дата(2026, 10, 6, 12, 0, 0);
Черновик.Комментарий = "Собственный черновик с плановым идентификатором";
Идентификатор = Новый УникальныйИдентификатор;
Плановая = Документы.УчебнаяЗаявка.ПолучитьСсылку(Идентификатор);
Если Плановая.ПолучитьОбъект() <> Неопределено Тогда
ВызватьИсключение "Плановая собственная ссылка неожиданно существует";
КонецЕсли;
Черновик.УстановитьСсылкуНового(Плановая);
Подготовленная = Черновик.ПолучитьСсылкуНового();
Сообщить(Подготовленная = Плановая);
Сообщить(Подготовленная.УникальныйИдентификатор() = Идентификатор);
Сообщить(Черновик.ЭтоНовый());
Сообщить(Подготовленная.ПолучитьОбъект() = Неопределено);
Сообщить("Получено назначение ссылки для будущей записи, но документ в базе не создан");
КонецПроцедурыРазбор по шагам
Создать только свой новый черновик и явно установить дату/комментарий.
Сгенерировать UUID, получить ссылку именно менеджером УчебнаяЗаявка.
Проверить отсутствие записи этой ссылки; это не поиск существующего документа по коду.
УстановитьСсылкуНового принимает ДокументСсылка, не строку UUID.
ПолучитьСсылкуНового должен вернуть назначенную ссылку и исходный идентификатор.
Проверить ЭтоНовый и отсутствие записи. Уникальность при будущей записи проверит платформа; здесь Записать не вызывается.
Как проверить результат
Четыре сообщения Истина: назначение, UUID, новый объект и отсутствие записи.
UUID непустой, но документ в информационной базе не появился.
Исходный номер/дату существующего документа код не использует.
Ожидаемый результат
Показана подготовка идентичности своего будущего документа без подмены её наличием записи.
На что обратить внимание
Непустая ссылка не доказывает существование записи; плановую ссылку не читать как сохранённый документ.
Модифицированность относится к локальным изменениям объекта после чтения, не к изменениям другими пользователями. ВерсияДанных — непрозрачная readonly-строка.
Заблокирован относится к блокировке именно этим объектом языка; это не общий индикатор всех блокировок записи. Собственную явную блокировку освобождайте отдельно, не рассчитывайте только на откат.
Пометка не удаляет запись, а прямое Удалить удаляет сразу без проверки ссылок. Если документ проведён, установка пометки отменяет проведение; модифицированный объект перед пометкой вызывает ошибку.
Статические проверки по справке и тексты контрольных условий не являются выполнением BSL в 1С.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Получить свой набор из нового документа и не спутать принадлежность с будущей ссылкой
Перед настройкой обработчика проверить собственную метаданную связь документа и последовательности, установить будущий идентификатор и снабдить связанный набор служебной пометкой, сохранив фактического регистратора и строки неизменными. Это подготовка собственного черновика, а не getter неизвестного объекта.
Где и как запускать
Полный серверный общий модуль УчебныеНаборыПоследовательности85 собственной новой конфигурации УчебныеПоследовательности85. Платформа 8.5.1.1343, тонкий/толстый управляемый клиент с серверным вызовом. Только собственные объекты памяти; 1С здесь не запускалась.
Подготовка
Создайте новую отдельную пустую базу 8.5.1.1343, не копию рабочей УТ/КА2. Имя конфигурации УчебныеПоследовательности85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать. Расширений, подписок и обработчиков записи нет.
В Документы создайте единственный документ УчебнаяРегистрация85: проведение запрещено, реквизитов и табличных частей нет, движения регистров не назначены, модули объекта и менеджера пусты. В уроке создаётся один собственный объект этого документа только в памяти; он не записывается.
В Последовательности создайте единственную УчебнаяОчередь85. В составе Документы выберите только свой УчебнаяРегистрация85. Измерений, зависимых регистров в составе Движения и дополнительных индексов нет. ПеремещениеГраницыПриПроведении=НеПеремещать. Модуль набора пуст. Структура записей поэтому содержит только Период и Регистратор.
Не создавайте в стенде справочников и регистров. Для учебного пользователя разрешите собственные метаданные, общую форму и команды. Обновите только эту новую конфигурацию. Проверка имени и состава схемы выполняется до создания набора; она не доказывает отсутствия записей базы и не делает рабочую базу безопасной.
В Общие → Общие модули создайте УчебныеНаборыПоследовательности85: Сервер=Истина, ВызовСервера=Истина, Глобальный=Ложь, клиентские флаги выключены. Полный основной модуль одного выбранного урока вставьте на верхнем уровне целиком. Все помощники предоставлены ниже в том же модуле.
В Общие → Общие формы создайте управляемую форму УчебныйЗапускПоследовательности85. Добавьте команду ВыполнитьУрок с действием ВыполнитьУрок, ИзменяетСохраняемыеДанные=Ложь и кнопку Выполнить урок. Полный модуль формы:
&НаКлиенте
Процедура ВыполнитьУрок(Команда)
ВыполнитьУрокНаСервере();
КонецПроцедуры&НаСервереБезКонтекста
Процедура ВыполнитьУрокНаСервере()
УчебныеНаборыПоследовательности85.ВыполнитьПример();
КонецПроцедурыВ Общие → Общие команды создайте ОткрытьНаборПоследовательности85 без параметра и включите в свой учебный раздел. Полный модуль общей команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("ОбщаяФорма.УчебныйЗапускПоследовательности85");
КонецПроцедуры
Откройте свою форму этой командой и выполните её кнопку. Два вспомогательных модуля не вставляйте в основной серверный модуль.Одна плановая ссылка создаётся ПолучитьСсылку на собственный новый UUID. Непустая ссылка не означает существующий документ; реквизиты ссылок не читаются. Это идентификаторы собственных незаписанных черновых строк, не готовые записи для сохранения в базу.
Здесь нет Прочитать, Записать, проведения, восстановления или изменения границы. Добавить/Загрузить/Удалить/Очистить действуют только на принадлежащий уроку экземпляр набора в памяти. Этот пример нельзя превращать в исправление последовательности добавлением Записать.
Статически проверены исходный код и установленная справка. Компиляция и выполнение в 1С здесь не проверялись; ожидаемые результаты далее нужно подтвердить самостоятельным запуском только в подготовленной новой учебной базе.
Для этого урока не используйте модуль ОбработкаПроверкиЗаполнения из другого примера: модуль набора своей последовательности остаётся пустым. Набор здесь получаем через ПринадлежностьПоследовательностям собственного нового документа, а не от неизвестного параметра. Никаких строк в этот связанный набор не добавляем.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Последовательности.Количество() <> 1 Или Метаданные.Документы.Количество() <> 1 Тогда
ВызватьИсключение "В своём стенде нужны ровно одна последовательность и один вид документа";
КонецЕсли;
МетаОчереди = Метаданные.Последовательности.Найти("УчебнаяОчередь85");
МетаДокумента = Метаданные.Документы.Найти("УчебнаяРегистрация85");
Если МетаОчереди = Неопределено Или МетаДокумента = Неопределено Тогда
ВызватьИсключение "Не подготовлена собственная схема урока";
КонецЕсли;
Если МетаОчереди.Измерения.Количество() <> 0 Или МетаОчереди.Движения.Количество() <> 0
Или МетаОчереди.Документы.Количество() <> 1 Тогда
ВызватьИсключение "Нужна собственная очередь без измерений и зависимых регистров";
КонецЕсли;
Участвует = Ложь;
Для Каждого МетаУчастника Из МетаОчереди.Документы Цикл
Участвует = МетаУчастника = МетаДокумента;
КонецЦикла;
Если Не Участвует Тогда
ВызватьИсключение "Единственный участник должен быть своим УчебнаяРегистрация85";
КонецЕсли;
Если МетаОчереди.ПеремещениеГраницыПриПроведении <> Метаданные.СвойстваОбъектов.ПеремещениеГраницыПриПроведении.НеПеремещать Тогда
ВызватьИсключение "Проверьте подготовку политики границы собственной очереди";
КонецЕсли;
Документ = Документы.УчебнаяРегистрация85.СоздатьДокумент();
Если ТипЗнч(Документ) <> Тип("ДокументОбъект.УчебнаяРегистрация85") Или Не Документ.ЭтоНовый() Тогда
ВызватьИсключение "Нужен собственный новый незаписанный документ";
КонецЕсли;
ПлановаяСсылка = Документы.УчебнаяРегистрация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Если ТипЗнч(ПлановаяСсылка) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Или ПлановаяСсылка.Пустая() Тогда
ВызватьИсключение "Нужна собственная непустая плановая ссылка";
КонецЕсли;
Документ.УстановитьСсылкуНового(ПлановаяСсылка);
Если Документ.ПолучитьСсылкуНового() <> ПлановаяСсылка Или Не Документ.ЭтоНовый() Тогда
ВызватьИсключение "Плановая ссылка не установлена или документ перестал быть новым";
КонецЕсли;
Принадлежность = Документ.ПринадлежностьПоследовательностям;
Если ТипЗнч(Принадлежность) <> Тип("ФиксированнаяКоллекция") Тогда
ВызватьИсключение "Ожидалась коллекция наборов собственного документа";
КонецЕсли;
Набор = Принадлежность.УчебнаяОчередь85;
Если ТипЗнч(Набор) <> Тип("ПоследовательностьНаборЗаписей.УчебнаяОчередь85")
Или Набор.Метаданные() <> МетаОчереди Тогда
ВызватьИсключение "Из своего документа получен набор другой последовательности";
КонецЕсли;
СвязанныйРегистратор = Набор.Регистратор;
Если ТипЗнч(СвязанныйРегистратор) <> Тип("ДокументСсылка.УчебнаяРегистрация85") Тогда
ВызватьИсключение "Неверный тип фактического связанного регистратора";
КонецЕсли;
ИсходноеКоличество = Набор.Количество();
Набор.ДополнительныеСвойства.Вставить("УчебноеНазначение85", "Контроль принадлежности нового документа");
Если Не Набор.ДополнительныеСвойства.Свойство("УчебноеНазначение85", Назначение)
Или Назначение <> "Контроль принадлежности нового документа" Тогда
ВызватьИсключение "Не сохранена собственная служебная пометка экземпляра";
КонецЕсли;
Если Набор.Регистратор <> СвязанныйРегистратор Или Набор.Количество() <> ИсходноеКоличество
Или Набор.Метаданные() <> МетаОчереди Или Документ.ПолучитьСсылкуНового() <> ПлановаяСсылка
Или Не Документ.ЭтоНовый() Тогда
ВызватьИсключение "Служебная пометка изменила документ, связь или строки набора";
КонецЕсли;
Сообщить(Назначение);
Сообщить("Плановая ссылка: " + Строка(ПлановаяСсылка.УникальныйИдентификатор()));
Сообщить("Фактический регистратор набора: " + Строка(СвязанныйРегистратор.УникальныйИдентификатор()));
Сообщить("Исходное и конечное количество строк: " + Строка(ИсходноеКоличество));
Сообщить("Документ остаётся новым; плановая ссылка не объявляется записанным документом");
КонецПроцедурыРазбор по шагам
Сначала проверьте единственный свой документ и единственную последовательность без измерений и движений. Только после этого создаётся ДокументОбъект.УчебнаяРегистрация85.
СоздатьДокумент создаёт свой объект в памяти. ЭтоНовый должен дать Истина. Вызова Записать нет; этот объект не становится строкой базы.
ПолучитьСсылку формирует свою непустую ссылку нового UUID. УстановитьСсылкуНового задаёт план для будущей записи, а ПолучитьСсылкуНового проверяет точное равенство этому плану. Проверка уникальности при записи здесь не выполняется.
ПринадлежностьПоследовательностям возвращает ФиксированнаяКоллекция. Имя её свойства УчебнаяОчередь85 задаётся своей настройкой Документы последовательности. Проверьте конкретный тип набора и его Метаданные, а не сходство имени или представления.
Прочитайте фактический Регистратор набора и реальное число строк до изменений. Native не обещает, что назначенный план сразу стал регистратором связанного набора; урок не требует их равенства и выводит оба UUID отдельно. Исходное количество также наблюдается, а не выдумывается.
В ДополнительныеСвойства поместите конкретное назначение экземпляра и прочитайте его через Свойство. Это содержимое возвращённой Структура, а не присваивание нового readonly-свойства.
Повторно проверьте регистратора, количество строк, метаданную связь, будущую ссылку и ЭтоНовый. Все значения должны остаться исходными; поменялась только собственная служебная пометка.
Сообщения выводят точную пометку, реальный UUID будущей ссылки, реальный UUID регистратора и фактическое число строк. Не заменяйте наблюдаемые значения константами и не записывайте документ ради совпадения идентификаторов.
Как проверить результат
После штатного запуска назначение равно «Контроль принадлежности нового документа», будущая ссылка точно равна ПлановаяСсылка, ЭтоНовый=Истина. Регистратор имеет тип ДокументСсылка.УчебнаяРегистрация85 и совпадает со своим исходным значением; число строк совпадает с исходным наблюдением.
Для отрицательной проверки в новой учебной базе уберите свой документ из состава последовательности. Проверка Участвует должна остановить урок до СоздатьДокумент; это тест подготовки, не повод ослабить проверку.
Сопоставьте два напечатанных UUID. Их совпадение или различие наблюдается фактически и не подменяется выводом о существовании документа. Сравнение будущей ссылки проверяется только через ПолучитьСсылкуНового.
Ожидаемый результат
Один собственный незаписанный документ с проверенной плановой ссылкой и его собственный набор УчебнаяОчередь85 со служебной пометкой. Исходные регистратор и количество строк сохранены; конкретный UUID и начальное число строк выводятся из реального экземпляра, их default-поведение не приписывается native.
На что обратить внимание
Readonly-свойства Отбор, Регистратор и ОбменДанными нельзя заменить присваиванием. У возвращённого Отбор меняются его элементы, у ПараметрыОбменаДанными — разрешённый флаг Загрузка.
Отбор набора последовательности допустим только на равенство. Это условие будущего чтения или записи, а не команда удаления неподходящих строк уже заполненного экземпляра памяти.
Плановая непустая ссылка из ПолучитьСсылку не подтверждает существование документа. УстановитьСсылкуНового задаёт ссылку для будущей записи; ПолучитьСсылкуНового возвращает именно этот план, а не доказательство записи.
Регистратор набора — связь экземпляра с документом; Регистратор отдельной строки — поле этой строки. Не переносите автоматически значение одного свойства в другое и не меняйте readonly-регистратор набора.
Загрузка=Истина сокращает проверки при записи/удалении данных. Это не разрешение пропускать бизнес-проверки в рабочей базе и не проверка корректности импортируемой информации.
В уроках нет записи, чтения базы, обмена сообщениями, проведения, восстановления и переноса границ. Локальные строки и временный флаг нельзя объявлять результатом обмена или исправлением последовательности.
Флаг восстанавливается по реально прочитанному исходному значению, а не безусловно в Ложь. Ветвь исключения не превращается в успешный результат: после восстановления ошибка передаётся вызывающему коду.
Статические проверки не исполняют платформу. Код и ожидаемые результаты требуется отдельно подтвердить в собственной новой базе 8.5.1.1343; 1С здесь не запускалась.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.