РАБОТА СО СПРАВОЧНИКОМ ИЗ ВСТРОЕННОГО ЯЗЫКА

ЛАБОРАТОРНАЯ РАБОТА 8.2

СПРАВОЧНИКИ.

РАБОТА СО СПРАВОЧНИКОМ ИЗ ВСТРОЕННОГО ЯЗЫКА

 

Работа со справочником из встроенного языка начинается со свойства глобального контекста Справочники. При обращении к данному свойству возвращается значение, которое имеет тип СправочникиМенеджер (множественное число).

У данного объекта столько свойств, сколько справочников определено в конфигураторе. При обращении к данному свойству можно получить значение, имеющее тип СправочникМенеджер.ИмяСправочника (единственное число).

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

Если выполнить метод Выбрать() объекта «СправочникМенеджер.Имя», то он вернет объект «СправочникВыборка.Имя» и т.д.

Важно помнить, что очень часто использование какого-либо метода приводит к тому, что он возвращает объект. Этот объект необходимо получить и продолжить работать (в нашем случае со справочником). Получая объект всегда необходимо знать его тип. Каждый из объектов обладает определенной специализацией

Например объект, имеющий тип «СправочникВыборка.Имя», позволяет работать с выборкой из справочника, и только на чтение. Объект с типом значения «СправочникОбъект.Имя» позволяет модифицировать «запись» справочника. Объект с типом значения «СправочникСсылка» позволяет работать с «записью» справочника на чтение и т.д.).

Рассмотрим прикладной пример: необходимо получить наименования из справочника «Номенклатура». Сделать это можно по разному. Например каждый из «промежуточных» объектов можно сохранять в какой-либо переменной:

СпркиМнр=Справочники;

СпркМнр= СпркиМнр.Номенклатура;

Выборка= СпркМнр.Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Наименование);

КонецЦикла;

Запись можно сократить заменив первые три строки одной, при этом получив:

Выборка =Справочники.Номенклатура.Выбрать(); //1

Пока Выборка.Следующий() Цикл //2

Сообщить(Выборка.Наименование);

КонецЦикла;

1 – сразу получаем выборку справочника (объект имеющий тип значения «СправочникВыборка.Номенклатура»)

2 – перебираем элементы выборки (метод «Следующий()» возвращает истину в случае если позиционирование на следующей позиции выборки произошло успешно, ложь в противном случае). Важно понимать, что в цикле перебираются не элементы (группы) справочника, а «позиции» выборки. Для того чтобы получить из выборки ссылку на элемент (на чтение) необходимо воспользоваться свойством «Ссылка» объекта «СправочникВыборка.Номенклатура» (т.е. ЧтоТо=Выборка.Ссылка;), на модификацию (ЧтоТо=Выборка.ПолучитьОбъект();)

Если необходимо заменить все наименования справочника, то код будет выглядеть следующим образом:

Выборка =Справочники.Номенклатура.Выбрать(); //1

Пока Выборка.Следующий() Цикл //2

НаИзменение= Выборка.ПолучитьОбъект();

НаИзменение.Наименование= «Новое»;

НаИзменение.Записать();

КонецЦикла