#std496

Чтение отдельных реквизитов объекта из базы данных

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

Поэтому для чтения отдельных реквизитов используйте запрос.

Неправильно

Процедура ЗаполнитьКодИНаименованиеСтраны()

  СтранаСсылка = ... // получаем ссылку на элемент справочника
  КодСтраны = СтранаСсылка.Код; // первое обращение загружает объект целиком
  НаименованиеСтраны = СтранаСсылка.Наименование;

КонецПроцедуры

Правильно

Процедура ЗаполнитьКодИНаименованиеСтраны()

  Запрос = Новый Запрос(
      "ВЫБРАТЬ
      |   СтраныМира.Код,
      |   СтраныМира.Наименование
      |ИЗ
      |   Справочник.СтраныМира КАК СтраныМира
      |ГДЕ
      |   СтраныМира.Ссылка = &Ссылка");
  Запрос.УстановитьПараметр("Ссылка", Ссылка);

  Выборка = Запрос.Выполнить().Выбрать();
  Выборка.Следующий();

  КодСтраны = Выборка.Код;
  НаименованиеСтраны = Выборка.Наименование;

КонецПроцедуры

Для упрощения синтаксиса можно использовать функции ЗначенияРеквизитовОбъекта и ЗначениеРеквизитаОбъекта из Библиотеки стандартных подсистем.

Тогда пример можно записать так:

Процедура ЗаполнитьКодИНаименованиеСтраны()

  ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СтранаСсылка, "Код, Наименование");
  КодСтраны = ЗначенияРеквизитов.Код;
  НаименованиеСтраны = ЗначенияРеквизитов.Наименование;

КонецПроцедуры
Источник

https://its.1c.ru/db/v8std#content:496