Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_ПрикладноеПрограммирование8.doc
Скачиваний:
42
Добавлен:
22.09.2019
Размер:
51.67 Mб
Скачать

1.4.4 Основные приемы работы с объектами в программе

1.4.4.1 Обращение к свойствам объектов

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

<Объект>[.<Имя свойства;]

Таблица 1.15 Параметры обращения к свойствам объектов

<Объект>

Объект, к свойству которого идет обращение.

[.<Имя свойства;]

Имя свойства, к которому необходимо обратиться.

Такая конструкция позволяет обращаться к свойствам объектов так же, как это делается через точку с указанием имени свойства.

Пример:

Спр = Справочники.Номенклатура.НайтиПоКоду(ИскомыйКод); //Обращение к наименование справочника по строке с именем

// свойства А = Спр["Наименование"]; // Обращение к наименованию справочника по имени свойства А = Спр.Наименование; // Оба эти обращения к свойству абсолютно равнозначны

1.4.4.2 Дополнение контекста объектов и форм

В языке есть возможность, при обращении к объектам и формам извне, из других программных модулей, обращаться к переменным, процедурам и функциям этих модулей, как к свойствам и методам самих объектов и форм. Можно обращаться к тем переменным, процедурам и функциям, которые объявлены с ключевым словом «Экспорт». Для форм дополнительно возможно обращение к реквизитам формы.

Пример:

// Пример использования процедуры печати документов из журнала  // документов. Допустим, у нас есть несколько различных

// документов, причем у всех есть процедура Печать().В модуле

// журнала документов располагается кнопка «Печать», которая

// вызывает процедуру печати текущего документа журнала.  Процедура ПечатьНажатие(Элемент)     // Получим текущий документ, на котором установлен курсор.     ТекДок = ЭлементыФормы.ЖурналСписок.ТекущаяСтрока;     // Получим основную форму текущего документа.     ФрмТекДок = ТекДок.ПолучитьФорму();     // Вызовем процедуру печати, расположенную в модуле формы

//документа.     ФрмТекДок.Печать() ; КонецПроцедуры

1.4.4.3 Работа с прикладными объектами средствами встроенного языка

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

Данный раздел содержит классификацию объектов. В таблице 1.16 перечислены виды программных объектов с конкретными примерами, их краткое описание, типичные свойства и методы (т.е. встречающиеся у разных объектов).

Таблица 1.16 Классификация программных объектов

Вид объекта

Описание

Типичные свойства и методы

Менеджер прикладных объектов данного типа

примеры:

СправочникиМенеджер

ДокументыМенеджер

КонстантыМенеджер

РегистрыНакопленияМенеджер

ОтчетыМенеджер

ОбработкиМенеджер

Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта.

Обычно доступ к таким объектам производится через свойства глобального контекста, например, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют и т.д.

Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого".

Свойства соответствуют именам прикладных объектов и являются объектами типа "Менеджер прикладного объекта"

Менеджер прикладного объекта

примеры:

СправочникМенеджер

ДокументМенеджер

КонстантаМенеджер

РегистрНакопленияМенеджер

ОтчетМенеджер

ОбработкаМенеджер

Данный объект является "центральным" в объектной модели, из которого можно получить остальные объекты, например, ссылки, выборки, объекты для изменения, наборы записей и т.д. (см. ниже параграф "Взаимосвязь объектов").

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

Типичные свойства (для справочников и планов):

<предопределенный элемент>

Типичные методы:

Выбрать()

НайтиПоКоду()

НайтиПоРеквизиту()

ПустаяСсылка()

СоздатьЭлемент()

СоздатьНаборЗаписей()

ПолучитьМакет()

ПолучитьФорму()

Ссылка

примеры:

СправочникСсылка

ДокументСсылка

ПланСчетовСсылка

ПланВидовРасчетаСсылка

Данный объект однозначно идентифицирует объект базы данных (например, элемент справочника, документ) и позволяет обращаться к нему в режиме «только чтение». Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям.

Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники".

Заметьте, что у записей регистров нет ссылок.

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

Типичные свойства:

<реквизит>

<табличная часть>

<измерение>

<ресурс>

ПометкаУдаления, Активность

Дата, Период

Предопределенный

Ссылка

Типичные методы:

Пустая()

ПолучитьОбъект()

ПолучитьФорму()

Метаданные()

Скопировать()

Выборка

примеры:

СправочникВыборка

ДокументВыборка

ЖурналДокументовВыборка

РегистрНакопленияВыборка

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

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

Свойства аналогичны свойствам объекта типа "Ссылка".

Типичные методы:

Следующий()

ПолучитьОбъект()

Объект

примеры:

СправочникОбъект

ДокументОбъект

ПланСчетовОбъект

ОтчетОбъект

ОбработкаОбъект

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

Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки.

Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта.

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

Свойства аналогичны свойствам объекта типа "Ссылка".

Типичные методы:

Записать()

Удалить()

Заблокировать()

Разблокировать()

Заблокирован()

Скопировать()

ПолучитьФорму()

ПолучитьМакет()

Метаданные()

Список

примеры:

СправочникСписок

ДокументСписок

ЖурналДокументовСписок

ПланСчетовСписок

РегистрНакопленияСписок

КритерийОтбораСписок

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

Этот объект нельзя создать программно, он создается системой автоматически при размещении на форме табличного поля. Конечно, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа.

Типичные свойства:

Колонки

Отбор

Порядок

Типичные методы:

Обновить()

Набор записей

примеры:

РегистрСведенийНаборЗаписей

РегистрНакопленияНаборЗаписей

РегистрБухгалтерииНаборЗаписей

РегистрРасчетаНаборЗаписей

ПоследовательностьНаборЗаписей

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

У документов есть свойство-коллекция "Движения", которое предоставляет доступ к наборам записей по каждому регистру, отмеченному на закладке "Движения". Через это свойство обычно производится формирование движений документа при его проведении.

Типичные свойства:

Отбор

ЭтотОбъект

Типичные методы:

Добавить()

Удалить()

Очистить()

Записать()

Прочитать()

Количество()

Выгрузить()

Загрузить()

Запись

примеры:

РегистрСведенийЗапись

РегистрНакопленияЗапись

РегистрБухгалтерииЗапись

РегистрРасчетаЗапись

Обеспечивает доступ к одной записи из набора, для того чтобы установить ее измерения, ресурсы и т.д. Этот объект возвращается методами других объектов, например, методом Добавить у объекта типа РегистрНакопленияНаборЗаписей.

Объект типа "Запись" не является постоянным идентификатором конкретной записи регистра, наподобие объекта "Ссылка" для справочников и документов. У записей регистра сведений вообще нет неизменяемого во времени идентификатора и каждая запись регистра однозначно определяется значениями своих измерений (включая системные, например, Период, Регистратор, НомерСтроки)

Типичные свойства:

<измерение>

<реквизит>

<ресурс>

Активность

Период

Регистратор

НомерСтроки

ВидДвижения

Типичные методы:

МоментВремени()

Ключ записи

примеры:

РегистрСведенийКлючЗаписи

РегистрНакопленияКлючЗаписи

РегистрБухгалтерииКлючЗаписи

РегистрРасчетаКлючЗаписи

Этот объект нужен для идентификации записи регистра в табличном поле, например, набора записей документа-регистратора или списка всех записей регистра. Он используется для позиционирования в списке записей на конкретной записи регистра.

Типичные свойства (кроме регистра сведений):

НомерСтроки

Регистратор

Свойства для регистра сведений:

<ИмяИзмерения>

Период

Регистратор