В языке «1С:Предприятия» не использовались обобщенные системные методы.
Теперь в языке «Элемента» применяются обобщенные системные методы – это методы, имеющие тип-параметр, влияющий на типизацию метода.
Тип параметра метода накладывает опциональное ограничение на тип аргумента, с которым вызывается метод. То есть метод может быть вызван для параметра (параметров), типы которых определяются типом-параметром метода. Таким же образом тип результата метода может быть связан с типом параметра метода.
При вызове системного обобщенного метода тип-параметр указывается в угловых скобках после имени метода без пробела. Причем этот тип может быть составным. Если тип метода может быть выведен из контекста (по параметрам), то, по аналогии с обобщенными типами, его явно указывать не требуется. Например:
пер Переменная1 = Макс<Число>(11, 7, 13) //результат = 13
пер Переменная2 = Макс<Строка|Число>("90", "66", "82") //результат = «90»
пер Переменная3 = Макс("сто", "три", "двадцать") //результат = «три»
Нужно учитывать, что на момент написания данной книги нет возможности создавать собственные обобщенные методы. Обобщенные методы могут быть только в системных экземплярах. В приведенном выше примере это метод глобального контекста Макс().
Можно привести еще следующие примеры обобщенных системных методов:
ЧитаемоеСоответствие<тип-ключа, тип-значения>
.ПолучитьИлиУмолчание<ТипУмолчания>(
Ключ: тип-ключа,
Умолчание: тип-значения|ТипУмолчания
): тип-значения|ТипУмолчания
Здесь тип-параметр ТипУмолчания определяет тип значения, которое будет возвращено в том случае, если читаемое соответствие не содержит указанного ключа.
ЗапланированныеЗадания
.Создать<Type1, Type2 >(
Обработчик: (Type1, Type2)->ничто,
Параметр1: Type1,
Параметр2: Type2
)
Здесь типы-параметры Type1, Type2 и т. д. определяют типы значений параметров, которые передаются в метод, который будет вызван для выполнения запланированного задания.
ФоновыеЗадания
.Выполнить<Type1, Type2 >(
Обработчик: (Type1, Type2)->ничто,
Параметр1: Type1,
Параметр2: Type2
)
Здесь типы-параметры Type1, Type2 и т. д. определяют типы значений параметров, которые передаются в метод, который будет вызван для выполнения фонового задания.