Сущность в 1с это
В модели разработки прикладных решений 1С:Предприятия для ряда сущностей предметной области используется объектный подход манипулирования данными.
Эти сущности описываются в конфигурации объектами метаданных:
-
; ;
- ПланВидовХарактеристик;
- ПланСчетов;
- ПланВидовРасчета.
С точки зрения модели данных 1С:Предприятия, в базе данных для этих сущностей хранятся объекты.
Рассмотрим состав типов, используемых для манипулирования этими сущностями в конфигурации на примере справочника ( для других перечисленных объектов метаданных имеется аналогичный состав типов ).
Справочник хранится в таблице. Запись (строка) таблицы определяет объект базы данных – элемент справочника. Но объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных включает в себя:
- запись основной таблицы;
- записи табличных частей.
Объектные таблицы - это справочники, документы, планы видов характеристик и т.д. (все, что имеет ссылку) - характеризуются тем, что каждая запись имеет внутренний уникальный идентификатор (GUID), которая генерируется автоматически при записи объекта в базу. Поэтому, например, если создать элемент справочника, удалить его, а потом создать элемент с точно такими же значениями всех абсолютно реквизитов, ссылка все равно будет другая, так как с точки зрения системы это уже другой объект (несмотря на то, что для пользователя визуально все тоже самое, те же значения всех реквизитов).
Необъектные таблицы - предназначены для хранения сущностей, не имеющих объектной природы (например, табличные части справочников, регистры сведений). Уникальность их записей определяется набором измерений и никакого дополнительного уникального идентификатора не существует. Поэтому, если вы удалите запись, а потом добавите точно такую же, с точки зрения логики программы это будет одно и тоже.
Тип СправочникиМенеджер
Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Кроме того, он имеет метод ТипВсеСсылки (), который позволяет получить значение ОписаниеТипов , содержащее типы ссылок всех справочников конфигурации. Например, с помощью данного значения (используя метод СодержитТип ()) можно проверить, является ли тип некоторого значениям типом ссылки какого-либо справочника.
Тип СправочникМенеджер
Тип СправочникМенеджер предоставляет доступ к общим действиям, относящимся к конкретному справочнику . С помощью его методов выполняются действия, относящиеся к справочнику, а не к его конкретным объектам, например:
- создать новый объект справочника;
- найти объект справочника по коду, и т.д.
Данный менеджер является своего рода "точкой входа" в конкретный справочник в объектной модели встроенного языка.
Объекты типа СправочникиМенеджер и СправочникМенеджер имеются в системе в единственном экземпляре.
Тип СправочникСсылка
Справочник хранится в таблице. В таблице справочника присутствует поле Ссылка, которое хранит значения, однозначно идентифицирующие объекты (элементы справочника) в базе данных 1С:Предприятия. Если в какой-либо другой таблице (табличной части) нужно сослаться на некоторый объект базы данных, то в поле этой таблицы будет храниться именно значение ссылки.
Значение типа СправочникСсылка – хранит ссылку, идентифицирующую объект в базе данных 1С.
Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в поле Ссылка таблицы справочника. Это значение:
- хранится в полях других таблиц базы данных,
- выбирается в поле ввода,
- указывается в параметрах запроса при поиске по ссылке и т.д.
Важно, что значение типа СправочникСсылка можно сравнивать с другим значением типа СправочникСсылка и они буду всегда равны, если это ссылка на один и тот же объект в базе данных (независимо от способа получения и от того откуда получено значение).
Тип СправочникОбъект
Значение типа СправочникОбъект используется (в основном):
- для создания нового объекта,
- изменения существующего объекта,
- удаления объекта,
- для отображения и редактирования всех данных элемента справочника в форме элемента,
- при редактировании строки списка справочника ( при отображении строк списка СправочникОбъект не используется ).
Для одного и того же элемента справочника можно получить несколько объектов типа СправочникОбъект:
- При сравнении этих значений они будут равны, только если это один и тот же объект встроенного языка.
- Два объекта встроенного языка, полученные для одного элемента справочника, не будут равны, даже если в них считан один и тот же объект базы данных и совпадают все данные объекта.
СправочникОбъект оптимизирует запись изменений в базу данных, например:
- если не менялись реквизиты самого объекта, то будет записываться только минимальная информация об изменении;
- если не менялись строки табличной части, то табличная часть записываться не будет;
- если менялись только отдельные строки или добавлялись строки, то будут записываться только измененные и добавленные строки;
- если строки удалялись или изменялся порядок строк, то будут записываться все строки табличной части.
Т.о. для манипулирования справочником во встроенном языке существуют два основных типа СправочникСсылка.ХХХХ и СправочникОбъект.ХХХХ , где ХХХХ — имя справочника в метаданных.
Важно, что имеются отдельные типы для каждого справочника, они появляются в системе при создании справочника в метаданных. Таким образом, типы ссылок двух разных справочников не будут совпадать между собой.
Отличие типов СправочникСсылка и СправочникОбъект:
- значение типа СправочникСсылка хранит ссылку, идентифицирующую объект в базе данных;
- значение типа СправочникОбъект позволяет считывать и записывать данные объекта.
И СправочникСсылка, и СправочникОбъект предоставляют доступ через свойства к данным объекта - значениям полей таблицы. Однако это происходит совершенно по-разному, так как назначение и использование этих типов принципиально отличается:
- Значение СправочникОбъект хранит свойства непосредственно в объекте встроенного языка. Они заполняются при считывании существующего объекта значениями из базы данных, а для нового объекта инициализируются значениями по умолчанию.
- Значение СправочникСсылка при обращении к свойствам осуществляет считывание информации из базы данных. Однако чтобы считывание происходило не при каждом обращении – данные объектов кэшируются системой.
Если обращаться через ссылки к свойствам одного и того же объекта базы данных, то считывание данных будет происходить только при первом обращении, а так же после того как система выгрузит этот объект из кэша.
Данные объекта удерживаются в кэше около 20 минут , но после интервала в 20 секунд при очередном обращении будет выполняться проверка того, что объект в базе данных не менялся, и, при необходимости, выполняется обновление данных в кэше. Если объект записывается в данной сессии, то он сразу обновляется в кэше. Также имеются ограничения на количество объектов хранимых в кэше. Следует заметить, что в рамках транзакции система использует отдельный кэш, поэтому обращение к данным объекта через ссылки в транзакциях гарантированно выдает актуальные данные.
Для объектов обеспечивается оптимистическая блокировка : объект не может быть записан, если он был изменен в базе данных после считывания.
Этот механизм обеспечивает логическую целостность изменения объектов. Каждый, кто меняет объект, может быть уверен, что его изменения не "затрут" изменений сделанных другими пользователями (сессиями) или другими объектами в этой же сессии. Такая блокировка не препятствует изменению объекта другими сессиями или этой сессией. Однако если с момента считывания объекта и до попытки его записи объект был изменен в базе данных, то запись не будет выполнена.
Механизм пессимистической блокировки запрещает изменения другими сессиями или этой сессией, до снятия блокировки этим объектом встроенного языка. Данный механизм необходимо включать в явном виде методом Заблокировать (). В основном он предназначен для блокировки объектов, редактируемых в форме. Расширение формы элемента справочника автоматически включает блокировку, чтобы пользователь был уверен что, начав редактировать объект, он сможет его записать.
Тип СправочникВыборка
Тип СправочникВыборка предназначен для динамического обхода элементов справочника. Механизм выборок для объектных таблиц не имеет существенных отличий от выборок других таблиц. Можно заметить, что считанные в выборке элементы могут быть получены в качестве значений типа СправочникОбъект. При этом они не будут повторно считываться из базы данных.
ВАЖНО! Выборка всегда считывает данные объектов целиком (все поля и все табличные части).
Тип СправочникСписок
Тип СправочникСписок предназначен для динамического просмотра данных справочника в элементе управления ТабличноеПоле . У него может быть настроен состав считываемых полей (колонок), отбор и сортировка. Список осуществляет считывание данных порциями в процессе навигации пользователем в табличном поле.
Кроме указанных типов значений справочник определяет несколько расширений элементов управления и форм, предназначенных для интерактивного ввода и просмотра данных справочника. Расширения не являются типами данных, а добавляют специфические свойства, методы и события к соответствующим объектам. Кроме того, расширения определяют некоторое специфическое поведение форм и элементов управления при конфигурировании и работе пользователя с системой.
Рисунок отсюда , там же можно почитать подробнее.
На схеме показаны не все возможные объекты и взаимосвязи. Например, метод Скопировать () существует не только у объекта СправочникСсылка, но и у самого объекта СправочникОбъект. Кроме того, у объекта СправочникМенеджер есть методы НайтиПоНаименованию () и НайтиПоРеквизиту (), которые действуют аналогично методу НайтиПоКоду и возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден. Также на схемах не показаны специфические объекты и объекты типа "Список".
Свойства и методы прикладных объектов
Менеджер прикладных объектов данного типа
- СправочникиМенеджер
- ДокументыМенеджер
- КонстантыМенеджер
- РегистрыНакопленияМенеджер
- ОтчетыМенеджер
- ОбработкиМенеджер
Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта.
Обычно доступ к таким объектам производится через свойства глобального контекста, например, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют и т.д.
Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого".
Менеджер прикладного объекта
- СправочникМенеджер
- ДокументМенеджер
- КонстантаМенеджер
- РегистрНакопленияМенеджер
- ОтчетМенеджер
- ОбработкаМенеджер
Данный объект является "центральным" в объектной модели, из которого можно получить остальные объекты, например, ссылки, выборки, объекты для изменения, наборы записей и т.д. (см. ниже параграф "Взаимосвязь объектов").
Объект этого вида обеспечивает доступ к операциям над прикладным объектом как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые записи, обращаться к формам и макетам прикладного объекта.
Типичные свойства (для справочников и планов):
- Выбрать()
- НайтиПоКоду()
- НайтиПоРеквизиту()
- ПустаяСсылка()
- СоздатьЭлемент()
- СоздатьНаборЗаписей()
- ПолучитьМакет()
- ПолучитьФорму()
- СправочникСсылка
- ДокументСсылка
- ПланСчетовСсылка
- ПланВидовРасчетаСсылка
Данный объект однозначно идентифицирует объект базы данных (например, элемент справочника, документ) и позволяет обращаться к нему в режиме "только чтение". Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям.
Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники".
Заметьте, что у записей регистров нет ссылок.
Для изменения объекта базы данных (элемента справочника, документа) нужно получить другой объект с помощью метода ПолучитьОбъект().
- ПометкаУдаления
- Дата
- Предопределенный
- Ссылка
- Пустая()
- ПолучитьОбъект()
- ПолучитьФорму()
- Метаданные()
- Скопировать()
- СправочникВыборка
- ДокументВыборка
- ЖурналДокументовВыборка
- РегистрНакопленияВыборка
Этот объект предоставляет возможность обхода (перебора) объектов базы данных. Например, можно перебрать элементы справочника или перебрать документы, входящие в конкретный журнал.
Обратите внимание, что данный объект не является коллекцией значений и, следовательно, нельзя использовать цикл "Для Каждого" для перебора элементов.
Свойства аналогичны свойствам объекта типа "Ссылка".
- СправочникОбъект
- ДокументОбъект
- ПланСчетовОбъект
- ОтчетОбъект
- ОбработкаОбъект
Предоставляет доступ к элементу с возможностью записи изменений в базу данных. Этот объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.
Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки.
Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта.
Для регистров подобного объекта не существует, а изменение данных всегда производится через набор записей (см. ниже).
Свойства аналогичны свойствам объекта типа "Ссылка".
- Записать()
- Удалить()
- Заблокировать()
- Разблокировать()
- Заблокирован()
- Скопировать()
- ПолучитьФорму()
- ПолучитьМакет()
- Метаданные()
- СправочникСписок
- ДокументСписок
- ЖурналДокументовСписок
- ПланСчетовСписок
- РегистрНакопленияСписок
- КритерийОтбораСписок
Этот программный объект предназначен для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.
Этот объект нельзя создать программно, он создается системой автоматически при размещении на форме табличного поля. Конечно, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа.
Набор записей
- РегистрСведенийНаборЗаписей
- РегистрНакопленияНаборЗаписей
- РегистрБухгалтерииНаборЗаписей
- РегистрРасчетаНаборЗаписей
- ПоследовательностьНаборЗаписей
Набор записей позволяет оперировать сразу несколькими записями прикладного объекта (обычно регистра). Набор записей можно целиком прочитать из базы данных, добавить в него записи или изменить их, а зетем записать в базу данных (в одной транзакции).
У документов есть свойство-коллекция "Движения", которое предоставляет доступ к наборам записей по каждому регистру, отмеченному на закладке "Движения". Через это свойство обычно производится формирование движений документа при его проведении.
- Добавить()
- Удалить()
- Очистить()
- Записать()
- Прочитать()
- Количество()
- Выгрузить()
- Загрузить()
- РегистрСведенийЗапись
- РегистрНакопленияЗапись
- РегистрБухгалтерииЗапись
- РегистрРасчетаЗапись
Обеспечивает доступ к одной записи из набора, для того чтобы установить ее измерения, ресурсы и т.д. Этот объект возвращается методами других объектов, например, методом Добавить у объекта типа РегистрНакопленияНаборЗаписей.
Объект типа "Запись" не является постоянным идентификатором конкретной записи регистра, наподобие объекта "Ссылка" для справочников и документов. У записей регистра сведений вообще нет неизменяемого во времени идентификатора и каждая запись регистра однозначно определяется значениями своих измерений (включая системные, например, Период, Регистратор, НомерСтроки)
Основная задача платформы заключается в повышении уровня абстракции при разработке и использовании прикладных решений. Это позволяет перейти от технических и низкоуровневых понятий к более содержательным и высокоуровневым. Позволяет приблизить эти понятия к языку пользователей и специалистов в предметной области. В конечном итоге это значительно ускоряет и унифицирует разработку прикладного решения и его сопровождение.
Одновременно с этим платформа решает и традиционные задачи, связанные с производительностью, эргономикой, функциональностью и т. д.
Платформа и прикладные решения
В системе «1С:Предприятие 8» существует четкое разделение на платформу и прикладное решение. Платформа представляет собой framework, в котором функционирует прикладное решение:
- Платформа служит фундаментом для построения прикладных решений,
- Платформа является средой их исполнения,
- Платформа содержит инструментарий, необходимый для разработки, администрирования и поддержки прикладных решений.
При этом прикладное решение является самостоятельной сущностью и может выступать в качестве отдельного программного продукта. Но полностью опирается на технологии платформы.
Метаданные — способ описания прикладного решения
Прикладное решение не пишется в прямом смысле на языке программирования. Язык программирования используется только там, где это действительно необходимо.
В основе прикладного решения лежат метаданные. Они представляют собой структурированное декларативное его описание. Метаданные образуют иерархию объектов, из которых формируются все составные части прикладной системы и которые определяют все аспекты ее поведения. Фактически, при работе прикладного решения, платформа «проигрывает» (интерпретирует) метаданные, обеспечивая всю необходимую функциональность.
Метаданными описываются структуры данных, состав типов, связи между объектами, особенности их поведения и визуального представления, система разграничения прав доступа, пользовательский интерфейс и т. д. В метаданных сосредоточены сведения не только о том, «что хранить в базе данных», но и о том, «зачем» хранится та или иная информация, какова ее роль в системе, и как связаны между собой информационные массивы.
Использование языка программирования ограничено решением тех задач, которые действительно требуют алгоритмического описания, например, расчета налогов, проверки корректности введенных данных и т. д.
Построение прикладного решения на основе модели
В платформе заложена ориентация на построение прикладного решения на основе определенной модели. Под моделью понимается вся идеология построения прикладного решения. Сюда относятся способы построения структур данных, типы связей между данными, принципы манипулирования данными, формы описания бизнес-логики, способы связи данных с интерфейсными объектами, разделение функциональности по уровням системы и многое другое.
Важно, что все прикладные решения следуют принятой модели и этим обеспечивается единообразие и предсказуемость их поведения. Подробнее…
Стандартные прототипы прикладных объектов
В модели разработки «1С:Предприятия 8» все прикладное решение описывается метаданными в виде совокупности прикладных объектов, выбираемых из определенного набора прототипов (классов). Каждый такой прототип отвечает за отражение в прикладном решении определенной совокупности объектов или процессов предметной области, имеющих схожие поведенческие характеристики и сходную роль в общей картине решения.
Каждый прототип имеет некоторую базовую реализацию, которая определяет особенности функционирования создаваемых на основе данного прототипа объектов: структуру хранимых сущностей вместе с некоторыми предопределенными полями, набор типов языка программирования, методы, свойства и события, а также типовые, для решаемой задачи, операции, способы отображения и редактирования, методы регулирования прав доступа и т. д.
Таким образом, все прикладное решение, фактически, состоит из объектов, четко разделенных по тем ролям, которые они играют в прикладном решении. Такой подход существенно усиливает эффект и от описания системы в терминах метаданных, и от построения приложения на основе модели. Подробнее…
Согласованность технологий и инструментов
Ключевым качеством платформы является достаточность ее средств для решения задач, стоящих перед прикладными решениями. Это позволяет обеспечить очень хорошую согласованность всех технологий и инструментов, которыми пользуется разработчик.
Технологии
Инструменты
Простейший пример — система типов. В платформе разработчик использует одну систему типов данных и для взаимодействия с БД, и для реализации бизнес-логики, и для построения интерфейсных решений. Поэтому у него нет проблем, связанных с преобразованием типов при переходах между разными уровнями прикладной системы.
Другой пример это современная концепция работы с информацией, которая сочетает несколько способов представления данных:
- хранение сущностей в базе данных;
- их представление в языке программирования в виде объектов;
- их отображение в формате XML или JSON;
- представление структуры прикладного решения в модели REST (REST API).
Все эти способы представления опираются на единую систему понятий, и от разработчика не требуется усилий для трансформации данных из одного способа представления к другому. Он один раз описывает некоторую сущность, а разные представления данных платформа генерирует автоматически.
Многозвенная архитектура работы
Прикладные решения, работающие под управлением платформы, используют многозвенную архитектуру «клиентское приложение — кластер серверов „1С:Предприятия 8“ — сервер базы данных».
С одной стороны это позволяет масштабировать систему от вариантов персонального использования, до работы в крупных, территориально распределенных холдинговых компаниях.
С другой стороны многозвенная архитектура позволяет выбирать между несколькими системами управления базами данных, которые будут использоваться для хранения прикладных данных.
Основные компоненты системы могут работать как под управлением операционной системы Windows, так и под управлением операционной системы Linux. Кроме этого клиентская часть «1С:Предприятия 8» может быть запущена и на компьютерах с операционными системами OS X и Apple iOS. Подробнее…
Отказоустойчивый кластер с балансировкой нагрузки
Кластер серверов обеспечивает отказоустойчивость системы к таким событиям как выход из строя серверного компьютера (в том числе и центрального сервера), аварийное завершение рабочего процесса или менеджера кластера, физический разрыва соединения пользователя с кластером и последующее его восстановление. Это достигается благодаря тому, что существует возможность резервирования как самого кластера, так и рабочих процессов, функционирующих в нем. Кроме этого кластер предпринимает специальные действия для того, чтобы обеспечивать устойчивость к обрыву канала связи. Подробнее…
Кластер автоматически выполняет балансировку нагрузки между своими рабочими процессами на основе актуального анализа их доступной производительности. При этом администратор системы может корректировать нагрузку на отдельные рабочие серверы. Как за счет физического ограничения обслуживаемых информационных баз или соединений, так и за счет переназначения части функциональности кластера на другие рабочие серверы. Подробнее…
Высокоуровневая модель интерфейса
Основной идеей построения интерфейса является максимальное использование информации из метаданных, а также объектов манипулирования данными с тем, чтобы вся конструкция не требовала детальной настройки со стороны разработчика и функционировала по большей части автоматически.
Разработчику достаточно связать такой объект с элементом формы или с самой формой, и механизм интерфейса полностью возьмет на себя организацию просмотра и модификации данных. Платформа автоматически подключит расширения, учитывающие тип данных, с которыми связан элемент управления или форма. Подробнее…
Платформа содержит целый набор механизмов, позволяющих создавать приложения на разных языках. Начиная от различных языков интерфейса платформы, поддержки национальных дат, чисел, и заканчивая средствами редактирования текстов интерфейса. Подробнее…
Веб-клиент и тонкий клиент
Для работы с прикладным решением пользователь может выбрать одно из двух клиентских приложений: тонкий клиент, либо веб-клиент. Каждое из клиентских приложений обладает своими преимуществами.
Тонкий клиент более функциональный за счёт того, что устанавливается на компьютере пользователя. Например, он имеет непосредственный доступ к файловой системе клиентского компьютера, может использовать локальные лицензии, установленные на компьютере пользователя.
В то же время веб-клиент более универсальный за счёт того, что не требует предварительной установки. Он исполняется не в среде операционной системы компьютера, а в среде интернет-браузера. Поэтому пользователю достаточно всего лишь запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база — и веб-клиент «сам приедет» к нему на компьютер и начнет исполняться. С помощью веб-клиента можно работать с прикладными решениями на компьютерах, которые заранее не подготовлены (или не могут быть подготовлены) для этого.
Важным фактом является то, что разработка прикладного решения ведется независимо от того, какое из клиентских приложений будет использоваться для работы с приложением. Клиентские модули, разработанные в конфигурации, веб-клиент автоматически компилирует из встроенного языка «1С:Предприятия 8» и непосредственно исполняет на своей стороне. Подробнее…
Мобильная платформа
Для работы на смартфонах и планшетах предоставляется специальная технология — мобильная платформа. С её помощью создаются приложения, которые автономно функционируют на этих устройствах. Основное назначение таких приложений заключается в том, чтобы быть частью распределенной информационной системы, обмениваться данными с основным приложением. А в те периоды, когда связь с основным приложением невозможна, обеспечивать полноценную автономную работу.
Разработка и отладка мобильных приложений ведётся теми же инструментами, в тех же терминах и понятиях, что и разработка обычных, «настольных» приложений. Отличие заключается лишь в том, что в конце, для получения дистрибутива мобильного приложения нужно выполнить ряд дополнительных действий, «собрать» мобильное приложение. Подробнее…
Интеллектуальные механизмы подготовки отчетов
Средства подготовки отчетности тесно интегрированы с другими механизмами платформы и имеют мощные возможности для интерактивной работы. Благодаря этому отчеты органично вписываются в общий интерфейс приложения. Фактически, пользователь в процессе работы не видит грани между общим интерфейсом и механизмом отчетности.
Одним из наиболее интересных механизмов такого рода является система компоновки данных, предоставляющая возможность с минимальными усилиями получить отчет с развитой функциональностью. Подробнее…
Построение распределенных и интегрированных информационных систем
Платформа содержит мощный набор механизмов обмена, способный решать самые разнообразные задачи. От поддержки территориально распределенных информационных баз, до построения сложных гетерогенных информационных систем, включающих, наряду с решениями на платформе «1С:Предприятие 8», еще и внешние приложения.
Облачные технологии
Прикладные решения «1С:Предприятия 8» способны функционировать в облаке, благодаря набору технологий и механизмов.
Базисом для облачных технологий является механизм разделения данных, реализованный в платформе. Благодаря ему прикладные решения могут работать в архитектуре multitenancy, когда единый экземпляр объекта приложения, запущенного на сервере, обслуживает множество клиентов или организаций.
Завершающим элементом облачных технологий является инфраструктура сервиса, позволяющая развертывать приложения «1С:Предприятия 8» в модели SaaS. Эта бизнес-модель подразумевает, что поставщик разрабатывает прикладное решение и самостоятельно управляет им, предоставляя потребителю доступ к прикладному решению через Интернет. Такой подход избавляет потребителя от всех затрат, связанных с установкой, обновлением и поддержкой оборудования и программного обеспечения. Потребитель оплачивает лишь пользование услугой.
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Имена авторов цитат даются в том написании, в каком авторы зарегистрировали себя на сайте "1С-Битрикс". .
Курс для разработчиков - продолжение линейки учебных курсов по Bitrix Framework. Получение сертификата по курсу рекомендуется после успешной сдачи тестов по всей линейке курсов, так как без понятия о работе Контент-менеджера и Администратора создание успешных сайтов будет затруднено.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
- Интерфейс программы - в главе Элементы управления курса Контент-менеджер.
- Компоненты 2.0 (начальные сведения) в главе Компоненты 2.0 (начальные сведения) курса Контент-менеджер.
- Информационные блоки - в главе Информационные блоки (начальные сведения) курса Контент-менеджер.
- Управление доступом к файлам, элементам контента, модулям и другие права доступа в главе Управление доступом курса Администратор. Базовый.
- Работа с инструментами системы - в главе Работа с инструментами курса Администратор. Базовый.
- Модуль Поиск - в главе Поиск курса Администратор. Базовый.
- Вся информация по администрированию модулей размещена в курсах:
-
- модули "1С-Битрикс: Управление сайтом" - модули "1С-Битрикс: Управление сайтом", связанные с коммерческой деятельностью в Интернете. - модули "1С-Битрикс: Корпоративный портал"
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
- Junior сможет создавать простые сайты работая со штатными компонентами и модифицируя их шаблоны.
- Middle разработчик может работать с API Bitrix Framework.
- Senior умеет работать над производительностью и безопасностью сайтов, создавать свои модули и компоненты.
Примечание: Такое построение удобно для пошагового изучения принципов работы Bitrix Framework. По этому же принципу построены и тесты. Но такая структура не очень удобна для использования содержания курса как постоянного источника информации. Что бы переключить курс в режим Справочника, воспользуйтесь переключателем в верхнем правом углу шапки курса.
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
- основами PHP, баз данных;
- основами HTML, CSS.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания офлайн
Если данный курс берётся в качестве основы для офлайнового преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла - от 10.03.2022.
Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
В этой статье я разберу объекты платформы 1С 8.3, и покажу, какие виды объектов бывают в 1С.
Что такое объект? Объект в языке программирования — это некоторая сущность, обладающая Свойствами, над которой можно свершать различные манипуляции посредством Методов.
Самое интересное, что пользователь программы 1С работает не с самим объектом, а с экземпляром объекта, который он может создать либо самостоятельно, либо с помощью программного кода, написанного разработчиком.
Всего в платформе 1С 8.3 можно выделить несколько видов объектов – это объекты конфигурации (или объекты метаданных, прикладные объекты), общие объекты и универсальные коллекции значений.
Какое общее свойство всех объектов в 1С? В платформе 1С мы не можем, как разработчики, самостоятельно изобрести тот или иной объект (или прототип объекта, если это касается объекта метаданных, об этом ниже), мы можем довольствоваться только тем, что нам предоставили разработчики платформы. Мы можем создать разные справочники, разные документы, разные таблицы значений и списки значений, но не можем придумать какой-то свой объект и с ним работать. В этом есть плюс, и есть минус. Минус в том, что мы ограничены функционалом платформы 1С, и вынуждены с ним работать. Плюс в том, что любое приложение, разработанное на платформе 1С стандартизировано, и нам не придётся разбираться в том, что придумал тот или иной разработчик.
У объектов есть свойства, методы и события.
Свойство объекта – это поле, которое может содержать какую-то информацию, связанную с этим объектом. Это поле может быть доступно для записи (можно записать какую-то информацию в это поле) и для чтения (информацию можно прочитать из этого поля), или просто для чтения. Причем, информация в свойстве объекта связана не с самим объектом, а с его экземпляром.
Метод объекта – это процедура или функция, которая выполняет или какое-то действие над экземпляром этого объекта, или возвращает информацию о состоянии экземпляра этого объекта.
У объектов метаданных разработчик может создать собственные свойства и методы, а у общих объектов и у универсальных коллекций значений можно довольствоваться только теми свойствами и методами, которые предоставляет платформа 1С.
Событие – это процедура, которая позволяет перехватить какое-то событие над этим объектом, и, или доработать это событие, или отменить его.
Объекты конфигурации 1С
Объекты конфигурации 1С или объекты метаданных создаются на этапе конфигурирования разработчиком – это справочники, документы, константы и т.п. Пользователь может непосредственно работать с некоторыми объектам — создавать экземпляры объектов и манипулировать ими. Или использовать их — отчеты, обработки и тп.
В платформе 1С существуют различные прототипы объектов метаданных. Это справочники, документы и прочие метаданные.
Все прототипы объектов метаданных представлены в дереве метаданных.
Разработчик может самостоятельно создать объект того или иного прототипа. Например, мы можем создать Справочник. Для этого, достаточно выделить ветку Справочники дерева конфигурации, вызвать правой клавишей мышки контекстное меню, и выполнить команду «Добавить» этого меню.
После выполнения команды, будет создан новый объект, с заранее определенным разработчиками платформы 1С набором методов и свойств.
Например, у справочника, созданного выше, одни из свойств это Имя, Синоним и т.д., а методы, например, Записать, Заполнить и тд.
Также, у объекта могут быть события: это возможность перехватить какие-то действия с объектом, например, можно перехватить запись элемента справочника.
Набор методов, свойств и событий объекта определяется его прототипом. Например, у справочников может быть один набор свойств, а у документов совершенно другой.
Посмотреть все методы, свойства и события прототипа того или иного объекта можно в синтакс-помощнике. В ветке для соответствующего прототипа.
Для объектов метаданных разработчик может самостоятельно создать те или иные свойства – реквизиты объектов.
А также, разработчик может создать методы – описав их в модуле объекта.
У некоторых объектов пользователь может создавать экземпляры этих объектов: например, можно создать экземпляр справочника или документа, и записать этот экземпляр в базу данных. А некоторые объекты метаданных пользователь может использовать для каких-то целей. Например, отчет или обработку.
Общие объекты 1С
Общие объекты – это объекты встроенного языка программирования 1С, которыми может оперировать разработчик, необходимые для различных технических и вспомогательных нужд (например, такой общий объект, как ДиалогВыбораФайла предназначен для работы с диалогом открытия файла, сохранения файла и т.д.).
В синтакс-помощнике информация обо всех общих объектах расположена в одноименном каталоге.
Если у объектов метаданных были прототипы, и разработчик мог создать тот или иной объект какого-либо прототипа, то у общих объектов ни каких прототипов нет, и разработчик может довольствоваться только теми общими объектами, которые ему предоставляет платформа 1С.
Разработчик имеет возможность самостоятельно создать только экземпляр какого-то объекта, для своих утилитарных целей. Делается это при помощи конструктора. Какой у того или иного объекта конструктор, можно посмотреть в синтакс-помощнике в одноименном каталоге.
Как правило, большинство общих объектов создается при помощи конструктора Новый. Например, так создаётся табличный документ.
У общих объектов, также как и у объектов метаданных, могут быть свойства, методы и события. Но, в отличие от объектов метаданных, мы не можем, как разработчики, самостоятельно конструировать те или иные свойства и методы, а можем оперировать только тем, что предоставила платформа 1С. О том, какие свойства, методы и события имеются у того или иного общего объекта можно посмотреть во всё том же синтакс-помощнике.
Не у всех общих объектов есть и методы, и свойства, и события. У некоторых объектов может не быть событий, а у некоторых свойств.
Обратиться к свойствам и методам можно через оператор «.»:
Универсальные коллекции значений
Универсальные коллекции значений – это, также как и общие объекты, объекты встроенного языка программирования, которыми может оперировать разработчик. Но, в отличие от общих объектов, они предназначены для хранения наборов данных, причем эти наборы данных хранятся в оперативной памяти компьютера, во время запущенного сеанса. Таким образом, когда пользователь прекратит работу с сеансом 1С, то и вся информация этих наборов данных будет уничтожена.
Все универсальные коллекции описаны в синтакс-помощнике в разделе «Универсальные коллекции значении». Это массив, структура, соответствие, список значений, таблица значений и т.д.
Как правило, все универсальные коллекции значений создаются при помощи конструктора Новый.
Читайте продолжение темы:
Более подробно про основные универсальные коллекции значений платформы 1С можно почитать в соответствующих статьях:
Так же, как и остальные объекты, универсальные коллекции значений имеют методы и свойства. Но, у каждой универсальной коллекции будет свой состав.
Например, у массива есть только методы, а у структуры есть методы и свойства.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Если в системе обрабатывается информация о факультетах, сущностью будет являяться факультет, если о студентах, сущность – студент и т.п.
Имя сущности при ER-моделировании , как правило, записывается заглавными буквами. Каждая сущность обладает определенным набором свойств (рассматриваем только свойства, представляющие интерес для пользователей в рамках проводимого исследования), которые запоминаются в информационной системе. Так, например, в качестве свойств сущности ФАКУЛЬТЕТ можно указать номер вакультета, название факультета, в качестве свойств сущности СТУДЕНТ можно указать фамилию, дату рождения, место рождения, в качестве свойств сущности ЭКЗАМЕН – предмет, дату проведения экзамена, экзаменаторов.
Для информационного описания сущности вводится понятие атрибута.
Атрибут – поименованное свойство (характеристика) сущности.Атрибут представляет собой информационное отображение свойства сущности и принимает конкретное значение из множества допустимых значений. Так, например, для сущности ФАКУЛЬТЕТ атрибут «название» у конкретного экземпляра сущности принимает конкретное значение «вычислительной математики и кибернетики». Таким образом, атрибут представляет информационное описание количественных или качественных свойств сущности, описывает состояние сущности, позволяет идентифицировать сущность. Информация о сущности представляется совокупностью атрибутов. Такую совокупность атрибутов часто называют записью об объекте.
Совокупность сущностей, характеризующихся в информационной системе одним и тем же перечнем свойств, называется классом сущностей (набором объектов). Так, например, совокупность всех сущностей СТУДЕНТ составляет класс сущностей СТУДЕНТ, совокупность всех сущностей ФАКУЛЬТЕТ составляет класс сущностей ФАКУЛЬТЕТ. Класс сущностей описывается перечнем свойств сущностей, составляющих этот класс.
Экземпляром сущности будем называть конкретную сущность (сущность с конкретными значениями соответствующих свойств). Выше мы определили сущность как то, о чем будет накапливаться информация в информационной системе. Это только одна сторона. Информация должна не просто храниться сама по себе, а использоваться для удовлетворения информационных потребностей пользователя. Для реализации подавляющего числа запросов пользователю прежде всего необходимо найти интересующий его экземпляр сущности (с целью обработки, корректировки, удаления). Поэтому важнейшим свойством сущности является однозначная идентификация ее экземпляров по одному или группе атрибутов (уникальному идентификатору). У сущности ФАКУЛЬТЕТ это, например, номер факультета, у сущности СТУДЕНТ это может быть атрибут «фамилия», если у всех студентов разные фамилии, группа атрибутов «фамилия», «»имя», «отчество», или специально введенный уникальный идентификатор, например дополнительно введенный атрибут «код студента».
Наиболее распрстраненным способом представления концептуальной модели является так называемая ER-диаграмма. В разных источниках используются разные системы обозначений в ER-диаграммах. На практике использование различных способов записи ER-диаграмм не представляет особой сложности – беглое ознакомление с соответствующим разделом документации позволяет быстро освоить используемую систему обозначений. В данном пособии в ER-диаграмме класс сущностей будем представлять в виде четырехугольника. В четырехугольнике записано уникальное имя класса сущности (прописными буквами) и имена атрибутов строчными буквами.
Пример класса сущностей СТУДЕНТ и конкретного экземпляра сущности показан на рис. 5.1.
Рис. 5.1.. Класс сущностей и экземпляр сущности
Для реализации иформационных потребностей пользователя недостаточно найти интересующий его экземпляр сущности. Информационные потребности тесно связаны с функциональными взаимоотношениями, существующими в организации (например, необходимо определить, на каком факультете учится конкретный студент). Для реализации таких запросов (информационных потребностей пользователя) используются существующие в предметной области взаимоотношения между сущностями. Соответствующие взаимоотношения сущностей выражаются связями (Relationships). Различают классы связей и экземпляры связей. Классы связей – это взаимоотношения между классами сущностей, а экземпляры связи – взаимоотношения между экземплярами сущностей.
Класс связей может затрагивать несколько классов сущностей. Число классов сущностей, участвующих в связи, называется степенью связи n = 2, 3, … Так, например, класс сущностей СТУДЕНТ связан с классом сущностей ФАКУЛЬТЕТ связью «учится на факультете». Степень этой связи равна двум. При n=2 связь называется бинарной. Заметим, что связь нужно рассматривать как двустороннюю: «студент учится на факультете» и «на факультете учатся студенты».
Рассмотрим классификацию бинарных связей. В зависимости от того, сколько экземпляров сущности одного класса связаны со сколькими экземплярами сущности другого класса, различают следующие типы связей:
· Связь 1:1. Одиночный экземпляр сущности одного класса связан с одиночным экземпляром сущности другого класса. Примером является связь между классами сущностей ФАКУЛЬТЕТ и УЧЕБНЫЙ ПЛАН ПО СПЕЦИАЛЬНОСТИ ДЛЯ ФАКУЛЬТЕТА (каждому факультету соответствует свой учебный план по специальности или направлению).
· Связь 1:M. Единый экземпляр сущности одного класса связан со многими экземплярами сущности другого класса. Примером является связь между классами сущностей ФАКУЛЬТЕТ и СТУДЕНТ (на одном факультете учатся много студентов).
· Связь M:N. Несколько экземпляров сущности одного класса связаны с несколькими экземплярами сущности другого класса. Примером является связь между классами сущностей ФАКУЛЬТЕТ и СПЕЦИАЛЬНОСТЬ (на факультете может быть несколько специальностей и одна и таже специальность может быть на нескольких факультетах).
Числа, описывающие типы бинарных связей (1:1, 1:M, M:N), обозначают максимальное количество сущностей на каждой стороне связи. Эти числа называются максимальными кардинальными числами, а соответствующая пара чисел называется максимальной кардинальностью.
В данном пособии на ER-диаграммах связи между сущностями будем обозначать стрелками, рядом со стрелками указываем имя связи, а также тип связи. Пример ER-диаграммы, представлющего сущности СТУДЕНТ, ФАКУЛЬТЕТ, СПЕЦИАЛЬНОСТЬ и их взаимосвязи приводится на рис. 5.2.
Нпомним, что каждый экземпляр сущности должен уникально идентифицироваться (иметь уникальный идентификатор). Так как могут быть несколько студентов с одинаковой фамилией, введем дополнительный атрибут «код студента». У сущностей ФАКУЛЬТЕТ и СПЕЦИАЛЬНОСТЬ атрибут «номер» является уникальным идентификатором.
пПример фрагмента ер ER-диаграммы.
Заметим, что по этой ER-диаграмме
можно указать последовательность действий, производимых при реализации запроса пользователей. Например, для реализации запроса «на каком факультете учится студент Иванов» необходимо выполнить следующие действия: найти среди экземпляров сущности СТУДЕНТ экземпляр с фамилией Иванов, перейти по связи «Студент учится на факультете» к экземпляру сущности ФАКУЛЬТЕТ, значение атрибута «Название» этого экземпляра и есть искомое название факультета. Отметим также, что иногда на ER-диаграммах две связи между сущностями изображают одной двухсторонней стрелкой или просто линией.
Заметим, что на приведенной ER-диаграмме не представлены какие-либо способы реализации этих связей (на логическом и, тем более , на физическом уровнях). Соответствующие способы реализации связей зависят от возможностей модели данных конкретной СУБД и будут рассмотрены в следующей лекции (лекция 6) на второй стадии концептуального проектирования при представлении концептуальной модели средствами модели данных СУБД.
5.2. Построение концептуальной модели в виде ER-диаграммы
5.2.1 Основные этапы построения
Как уже отмечалось, концептуальная модель представляет собой обобщение представлений разных пользователей о данных. В связи с этим построение концептуальной модели, как правило, происходит в два этапа. На первом этапе производится сбор и анализ характеристик данных и строятся так называемые модели локальных представлений (локальные модели). Чаще всего локальная модель отражает представление отдельного пользователя (отдельной функциональной задачи). Иногда такая модель может описывать и некоторую независимую область данных нескольких функциональных задач (нескольких приложений). Здесь необходимо отметить, что моделирование представлений отдельных пользователей приводит к снижению уровня интеграции данных, а моделирование совместных представлений группы пользователей – к повышению сложности проектирования. В связи с этим при выборе области данных для локального моделирования приходится выбирать компромиссное решение между вышеуказанными вариантами. 4.3. Выявление и моделирование сущностей
и связей
При разработке концептуальной модели, прежде всего, следует определить сущности. С этой целью нужно сделать следующее:
· необходимо понять, какая информация должна храниться и обрабатываться и можно ли это определить как сущность;
· присвоить этой сущности имя;
· выявить атрибуты сущности и присвоить им имя;
· определить уникальный идентификатор сущности.
Выявив сущности, необходимо определить, какие связи имеются между ними.
При определении связей (естественно, рассматриваем только те связи, которые имеют отношение к решаемым задачам обработки данных) необходимо учитывать следующее:
· то, как экземпляр одной сущности связан с экземпляром другой сущности;
· то, как должны быть установлены связи, чтобы была возможность ответа на все запросы пользователей (исходя из их информационных потребностей).
Далее необходимо присвоить связям имена и определить тип связей.
На втором этапе построенные локальные модели объединяются в обобщенную концептуальную модель.
5.2.2. Моделирование локальных представлений
Прежде всего, необходимо отметить, что построенная модель должна удовлетворять ряду требований:
· адекватно отражать представление пользователя о данных;
· давать возможность ответа на возможные запросы пользователя, причем делать это с минимальными затратами по количеству просматриваемых сущностей;
· представлять данные с минимальным дублированием.
Процесс построения модели, удовлетворяющей указанным требованиям, является творческим, и формализовать его, как правило, невозможно. Тем не менее можно указать некоторые способы порождения вариантов при моделировании. Выбор одного из таких вариантов на основе оценок объемов дублирования и числа просматриваемых объектов при ответах на запросы пользователей позволяет улучшить эксплуатационные характеристики проектируемой базы данных.
Вариативность моделирования обусловливается неоднозначностью выбора сущностей, атрибутов и связей. В одном варианте можно что-то взять за сущность, в другом варианте это же можно взять за атрибут (несколько атрибутов), в третьем варианте это можно определить как связь. Так, например, ранее мы определили сущеость ФАКУЛЬТЕТ с атрибутами «номер факультета», «название факультета». Введем сущность КАФЕДРА с атрибутами «номер кафедры», «название кафедры». Между этими сущностями есть связь «факультет состоит из кафедр». Возможен другой вариант, в котором вышеуказанная связь представляется через атрибуты сущности (у сущности ФАКУЛЬТЕТ введем дополнительные атрибуты, представляющие номера и названия вскх кафедр этого факультета).
После того как выбран рациональный вариант локальной модели, производится редактирование введенных наименований сущностей, атрибутов и связей. Здесь выполняются следующие действия:
· устраняются расплывчатые наименования (все наименования должны однозначно пониматься каждым пользователем);
· устраняются синонимы (различные наименования одного и того же понятия);
· устраняются омонимы (одно и то же наименование разных понятий).
Эти действия, вообще говоря, носят итерационный характер, т.к. после их выполнения вновь могут возникать и расплывчатые наименования, и синонимы, и омонимы.
5.2.3. Объединение локальных моделей
На этом этапе ранее построенные модели локальных представлений отдельных пользователей (или групп пользователей) объединяются в единую концептуальную модель. Объединение локальных моделей производится следующими путями:
· слияние идентичных элементов;
§· установление связей между наборами сущностей разных моделей;
· введение новых агрегированных элементов для представления связей между элементами разных моделей;
· обобщение различных подобных типов сущностей, позволяющее трактовать эти сущности как одну обобщенную сущность.
Читайте также: