1С 8.3 Метод существует
Данные > Примеры кода 1С > 1С 8.3 Описание типов
Перейти в раздел примеры кода 1С 8.3:
Метод существует в 1С 8.3:
// Функция определяет существование метода объекта
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/56
//
// Параметры:
// Объект - Произвольный
// ИмяМетода - Строка
//
// Возвращаемое значение:
// Булево - Существует ли метод объекта
Функция МетодСуществует(Знач Объект, Знач ИмяМетода) Экспорт
ШаблонКода = "Объект.%1(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
Алгоритм = СтрШаблон(ШаблонКода, ИмяМетода);
Попытка
//@skip-check server-execution-safe-mode, module-unused-local-variable
НеобработанныйРезультат = Вычислить(Алгоритм);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Если СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "Значение не является значением объектного типа") Тогда
Возврат Ложь;
ИначеЕсли ИнформацияОбОшибке.Описание = "Слишком много фактических параметров" Тогда
Возврат Истина;
ИначеЕсли СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "Обращение к процедуре объекта как к функции") Тогда
Возврат Истина;
ИначеЕсли СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "Метод объекта не обнаружен") Тогда
Возврат Ложь;
Иначе
НеобработанныйРезультат = ИнформацияОбОшибке.Описание;
КонецЕсли;
КонецПопытки;
//На всякий случай
ТекстИсключения = "Проверяемый метод ""%1"" объекта ""%2"" типа ""%3"" содержит неопределенное число параметров и не может быть проверен!
|Результат выполнения: %4";
ТекстИсключения = СтрШаблон(ТекстИсключения, ИмяМетода, Объект, ТипЗнч(Объект), НеобработанныйРезультат);
ВызватьИсключение ТекстИсключения;
КонецФункции
// MIT License
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
// merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/56
//
// Параметры:
// Объект - Произвольный
// ИмяМетода - Строка
//
// Возвращаемое значение:
// Булево - Существует ли метод объекта
Функция МетодСуществует(Знач Объект, Знач ИмяМетода) Экспорт
ШаблонКода = "Объект.%1(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)";
Алгоритм = СтрШаблон(ШаблонКода, ИмяМетода);
Попытка
//@skip-check server-execution-safe-mode, module-unused-local-variable
НеобработанныйРезультат = Вычислить(Алгоритм);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Если СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "Значение не является значением объектного типа") Тогда
Возврат Ложь;
ИначеЕсли ИнформацияОбОшибке.Описание = "Слишком много фактических параметров" Тогда
Возврат Истина;
ИначеЕсли СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "Обращение к процедуре объекта как к функции") Тогда
Возврат Истина;
ИначеЕсли СтрНачинаетсяС(ИнформацияОбОшибке.Описание, "Метод объекта не обнаружен") Тогда
Возврат Ложь;
Иначе
НеобработанныйРезультат = ИнформацияОбОшибке.Описание;
КонецЕсли;
КонецПопытки;
//На всякий случай
ТекстИсключения = "Проверяемый метод ""%1"" объекта ""%2"" типа ""%3"" содержит неопределенное число параметров и не может быть проверен!
|Результат выполнения: %4";
ТекстИсключения = СтрШаблон(ТекстИсключения, ИмяМетода, Объект, ТипЗнч(Объект), НеобработанныйРезультат);
ВызватьИсключение ТекстИсключения;
КонецФункции
// MIT License
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
// (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
// merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник