Как получить объект по ссылке? Немного об объектах и ссылках в 1С

В языке программирования 1С для работы с данными используются различные подходы, включая объектные и необъектные сущности, которые могут храниться в базе данных, а также объекты языка, которые существуют только в оперативной памяти. Одним из ключевых аспектов работы с объектными сущностями является возможность получить объект по ссылке и получить ссылку из объекта. Именно об этом пойдет речь в данной статье.

Объекты в 1С:Предприятие

Объектный подход в 1С:Предприятие применяется для работы с сущностями предметной области, такими как справочники, документы, планы видов характеристик, планы счетов и планы видов расчета. Эти сущности описываются в конфигурации с помощью объектов метаданных. Следует различать:

  • Менеджеры объектов: предоставляют доступ к управлению соответствующими объектами. Например, Справочники.Номенклатура предоставляет доступ к справочнику “Номенклатура”.
  • Экземпляры объектов: представляют собой конкретные записи или элементы данных. Например, Справочники.Номенклатура.СоздатьЭлемент() создает новый элемент справочника “Номенклатура”.

Также менеджеры объектов предоставляют методы для работы с объектами – создавать новые, редактировать существующие, удалять, и т.д.

Следует иметь в виду, что объектные сущности делятся на ссылочные и не ссылочные типы данных.

Объекты ссылочного типа – это объекты, которые имеют уникальную ссылку и могут быть сохранены в базе данных. К ним относятся, например, документы и справочники.

Объекты табличного типа – это объекты, которые существуют в виде таблиц и не имеют уникальной ссылки на каждую строку. Вместо этого каждая строка описывается комбинацией измерений. К таким объектам относятся все регистры.

Объекты языка 1С

Иногда возникает некоторая терминологическая путаница, и чтобы внести ясность, стоит упомянуть об объектах языка 1С, которые в базе не хранятся. К ним относятся самые разные объекты, например, универсальные коллекции (таблицы значений, массивы, структуры и др.), httpСоединения, картинки, и многое другое. Их объединяет способ создания таких объектов – через конструктор “Новый”. Например:

Структура = Новый Структура("Код, Наименование", 123, "Товар");
Массив = Новый Массив;

Массив.Добавить("Элемент1");
Массив.Добавить("Элемент2");

Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Код");
Таблица.Колонки.Добавить("Наименование");

Работа со ссылками и объектами

Некоторые методы для получения объектов и ссылок

Ссылки можно получать разными способами – на существующие объекты, на основе уникального идентификатора, или пустые ссылки нужного типа. Примеры:

СсылкаПоКоду = Справочники.Номенклатура.НайтиПоКоду(123);
СсылкаПоНаименованию = Справочники.Номенклатура.НайтиПоНаименованию("Морковка");
ПустаяСсылка = Справочники.Номенклатура.ПустаяСсылка();
СсылкаПоИдентификатору = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор());

Для получения объектов также есть различные методы. Можно получить объект существующий в базе, или создать новый. Примеры создания новых объектов:

НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйДокумент = Документы.ЗаказКлиента.СоздатьДокумент();
НоваяГруппа = Справочники.Номенклатура.СоздатьГруппу();

Получить объект по ссылке

Если у нас есть ссылка на объект, мы можем получить сам объект с помощью метода ПолучитьОбъект(). Например:

Ссылка = Справочники.Номенклатура.НайтиПоКоду(123);
Если Не Ссылка.Пустая() Тогда
    Объект = Ссылка.ПолучитьОбъект();
КонецЕсли;

Как получить ссылку из объекта?

Если у нас есть объект, то его ссылка содержится в свойстве Ссылка. Например:

Объект = Справочники.Номенклатура.СоздатьЭлемент();
Объект.Наименование = "Товар";
Объект.Записать();
Ссылка = Объект.Ссылка;

Отличия между ссылкой и объектом в 1С

Ссылка — это всего лишь указатель на объект, который позволяет его идентифицировать. Она не содержит всех данных объекта, а лишь указывает, где этот объект находится. Например, если представить объект как документ в архиве, то ссылка — это номер на полке, по которому его можно найти.

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

Объект используется, когда нам нужно работать с его данными: изменять свойства, вызывать методы, записывать изменения в базу. Если мы получили ссылку, но нам нужно внести изменения, то сначала следует получить объект с помощью метода ПолучитьОбъект(), внести изменения и затем записать их.

А ссылка используется для хранения и отображения информации. Например, именно ссылки мы указываем в качестве типов в реквизитах, когда нам нужно хранить в этих реквизитах информацию о других объектах.

Связи нам нужно актуализировать и при создании формы, и при изменении флажка. Чтобы очистить связи параметров выбора, просто передаем пустой фиксированный массив.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

один × 4 =

К НАЧАЛУ