1С 8.3 Метод существует - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Метод существует

Данные > Примеры кода 1С > 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.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 03.08.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому