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

Собственные типы

Собственные типы — это типы, уникальные для вашего скрипта. Вы объявляете их самостоятельно, используя в качестве базового типа один из стандартных типов Перечисление, Объект или Исключение. Эти типы можно использовать только в методах того скрипта, где они объявлены.

Перечисление

Перечисление — это новый тип, множество значений которого представляет собой явно заданный набор идентификаторов.

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

перечисление ВидСообщения
Важное,
Обычное умолчание,
Второстепенное
;

метод Скрипт()
// Используется значение перечисления по умолчанию.
пер Важность: ВидСообщения
ОтправитьСообщение("текст сообщения", Важность)

// Значение перечисления указано явно.
ОтправитьСообщение("проблема!", ВидСообщения.Важное)
;

метод ОтправитьСообщение(Текст: Строка, Вид: ВидСообщения)
;

Структура

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

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

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

Преимущества структуры:

  • нет необходимости документировать,
  • доступна контекстная подсказка.
«1С:Предприятие 8»
Товар = Новый Структура("Наименование, Артикул, Цена", "Холодильник", "М50", 5300);
Товар.Наименование = "Утюг";
Товар.Цена = "хорошая";
Товар = Новый Структура("Вес, Рост", 80, 180);
«1С:Исполнитель»
структура Товар
обз знч Наименование: Строка
пер Артикул: Строка
пер Цена: Число
;

метод Скрипт()
пер ПервыйТовар = новый Товар("Холодильник", "М50", 5300)
пер ВторойТовар = новый Товар("Пылесос")

ВторойТовар.Артикул = "VC20"
ВторойТовар.Цена = 5000
;

Исключение

Исключение — это новый тип, содержащий набор данных, который описывает обнаруженную ошибку.

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

структура ДанныеПоСотруднику
обз пер ФИО: Строка
обз пер ТабельныйНомер: Число
;

исключение ИсключениеНеверныйФорматФайла
обз пер ИмяФайла: Строка
;

@НаСервере
метод Скрипт(Путь: Строка)
пер Результат: Массив<ДанныеПоСотруднику>
пер ФайлыСДаннымиОСотрудниках = Файлы.Найти(Путь)
для Файл из ФайлыСДаннымиОСотрудниках
попытка
Результат.Добавить(ПрочитатьДанные(Файл))
поймать Искл: ИсключениеНеверныйФорматФайла
ОбработатьИсключение(Искл)
поймать Искл: Исключение
// обработка других исключений
;
;
// ...
;

@НаСервере
метод ПрочитатьДанные(Файл: Файл): ДанныеПоСотруднику
пер Данные: ДанныеПоСотруднику

// считывание данных в структуру
// ...
выбросить новый ИсключениеНеверныйФорматФайла(
"Неверный формат. Недопустимое поле %Поле", Файл.Путь)

// ...
возврат Данные
;

метод ОбработатьИсключение(Искл: ИсключениеНеверныйФорматФайла)
// обработка
;

Другие отличия от встроенного языка:

См. также