 
        
        - •Лекция № 1. Тема: Общая концепция системы 1с:Предприятие 8.
- •Первые шаги в дереве метаданных. (откроем конфигурацию)
- •Структура модулей.
- •Дерево конфигурации
- •Окно конфигурации
- •Создание объектов
- •Удаление объектов
- •Копирование объектов
- •Сортировка объектов
- •Поиск ссылок на объект конфигурации
- •Палитра свойств
- •Общие объекты
- •Подсистемы. Отбор объектов конфигурации
- •Роли. Конструктор ограничения доступа к данным
- •Интерфейсы. Конструктор меню
Лекция № 1. Тема: Общая концепция системы 1с:Предприятие 8.
Ну во-первых, в системе «1С:Предприятие» важно понятие «экономическое ПО» – это программное обеспечение предназначающееся прежде всего для ведения бизнеса. То есть на платформе «1С:Предприятие 8» игрушек не напишешь (хотя прецеденты были). Во-вторых - это система управления базой данных, т.е. все правила работы с базами данных к системе применить можно.
С точки зрения разработчика систему «1С:Предприятие 8» можно представлять одним из двух способов:
1. Совокупность таблиц: все данные системы хранятся в таблицах. Например информация о сотрудниках предприятия хранится в специальной таблице, где есть поля «ФИО», «Пол», «Адрес», «Дата рождения» и прочее.
2. Совокупность объектов. Это более «продвинутое» с точки зрения языков программирования понятие. Под объектом системы мы, например, можем представить себе тот же самый справочник «Сотрудники», только теперь под этим понятием будут не только поля перечисленные выше (атрибуты объекта), но и «вложенная» таблица с списком детей сотрудника, и некий набор методов управления этим объектом, например «Удалить». То есть объект – это набор таблиц с их полями (свойства объекта) и набор программных средств для манипулирования объектом (методы объекта).
Объекты системы могут как составлять часть метаданных (описание структуры и свойств данных), так и являться вспомогательными объектами, например, в объекте метаданных хранится информация о дне рождения сотрудника, но для редактирования пользователем этой информации используется специальный вспомогательный объект «Форма» в котором расположены элементы управления, в том числе и элемент «Дата рождения».
Над таблицами базы данных на прямую нельзя производить манипуляции – таблица не всегда представляет собой один объект, поэтому таблицы базы данных доступны только для чтения, обращение к таким таблицам обычно происходит с помощью запросов системы. Любое манипулирование базой данных производится с помощью объектной модели.
Для более детального знакомства с типичным образцом объекта метаданных разберем свойства дерева метаданных.
Первые шаги в дереве метаданных. (откроем конфигурацию)
Итак, пользуясь документацией системы «1С:Предприятие» из стандартной поставки вы установили платформу и подключили к ней пустую конфигурацию.
   
Дерево метаданных
Для продолжения разговора о метаданных предлагаю открыть дерево конфигурации (меню «Конфигурация» - «Открыть Конфигурацию»).
То что вы увидели в дереве метаданных и есть те самые типы объектов которые будут составлять метаданные. То есть именно они определяют структуру базы данных. Язык программирования в «1С:Предприятии 8» иногда называют объектно-ориентированным, я бы назвал его «почти ООП» и все опять же из-за дерева метаданных. Это дерево можно назвать классами объектов системы и они жестко определены. Нет возможности создать новые типы объектов средствами встроенного языка, однако можно создать сколь угодно много объектов определенного класса и наделить его уникальными свойствами.
   
Свойства объекта
На рисунке справа показаны свойства объекта «Справочник» (желтым выделены части свойств встречающиеся в большинстве других объектах). Для описания структуры базы данных в свойствах объекта (на закладке «Данные») необходимо описать необходимые реквизиты, табличные части и реквизиты табличных частей. Однако зачастую объект уже наделен определенным реквизитным составом, например, несмотря на то что справочник мы только что создали, у него уже есть таблица с полями (реквизитами) «Код» и «Наименование», длина этих реквизитов настраивается на все той же закладке «Данные».
Кроме самой структуры базы данных справочник объект обладает немаловажным описанием интерактивной работы пользователя, описание это заключается в создании форм для просмотра и редактирования записей справочника, и в описании событий этих форм (открытие, запись, закрытия, и т.п.), свойства и количество форм никак не сказываются на структуре базы данных и являются исключительно свойством конфигурации.
Не интерактивные события объекта описываются в его модуле. Можно представить себе устройство объекта метаданных в виде небольшой схемы:
   
Схема объекта метаданных
На этой схеме мы впервые видим модули. Именно в модулях системы мы будем описывать поведение программы при различных событиях. Какие модули бывают, и какова их иерархия:
1. Общие модули. Модули содержат общие для всей конфигурации процедуры и функции (однако могут содержать и локальные процедуры и функции доступные только из этого же модуля). Могут вызывать процедуры и функции другого общего модуля. Не содержат описание переменных и область инициализации переменных, нет основного текста программы (только процедуры и функции). Общие модули делятся на глобальные и не глобальные. Процедуры и функции описанные в глобальных общих модулях могут быть вызваны просто по имени, а те которые описаны в не глобальных общих модулях вызываются посредством обращения к модулю ( НазваниеМодуля.НазваниеПроцедуры().
2. Специализированные модули приложения: модуль приложения, модуль внешнего соединения и модуль сеанса. Служат для описания событий связанных с интерактивными или COM-событиями старта системы и завершения работы. Могут вызывать процедуры и функции общих модулей.
3. Модули объектов. Принадлежат объектам, содержат описание процедур и функций для работы с определенным объектом и в том числе описание не интерактивных событий объекта. Могут вызывать процедуры и функции общих модулей.
4. Модули форм. Содержат описание событий работы пользователя в форме. Могут вызывать процедуры и функции модуля объекта и общих модулей.
Стоит сказать, что есть возможность описать "Экспортные" процедуры и функции в модуле любого объекта и обращаться к ним, но для этого придется "получить" сам объект для начала.
Все вышесказанное про модули я поясню в виде схемы:
   
Взаимосвязь модулей
