Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы1С_ч1.docx
Скачиваний:
53
Добавлен:
25.11.2019
Размер:
143.51 Кб
Скачать

Понятие «агрегатного объекта метаданных».

Цитата из книги «Конфигурирование и администрирование» из пакета «1С:Предприятие»:

Объекты метаданных в системе «1С:Предприятие» могут быть как независимыми, так и подчиняться друг другу.

Например, независимым объектом метаданных является константа. Константа самодостаточна: она может содержать какое-либозначение, и этим полностью исчерпывается ее назначение в системе «1С:Предприятие». Более того: константа может присутствовать в системе и даже может содержать какое-либо значение, но при этом не использоваться другими объектами метаданных. Правда, на практике такое встречается редко.

Теперь — прямо противоположный пример.

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

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

Заметим, что в системе «1С:Предприятие» используется одно сходное понятие с понятием «агрегатный объект метаданных», а именно: просто «агрегатный объект». Важно не путать эти понятия. Если «агрегатный объект метаданных» означает только «объект метаданных, имеющий подчиненные объекты метаданных», то просто «агрегатный объект» совпадает с понятием «объект» в объектно-ориентированных языках. «Агрегатный объект» фигурирует исключительно в программных модулях и означает объект, который имеет подчиненные ему процедуры (методы) и переменные (свойства).

Способы определения и использования агрегатных объектов при автоматизации задач бухгалтерского учета в системе «1с:Предприятие».

При использовании компоненты «Бухгалтерский учет» доступны следующие специфические для нее агрегатные объекты метаданных:

  • «План счетов» — имеет подчиненные объекты — счета;

  • «Операция» — имеет подчиненные объекты — графы журнала;

  • «Проводка» — имеет подчиненные объекты — реквизиты проводки.

Также при помощи компоненты можно создавать неагрегатные объекты метаданных вида «Вид субконто».

16.

Область действия имен. Использование процедур глобального модуля другими компонентами системы

Контекстом выполнения называется совокупность всех доступных при выполнении переменных, объектов, процедур, функций и методов.

Контекст любой процедуры или функции складывается из локального контекста и глобального контекста.

Глобальный контекст — это контекст, доступный всем процедурам и функциям системы. Он образуется множеством глобальных переменных, процедур и функций, а также рядом объектов и методов конфигурации (например, «Перечисление», «ПланыСчетов», «РазделительСтрок», «НачалоПериодаБИ» и т.д.)

Локальный контекст — множество переменных, объектов, процедур, функций и методов, доступных в дополнению к глобальному контексту в данном модуле всем процедурам и функциям данного модуля.

Любая процедура или функция глобального модуля может стать частью глобального контекста, если в ее определении будет ключевое слово «Экспорт». Если это слово опущено, то процедура глобального модуля будет являться только частью локального контекста глобального модуля и будет доступна только процедурам и функциям глобального модуля.

Локальный контекст любого модуля может быть передан в любую процедуру или функцию с использованием ключевого слова «Контекст». Пример:

// Глобальный модуль Процедура глЗаполнитьНаименование (Конт) Экспорт Конт.Наименование = "Наименование из глобального модуля"; КонецПроцедуры // Модуль формы элемента какого-либо справочника // В диалоге справочника имеется поле "Наименование" // Произведем вызов процедуры глобального модуля // глЗаполнитьНаименование, передав ей контекст // нашего модуля. Используя этот контекст процедура // сможет получить доступ к полю "Наименование" глЗаполнитьНаименование (Контекст);

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