Документация » Содержание справочника » Раздел 1. Введение во встроенный язык » Типы данных встроенного языка » 
5

Конфигурируемые агрегатные (составные) типы

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

Конфигурируемые составные типы имеют атрибуты, реквизиты и методы.

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

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

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

Попытка использования метода, не имеющего возвращаемого значения, приведет к ошибке синтаксического контроля «Процедура вызывается как функция»

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

Справочник.Товары
Документ.ПоступлениеТоваров

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

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

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

Пример работы с агрегатным объектом:

Перем Объект;

Объект = СоздатьОбъект(«Справочник.Товары»);

//спозиционируем объект на элементе

Если Объект.НайтиПоНаименованию(«Справочник по встроенному языку. Часть 1») = 1 Тогда

//элемент данных найден

//присваиваем атрибуту значение

Объект.Цена = 100;

//читаем значение атрибута

Сообщить(«Значение атрибута = » + Объект.Атрибут);

КонецЕсли;

//уничтожаем объект

Объект = «»;

Краткое описание конфигурируемых агрегатных типов

Константа Средство для хранения условно-постоянных единичных пользовательских данных (которые не меняются пользователем в процессе работы или меняются, но очень редко).
Справочник Средство для хранения условно-постоянных списочных пользовательских данных. Как правило, каждый справочник создается для хранения информации одного вида. Для удобства использования элементы справочников могут быть разбиты на группы. В этом справочники очень схожи с бумажными картотеками: каждая карточка – это элемент справочника, каждый ящик – группа справочника.
Перечисления Средство для хранения ограниченного набора списочных данных. Все значения задаются разработчиком на этапе конфигурирования и пользователи не смогут его изменить.
Документы Средство для хранения данных в строгом хронологическом порядке. Как правило, документы используются для хранения информации первичных документов: товарных накладных, счетов-фактур, приходных кассовых ордеров и т.п.
Регистр Средство для обработки и накопления сводных данных оперативного учета. Записи регистра формируются документами.
ПланСчетов Служебный тип компоненты «Бухгалтерский учет». Предназначен для хранения планов счетов, используемых для ведения бухгалтерского учета. Этот тип доступен только при наличии установленной компоненты «Бухгалтерский учет».
Счет Служебный тип компоненты «Бухгалтерский учет». Являясь аналогом бухгалтерских счетов, используются для организации разрезов количественного и суммового учета средств по конкретному плану счетов. Этот тип доступен только при наличии установленной компоненты «Бухгалтерский учет».
ВидСубконто Служебный тип компоненты «Бухгалтерский учет». Виды субконто используются для организации аналитических срезов учета по конкретным счетам. Этот тип доступен только при наличии установленной компоненты «Бухгалтерский учет».
Операция Средство для манипулирования данными бухгалтерских операций и проводок, формируемых документами. Этот тип доступен только при наличии установленной компоненты «Бухгалтерский учет».
БухгалтерскиеИтоги Средство для доступа к итогам бухгалтерского учета в различных аналитических срезах. Изменение бухгалтерских итогов выполняется проводками бухгалтерских операций. Платформа 1С:Предприятие 7.7 организует хранение и динамический пересчет бухгалтерских итогов при изменении данных проводок. Этот тип доступен только при наличии установленной компоненты «Бухгалтерский учет».
ЖурналРасчетов Средство для хранения расчетных действий по тем или иным объектам расчета. Этот тип доступен только при наличии установленной компоненты «Расчет».
ВидРасчета Средство для выполнения расчетов по определенному алгоритму через журнал расчетов. Этот тип доступен только при наличии установленной компоненты «Расчет».
ГруппаРасчетов Средство для объединения видов расчетов по тому или иному признаку. Этот тип доступен только при наличии установленной компоненты «Расчет».
Календарь Средство для ведения учета времени по календарным датам. Этот тип доступен только при наличии установленной компоненты «Расчет».

Комментарии

  1. Чем атрибут от реквизита отличается?
    Если я правильно понял, то пример вы привели неправильный:
    «//присваиваем атрибуту значение
    Объект.Цена = 100;»
    Присвоили значение реквизиту…

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

      • Тогда может стоит в статье это отразить? А то у вас через запятую перечислено всё это .как будто это равноценные вещи.

  2. «объект следует спозиционировать на конкретном экземпляре данных. Для этого используются такие методы как: НайтиПоКоду(), НайтиПоНаименованию()»
    А если будет найдено несколько элементов с одинаковым наименованием, как позиционирование произойдёт? Или тогда не произойдёт и объект будет связан с выборкой (списком) элементов?

    • В том случае, если в справочнике есть несколько одноименных элементов, метод вернет первый найденный…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *