У меня не получается программно изменить элемент справочника. Почему?

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

Для того чтобы изменить данные элемента справочника следует получить объект СправочникОбъект.<имя>,который позволяет как читать, так и записывать данные. Это возможно с помощью метода ПолучитьОбъект().

Более подробную информацию можно найти в главах «Виды объектов встроенного языка, предназначенные для работы с данными прикладных объектов конфигурации» на странице 551, «Манипулирование данными объектов» на странице 561, а также в статьях на диске ИТС: "Работа с прикладными объектами средствами встроенного языка" и "Типы значений, связанные с прикладными объектами".

У прикладных объектов нет методов ПолучитьАтрибут() и УстановитьАтрибут(). Как теперь обращаться к атрибутам объектов, если имя атрибута формируется в процессе вычислений?

Встроенный язык версии 8.0 поддерживает универсальную возможность обращения к свойствам объектов, используя конструкцию [<имя свойства>],где <имя свойства> - строка или строковая переменная, содержащая имя требуемого свойства:

ИмяСвойства = "Наименование";

Объект[ИмяСвойства] = Объект[ИмяСвойства] + "Новый"

В 7.7 были методы ТекущийДокумент() и ТекущийЭлемент() для получения позиционированного элемента справочника или документа. А как теперь это сделать в 8.0?

В версии 8.0 была введена унифицированная объектная структура данных. Теперь значение ссылки на объект базы данных хранится в поле Ссылка, и во всех случаях (при использовании объекта, выборки,


 


624



!раткий справочник разработчика


Вопросы при переходе с версии 7.7


 


запроса и т.д.) значение ссылки на объект можно получить по имени этого поля:

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

Склад = Выборка.Ссылка; КонецЦикла;

Перечисление