Перейти к основному содержимому

Тип встроенного языка, порождаемый элементом проекта вида «ХранимаяСтруктура»

Элемент проекта Хранимая структура отличается от элемента проекта Структура тем, что:

  • хранимую структуру можно использовать как тип реквизита справочника или тип измерения (ресурса, реквизита) регистра сведений (для хранения данных в базе данных), поэтому:
    • окружение только КлиентИСервер;
    • поля могут быть только таких типов, для которых обеспечивается хранение в базе данных;
    • две структуры не могут иметь поля, ссылающиеся друг на друга;
  • хранимую структуру можно использовать как тип параметра и как тип результата запланированного задания;
  • хранимую структуру можно использовать в полнотекстовом поиске.

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

  • СтрокаТаблицы
  • СтрокаТаблицы.Данные

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

  • имя-хранимой-структуры
  • имя-хранимой-структуры.Данные

Тип «имя-хранимой-структуры»

Тип имя-хранимой-структуры доступен только в окружении КлиентИСервер.

Этот тип имеет конструктор без параметров новый имя-хранимой-структуры(), который позволяет создать новый экземпляр хранимой структуры. Поля хранимой структуры доступны по их именам.

Например, хранимую структуру СтрокаТаблицы с полями Товар, Количество и Цена можно использовать следующим образом:

знч НоваяСтрока = новый СтрокаТаблицы(ТоварСсылка, 10, 1500)
ТабличнаяЧасть.Добавить(НоваяСтрока)

Тип «имя-хранимой-структуры.Данные»

Служебный тип.

Служебный тип.

Не имеет конструктора.

Модуль хранимой структуры

В проекте модуль, расширяющий тип имя-хранимой-структуры, называется модулем хранимой структуры. Он доступен только в окружении КлиентИСервер.

Вы можете расширить тип имя-хранимой-структуры, добавив в этот модуль собственные публичные методы. Например, модуль структуры СтрокаТаблицы может содержать метод МетодСтруктуры():

@ВПроекте
метод МетодСтруктуры()
...
;

Этот метод будет доступен в других модулях:

// Вызов собственного метода структуры «СтрокаТаблицы»
знч НоваяСтрока = новый СтрокаТаблицы()
НоваяСтрока.МетодСтруктуры()