Иногда необходимо получать ссылку нового объекта(например элемента справочника или документа) еще до того как он будет записан. Если попробовать получить его ссылку, через .Ссылка то в результате возвращена она будет пустой, так как ссылка для этого объекта еще не создана.
В такой ситуации нужно создать ссылку нового объекта самостоятельно. Для примера рассмотрим ситуацию когда необходимо получить ссылку нового(еще не записанного) документа Реализация товаров и услуг. Пусть НоваяРеализация — объект нового документа.
Для начала создадим новую ссылку на документ
Теперь присвоим ее объекту документа при помощи метода УстановитьСсылкуНового( ).
У нового документа реализации появилась ссылка, пока он не записан ее можно получить при помощи метода ПолучитьСсылкуНового().
В платформе 1С изначально заложены достаточные возможности для работы с объектами конфигурации, но зачастую из-за отсутствия необходимых знаний программисты пишут неоптимальный код и замедляют работу программы, например, когда есть необходимость получить ссылку на объект до его записи. Оптимальным подходом к решению проблемы является использование метода «УстановитьСсылкуНового()».
Применение метода в 1С 8.3
Одна из самых распространенных подобных задач – программное создание элементов справочников, имеющих ссылки друг на друга. К примеру, создание контрагентов и их представителей. Чаще всего неопытные программисты сначала записывают элементы справочника, потом размещают ссылки в нужных реквизитах и снова производят запись. При наличии сложных алгоритмов проверок при сохранении элементов справочника эта процедура займет достаточно времени и ресурсов.
В таких ситуациях не нужно возмущаться, что импорт данных быстро не работает. Но в платформе 1С есть возможность оптимизировать подобные места и избавиться от двойной записи элементов. Для этого нужно внести правки и добавить в несложный алгоритм использование метода «УстановитьСсылкуНового()»:
Устанавливаем ему ссылку с помощью уникального идентификатора (как бы резервируем его для нового элемента);
Записываем элемент в справочнике «Представители», устанавливая зарезервированную ссылку в нужный реквизит;
Заполняем реквизит только что созданным представителем и записываем контрагента в базу.
Данный метод не применяется в ежедневной работе, поэтому нет ничего странного в том, что многие о нем и не знают. Но в некоторых случаях он может серьезно помочь серверу избежать лишней нагрузки. Это главный повод помнить об этой и множестве других, не слишком часто используемых, возможностях платформы 1С 8.3.
Бывает ситуации, когда при записи элемента справочника 1С 8.3 или 8.2 (или другой объектной сущности) необходимо выполнить запись какого-либо набора регистра сведений, где в измерении (или ресурсе) необходимо установить ссылку на записываемый объект. Для решения данной задачи необходимо использовать метод «УстановитьСсылкуНового()». Рассмотрим его использование подробнее.
Установка ссылки нового объекта в регистр сведений 1С
Рассмотрим установку ссылки нового элемента программно на примере процедуре записи контактной информации в соответствующий регистр сведений:
Если ЭтоНовый() Тогда
Если НЕ ЗначениеЗаполнено(СсылкаНового) Тогда