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

1.4.1.2 Подчиненные объекты

В зависимости от вида объекта конфигурации объект может иметь различные подчиненные группы объектов. Состав подчиненных объектов зависит от типа объекта. Перечень подчиненных объектов в виде списка представлен ниже и на рис. 1.10.

  • Реквизиты – дополнительная информация об объекте, доступная только в пределах этого объекта.

  • Табличные части – наборы дополнительной информации об объекте, представленные в виде таблиц.

  • Реквизиты табличных частей – состав табличной части объекта, доступных только в пределах табличной части объекта.

  • Формы – используются для ввода, просмотра и редактирования информации.

  • Макеты – табличные документы, предназначенные для формирования печатных форм объекта.

  • Графы – графы журнала документов.

  • Измерения – для регистров это объекты конфигурации, в разрезе которых учитываются данные в регистре.

  • Ресурсы – данные, учитываемые в регистре.

Рис. 1.10 Подчиненные объекты

1.4.2 Типы данных

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

Различают три основных группы типов данных:

  • примитивные типы (в их состав входят базовые типы данных);

  • типы данных, «появившиеся» после определения в конфигурации объектов конфигурации;

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

К базовым типам данных относятся:

  • число (десятичное число);

  • строка (строка фиксированной или неограниченной длины);

  • дата (дата, время);

  • булево (истина или ложь).

Кроме вышеперечисленных, существует еще ряд типов, которые относятся к примитивным: «Тип», «Неопределено», «Null».

Отдельно следует сказать про такой тип как «Хранилище значений». Если определить реквизиту такой тип, то в нем можно хранить «все что угодно» (включая двоичные данные, картинки, файлы).

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

Рис. 1.11 Общая система типов

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

1.4.3 Встроенный язык программирования

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

Встроенный язык системы 1С:Предприятие предназначен для описания (на стадии разработки конфигурации) алгоритма функционирования прикладной задачи. Он имеет много общих черт с другими языками, такими как Pascal, Java Script, Basic. Это облегчает его освоение начинающими разработчиками, но он не является прямым аналогом какого–либо из перечисленных языков.

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

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

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

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

Так как система сочетает в себе визуальные и языковые средства конфигурирования, использование встроенного языка в системе имеет событийно–зависимую ориентацию, то есть языковые модули используются в конкретных местах для отработки отдельных алгоритмов, настраиваемых в процессе конфигурации. Программный код помещается в «модули». Разработчик пишет текст программы в строго определенных точках конфигурации – программных модулях (например, в модуле формы документа или в модуле отчета). Место размещения конкретного программного модуля предоставляется конфигуратором в тех точках конфигурации, которые требуют описания специфических алгоритмов функционирования. Эти алгоритмы следует оформлять в виде процедур или функций, которые будут вызваны самой системой в заранее предусмотренных ситуациях.

Система 1С:Предприятие обеспечивает два способа доступа к данным:

  • объектный – для чтения и записи;

  • табличный – только для чтения.

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

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

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

Основными особенностями встроенного языка являются:

  • мягкая типизация (тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы);

  • отсутствие программного описания прикладных типов (они создаются при добавлении объектов метаданных);

  • не требуется предварительное описание процедур или функций, если их вызов выполняется раньше их описания;

  • событийная ориентированность встроенного языка;

  • поддержка обработки исключительных ситуаций;

  • все операторы имеют как русское, так и английское написание, которое можно использовать одновременно;

  • используется интерпретатор с предварительной компиляцией (перед исполнением модули, содержащие текст на встроенном языке, преобразуются во внутренний код);

  • кэширование скомпилированных модулей в памяти.