Описание встроенного языка системы 1С Предприятие

         

Агрегатные типы данных


Агрегатные типы данных — это специализированные типы данных систе­мы 1С:Предприятие, суть которых — отражение объектов предметной области и способ работы с ними.

Работа с агрегатными типами данных имеет существенные отличия от рабо­ты с обычными базовыми типами данных. Конкретные значения существую­щих агрегатных типов данных могут быть определены в программном модуле двумя способами:

  • некоторые значения заранее известны в программном модуле из его гло­бального и локального контекста;
  • другие значения могут быть определены с помощью системной функции СоздатьОбъект, которой в качестве параметра передается строка с именем агрегатного типа данных, созданного в конфигураторе.
  • Каждый агрегатный тип данных, как правило, имеет набор атрибутов и ме­тодов.

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

    Методы — это те действия, которые может выполнять агрегатный тип дан­ных. Методы могут иметь или не иметь возвращаемое значение. Если метод имеет возвращаемое значение, то он может размещаться в правой части опера­тора присваивания, в выражениях, в описании фактических параметров других вызываемых методов, процедур или функций.

    Замечание. В тексте программного модуля вызов любого метода можно запи­сывать отдельным оператором программы (как вызов процедуры) даже в том случае, если метод имеет возвращаемое значение. Другими словами, в языке допускается игнорировать возвращаемое значение.

    Замечание. Работа с агрегатными типами данных языка напоминает работу с объектными типами в Visual Basic. Атрибуты агрегатного типа данных — аналогичны свойствам объектного типа в Visual Basic. Методы — анало­гичны методам объектного типа в VisualBasic.

    Замечание. При конфигурировании агрегатных типов данных, например Справочников, Документов, Регистров и т. п. не рекомендуется использо­вать в качестве идентификаторов создаваемых рекизитов существующие термины названий атрибутов и методов объектов.




    Типичная последовательность работы с объектом агрегатного типа данных выглядит следующим образом:

    • с помощью функции СоздатьОбъект создается объект агрегатного типа данных, и какой-либо переменной присваивается ссылка на него;


    • объект позиционируется на нужном элементе данных;




    • производятся различные манипуляции с объектом агрегатного типа дан­ных через вызовы методов и обращения к его атрибутам.


    • в случае, если объект агрегатного типа данных больше не нужен, он мо­жет быть отсоединен от переменной посредством переприсваивания пе­ременной какого-либо значения базового типа (например, числа 0). От­соединение объекта выполнять не обязательно.


    • Пример:

      // Создаем объект типа "справочник.Сотрудники"

      Сотр = СоздатьОбъект("Справочник.Сотрудники");

      // Позиционируем созданный объект Сотр по известному наименованию

      Сотр.НайтиПоНаименованию("Петров");

      Если Сотр.Выбран() = 1 Тогда

         // если сотрудник найден, отобразим его оклад

         Предупреждение("Оклады" + Сотр.Оклад);

      Иначе

         Предупреждение("Петров не найден" + " !!!");

      КонецЕсли;

      // отсоединяем объект

      Сотр=0;

      Замечание. Объект, созданный при помощи функции. СоздатьОбъект, изна­чально не определен, т. е. не содержит никакого конкретного значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный документ

      или элемент справочника). Для до­кументов позиционирование выполняется при помощи методов НайтиДокумент, НайтиПоНомеру, ПолучитьДокумент. Для справочни­ков позиционирование выполняется при помощи методов НайтиЭлемент, НайтиПоКоду, ПолучитьЭлемент.

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



      Агрегатными типами данных называются следующие типы данных:

      Константа — средство работы с постоянными (или условно постоянными) значениями. В константах

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

      Справочник — средство для ведения списков однородных элементов дан­ных. Помимо наименования элементов данных, списки могут содержать различную дополнительную информацию. Физическим аналогом справочника мо­жет являться картотека. Каждая карточка — это элемент справочника, а сведе­ния, заносимые в карточку, являются реквизитами справочника. Перечень спра­вочников, доступных в конкретной конфигурации, их названия и реквизиты определяются в конфигураторе.

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

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

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

      ПланСчетов является служебным типом данных. Он предназначен для идентификации Плана счетов, созданного в метаданных. В основном он ис­пользуется для передачи в качестве параметра различным процедурам и функ­циям компоненты «Бухгалтерский учет» и для выбора плана счетов в формах. Тип значения «ПланСчетов» не поддерживает никаких данных в информаци­онной базе, а список возможных значений этого типа данных определен плана­ми счетов созданными в конфигурации. Значения типа «ПланСчетов» могут выступать как реквизиты диалога формы, как реквизиты документов, справоч­ников и т. д. Для получения значения такого типа данных используется гло­бальный атрибут ПланыСчетов, который имеет в свою очередь набор атрибу­тов типа «ПланСчетов» соответсвующих имеющимся в конфигурации планам счетов. Кроме того, глобальный атрибут ПланыСчетов имеет методы для обхо­да всех существующих планов счетов. (Данные типа ПланСчетов доступны только при наличии компоненты «Бухгалтерский учет»)



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

      ВидСубконто является служебным типом данных. Он предназначен для идентификации Вида субконто, созданного в метаданных. В основном он ис­пользуется для передачи в качестве параметра различным процедурам и функ­циям компоненты «Бухгалтерский учет» и для выбора вида субконто в формах. Список возможных значений этого типа данных определен видами субконто, созданными в конфигурации. Значения типа «ВидСубконто» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа используется глобальный атрибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа «Вид­Субконто» соответствующих имеющимся видам субконто. Кроме того, глобаль­ный атрибут ВидыСубконто имеет методы для обхода всех существующих ви­дов субконто. (Данные типа ВидСубконто доступны только при наличии компо­ненты «Бухгалтерский учет»)

      Операция — средство для манипулирования из встроенного языка данны­ми бухгалтерских операций и проводок формируемых документом. Так как проводки в системе 1С:Предприятие принадлежат операциям, то управление и операциями и проводками выполняется объектом «Операция». (Данные типа Операция доступны только при наличии компоненты «Бухгалтерский учет»)



      БухгалтерскиеИтоги — средство для организации доступа к бухгалтер­ским итогам в различных разрезах, за различные периоды и с разной степенью детализации. При наличии в системе 1С:Предприятие компоненты «Бухгалтер­ский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамиче­ский пересчет бухгалтерских итогов и их извлечение средствами встроенного языка. Система хранения бухгалтерских итогов поддерживается системой 1С:Предприятие автоматически на основе существующих планов счетов. При редактировании планов счетов — в конфигураторе или при работе с системой 1С:Предприятие — для счета могут быть установлены ряд свойств, которые влияют на организацию хранения бухгалтерских итогов: это признаки ведения валютного и количственного учета, а также включение аналитического учета по субконто. Изменение бухгалтерских итогов может производиться только про­водками бухгалтерских операций. (Данные типа БухгалтерскиеИтоги доступны только при наличии компоненты «Бухгалтерский учет»)

      ЖурналРасчетов — средство для учета расчетных действий по тем или иным объектам расчета. Каждая строка журнала расчетов соответствует одному расчетному действию — акту расчета, выполняемому по определенному алго­ритму (виду расчета), в определенном временном интервале и имеющему ре­зультат. (ЖурналыРасчетов доступны только при наличии компоненты «Рас­чет»)

      ВидРасчета — средство для выполнения расчетов по определенным алго­ритмам через журнал расчетов. Перечень видов расчета, доступных в конкрет­ной конфигурации, их названия и другие свойства определяются в конфигура­торе. (ВидыРасчета доступны только при наличии компоненты «Расчет»)

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



      Календарь — средство для ведения учета времени по календарным датам. Перечень календарей, доступных в конкретной конфигурации, их названия и другие свойства определяются в конфигураторе. (Календари доступны только при наличии компоненты «Расчет»)

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

      Текст — средство работы с текстовыми документами. В программных мо­дулях допускается создавать произвольное число объектов типа Текст при по­мощи вызова системной функции СоздатьОбъект.

      Таблица — средство работы с таблицами (отчетами). В программных моду­лях допускается создавать произвольное число объектов типа Таблица, при по­мощи вызова системной функции СоздатьОбъект.

      СписокЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗна­чений

      при помощи вызова системной функции СоздатьОбъект.

      ТаблицаЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗна­чений при помощи вызова системной функции СоздатьОбъект.

      Картинка — средство для работы с графическими файлами. При добавле­нии в диалоговых формах и в таблицах полей типа «Картинка», система авто­матически создает объекты Картинка, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произ­вольное число объектов типа Картинка



      при помощи вызова системной функ­ции СоздатьОбъект.

      Периодический — средство для работы с периодическими реквизитами справочников и периодическими константами. В программных модулях допус­ кается создавать произвольное число объектов типа Периодический при помощи вызова системной функции СоздатьОбъект.

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

      XBase — средство для работы с файлами баз данных DBF формата непо­средственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа XBase при помощи вызова системной функции СоздатьОбъект.


      Содержание раздела