Классификация объектов встроенного языка 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Классификация объектов встроенного языка



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

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

В наших заданиях пришлось использовать различные виды объектов:

· от свойств глобального контекста

Константы

Справочники

РегистрыСведений

· до сложных конструкций, использующих знак точки

Константы.НаименованиеКурса

Справочники.Сотрудник

РегистрыСведений0.ВидКлиентскогоПриложения

В некоторых случаях мы обращались:

· к свойствам наших объектов встроенного языка

Константы.НаименованиеКурса

Справочники.Сотрудники

· и к методам:

Константы.НаименованиеКурса.Установить()

Справочники.Сотрудники.СоздатьЭлемент()

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

Но, для понимания того, почему именно такой алгоритм перед нами, необходимо понимание объектной идеологии работы с данными.

Для более полного усвоения материала, связанного с объектной моделью доступа к данным взглянем на нашу базу, как на большой контейнер (коробку) с данными, а не наборы таблиц:

Рисунок 2.48

В нашей коробке могут быть отсеки (маленькие коробочки разных размеров) для хранения различных предметов:

Рисунок 2.49

Для обращения к определенной коробочке из большой коробки мы должны их как-то назвать.

Для обращения к каждой такой коробочке во встроенном языке 1С:Предприятие 8 существует соответствующий объект, представленный свойством глобального контекста:

Рисунок 2.50

В свою очередь каждая коробка может состоять из еще более мелких коробочек, например, коробка "Справочники":

Рисунок 2.51

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

Рисунок 2.52

У объекта "Справочники" существует метод "ТипВсеСсылки", позволяющий получить все возможные типы ссылок справочников, отвечающий на вопрос: "Какие типы данных могут храниться в контейнере "Справочники"?":

Рисунок 2.53

Но, разумеется, такое вложение коробочек (контейнеров) для хранения данных не может быть бесконечным. И действительно, на данном уровне в коробочках с названием "Товары", "Клиенты", … хранятся уже конкретные данные (как, например, вещи в коробке). Такие данные называются, в случае со справочниками, элементы:

Рисунок 2.54

Для получения списка элементов определенного справочника, например, "Справочники.Товары", существует метод "Выбрать" и "ВыбратьИерархически":

Рисунок 2.55

При использовании метода "Выбрать" система возвращает объект встроенного языка с типом "СправочникВыборка.Товары". С помощью цикла и данного объекта встроенного языка можно осуществить последовательное получение элементов из справочника:

Рисунок 2.56

Возникает разумный вопрос, а как же нам обратиться к конкретному элементу?

Для возможности универсального определения каждого элемента, разработчики ввели понятие уникального идентификатора, представляющего собой сложную комбинацию цифр, например:

B198-8fea-11e0-be7d-74f06dc8f52e

Уникальный идентификатор элемента в базе не меняется в случае изменения кода, наименования, и прочих свойств элементов, и назначается автоматически при первичной записи элемента в базу:

Рисунок 2.57

Его можно узнать с помощью метода "УникальныйИдентификатор" от ссылка на элемент справочника:

Рисунок 2.58

Уникальный идентификатор связан с таким понятием в объектной модели доступа к данным, как ССЫЛКА.

Рассмотрим пример использования уникального идентификатора элемента для его быстрого поиска в базе и открытия формы для редактирования:

Рисунок 2.59

А для удобного представления данных в интерфейсе вместо уникального идентификатора пользователь может видеть "Код" или "Наименование" элемента, что определяется в настройках объекта конфигурации:

Рисунок 2.60

Получение данных при программировании по такому идентификатору, не всегда удобно, поэтому разработчики определили методы для поиска нужных элементов по коду, наименованию и прочим свойствам элемента, при этом, мы получаем ссылочный тип значения:

Рисунок 2.61

Рисунок 2.62

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


 

МОДУЛИ

До сих пор мы писали алгоритмы в подготовленных обработках в режиме 1С:Предприятие. Но, при создании прикладных решений подобные алгоритмы необходимо прописывать в момент разработки и желательно без возможности просмотра этих алгоритмов в режиме использования решения, и уж тем более без возможности их изменения пользователями.

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

Как мы уже знаем, конфигурация состоит из объектов конфигурации. Любой алгоритм представляет собой какой-либо текст. Разработчики для размещения алгоритмов придумали текстовое свойство объекта конфигурации, которое назвали МОДУЛЬ, в связи с этим, создание своих модулей в системе невозможно.

Рисунок 2.1

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

Рисунок 2.2

Алгоритмы необходимо размещать в модулях в строго определенном порядке. Модуль состоит из трех последовательных блоков (областей):

Рисунок 2.3

При проверке модуля на корректность система выдаст служебное сообщение, если алгоритмы определены не в том порядке:

Рисунок 2.4

В некоторых видах модулей могут использоваться не все области размещения алгоритмов.

Для возможности исполнения системой 1С:Предприятие 8 алгоритмов, написанных на встроенном языке 1С в модулях, необходима загрузка модулей в технологическую платформу из информационной базы.

Загрузка модулей из информационной базы связана с процессом преобразования модуля в некий образ с алгоритмами, понятным для системы. Этот процесс называется компиляцией.

Рисунок 2.5

Для целей оптимизации запуска и работы клиентского приложения компиляция модулей осуществляется постепенно, т.е. какие-то модули загружаются при старте системы, а какие-то при определенных условиях.

По назначению все существующие модули можно поделить на три группы:

· МОДУЛИ ОБЪЕКТОВ – предназначены для определения правил работы с данными;

· МОДУЛИ ФОРМ – предназначены для определения правил работы в интерфейсе системы 1С:Предприятие 8;

· МОДУЛИ ОБЩИЕ – предназначены для определения алгоритмов общего назначения, т.е. используемых одновременно в разных алгоритмах и модулях.

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

1. Использование модулей сеанса и приложения

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

Запуск клиентского приложения связан с двумя вариантами использования:

· "Интерактивное использование", т.е. с использованием собственного графического интерфейса системы 1С:Предприятие 8. Такой вариант необходим для обеспечения работы пользователя в клиентском приложении. Осуществить такой запуск можно разными способами:

· через стандартную программу запуска:

Рисунок 2.6

 

· либо программно, например из Excel:

Рисунок 2.7

· "Программное использование" - без использования интерфейса 1С:Предприятие 8, необходимо в тех случаях, когда требуется программно (без вмешательства пользователя) получить из информационной базы (или записать) какие-то данные, пример подключения из Excel:

Рисунок 2.8

Интерактивная работа может происходить в двух интерфейсных режимах:

· ОБЫЧНОЕ ПРИЛОЖЕНИЕ

· УПРАВЛЯЕМОЕ ПРИЛОЖЕНИЕ

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

Рисунок 2.9

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

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

Для ограничения доступа к данным на уровне элементов в системе 1С:Предприятие 8 существуют специальные объекты "Параметры сеанса", использующиеся в механизме ролей. Для корректной работы механизма ограничения доступа к данным значения параметров сеанса необходимо задавать до активации модулей приложения.

Для реализации такого поведения системы разработчики добавили (с платформы 8.1) еще один вид модуля "Модуль сеанса" и его использование (компиляция) не зависит от способов подключения:

Рисунок 2.10

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

Подробный разбор данного модуля осуществляется в следующем курсе "Основы клиент-серверного программирования", т.к. связан с архитектурой клиент-сервер.



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 176; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.71.142 (0.043 с.)