У меня не получается программно изменить элемент справочника. Почему?
По всей видимости, вы пытаетесь изменять элемент справочника, используя объект СправочникСсылка^имя>.Объекты этого типа позволяют обращаться к реквизитам и табличным частям справочника в режиме "только чтение".
Для того чтобы изменить данные элемента справочника следует получить объект СправочникОбъект.<имя>,который позволяет как читать, так и записывать данные. Это возможно с помощью метода ПолучитьОбъект().
Более подробную информацию можно найти в главах «Виды объектов встроенного языка, предназначенные для работы с данными прикладных объектов конфигурации» на странице 551, «Манипулирование данными объектов» на странице 561, а также в статьях на диске ИТС: "Работа с прикладными объектами средствами встроенного языка" и "Типы значений, связанные с прикладными объектами".
У прикладных объектов нет методов ПолучитьАтрибут() и УстановитьАтрибут(). Как теперь обращаться к атрибутам объектов, если имя атрибута формируется в процессе вычислений?
Встроенный язык версии 8.0 поддерживает универсальную возможность обращения к свойствам объектов, используя конструкцию [<имя свойства>],где <имя свойства> - строка или строковая переменная, содержащая имя требуемого свойства:
ИмяСвойства = "Наименование";
Объект[ИмяСвойства] = Объект[ИмяСвойства] + "Новый"
В 7.7 были методы ТекущийДокумент() и ТекущийЭлемент() для получения позиционированного элемента справочника или документа. А как теперь это сделать в 8.0?
В версии 8.0 была введена унифицированная объектная структура данных. Теперь значение ссылки на объект базы данных хранится в поле Ссылка, и во всех случаях (при использовании объекта, выборки,
624
!раткий справочник разработчика
Вопросы при переходе с версии 7.7
запроса и т.д.) значение ссылки на объект можно получить по имени этого поля:
Выборка = Справочники.Склады.Выбрать(); Пока Выборка.Следующий() Цикл
Склад = Выборка.Ссылка; КонецЦикла;
Перечисление