Собственные типы
Собственные типы — это типы, уникальные для вашего модуля. Вы объявляете их самостоятельно, используя в качестве базового типа один из стандартных типов Перечисление
, Объект
или Исключение
. Эти типы можно использовать только в методах того модуля, где они объявлены.
Перечисление
Перечисление — это новый тип, множество значений которого представляет собой явно заданный набор идентификаторов.
Стандартный тип Перечисление
не имеет конструктора и используется только в качестве базового типа для создания ваших собственных типов перечислений. Сначала с помощью инструкции перечисление
вы объявляете тип своего перечисления, затем можете использовать его в методах.
перечисление ВидСообщения
Важное,
Обычное умолчание,
Второстепенное
;
метод Скрипт()
// Используется значение перечисления по умолчанию.
пер Важность: ВидСообщения
ОтправитьСообщение("текст сообщения", Важность)
// Значение перечисления указано явно.
ОтправитьСообщение("проблема!", ВидСообщения.Важное)
;
метод ОтправитьСообщение(Текст: Строка, Вид: ВидСообщения)
;
Структура
Структура — это тип, содержащий несколько именованных значений произвольных типов. Структура состоит из полей. Каждое поле имеет тип, указанный при объявлении типа структуры.
В качестве базового типа для создания ваших собственных типов структур используется стандартный тип Объект
. Сначала с помощью инструкции структура
вы объявляете тип своей структуры, затем можете использовать его в методах.
В отличие от встроенного языка, состав полей структуры и их типы определяются в момент разработки программы. Во время исполнения программы ни состав полей, ни типы полей измениться уже не могут.
Преимущества структуры:
- нет необходимости документировать,
- доступна контекстная подсказка.
Товар = Новый Структура("Наименование, Артикул, Цена", "Холодильник", "М50", 5300);
Товар.Наименование = "Утюг";
Товар.Цена = "хорошая";
Товар = Новый Структура("Вес, Рост", 80, 180);
структура Товар
обз знч Наименование: Строка
пер Артикул: Строка
пер Цена: Число
;
метод Скрипт()
пер ПервыйТовар = новый Товар("Холодильник", "М50", 5300)
пер ВторойТовар = новый Товар("Пылесос")
ВторойТовар.Артикул = "VC20"
ВторойТовар.Цена = 5000
;
Исключение
Исключение — это новый тип, содержащий набор данных, который описывает обнаруженную ошибку.
Стандартный тип Исключение
не имеет конструктора и используется только в качестве базового типа для создания ваших собственных типов исключений. Сначала с помощью инструкции исключение
вы объявляете тип своего исключения, затем можете использовать его в методах.
структура ДанныеПоСотруднику
обз пер ФИО: Строка
обз пер ТабельныйНомер: Число
;
исключение ИсключениеНеверныйФорматФайла
обз пер ИмяФайла: Строка
;
@НаСервере
метод Скрипт(Путь: Строка)
пер Результат: Массив<ДанныеПоСотруднику>
пер ФайлыСДаннымиОСотрудниках = Файлы.Найти(Путь)
для Файл из ФайлыСДаннымиОСотрудниках
попытка
Результат.Добавить(ПрочитатьДанные(Файл))
поймать Искл: ИсключениеНеверныйФорматФайла
ОбработатьИсключение(Искл)
поймать Искл: Исключение
// обработка других исключений
;
;
// ...
;
@НаСервере
метод ПрочитатьДанные(Файл: Файл): ДанныеПоСотруднику
пер Данные: ДанныеПоСотруднику
// считывание данных в структуру
// ...
выбросить новый ИсключениеНеверныйФорматФайла(
"Неверный формат. Недопустимое поле %Поле", Файл.Путь)
// ...
возврат Данные
;
метод ОбработатьИсключение(Искл: ИсключениеНеверныйФорматФайла)
// обработка
;
Другие отличия от встроенного языка: