0
sergqwert
01.03.21
✎
14:20
|
В обработке возникает ошибка. ВнешняяОбработка.ФакториалЧисла.Форма.Форма.Форма(26,16)}: Процедура или функция с указанным именем не определена (ФакториалР)
Сообщить("" + <<?>>ФакториалР(Объект.ЗаданноеЧисло) + " - Рекурсия: " + (ТекущаяДата()-ВремяНачало) + " сек."); (Проверка: Сервер). Как избавиться от этого?
&НаСервере
Процедура ВычислитьНаСервере()
РассчитатьФакториал();
КонецПроцедуры
&НаКлиенте
Процедура Вычислить1(Команда)
ВычислитьНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьФакториал()
Если Цел(Объект.ЗаданноеЧисло) <> Объект.ЗаданноеЧисло Тогда
Сообщить("Задано не целое число!");
Возврат;
КонецЕсли;
Если Объект.ЗаданноеЧисло < 0 Тогда
Сообщить("Задано отрицательное число!");
Возврат;
КонецЕсли;
ВремяНачало = ТекущаяДата();
Сообщить("" + ФакториалР(Объект.ЗаданноеЧисло) + " - Рекурсия: " + (ТекущаяДата()-ВремяНачало) + " сек.");
КонецПроцедуры
В модуле обработки такая функция:
Перем СоответствиеФакториал Экспорт;
//рекурсия
&НаКлиенте
Функция ФакториалР(ЧислоN) Экспорт
Результат = СоответствиеФакториал.Получить(ЧислоN);
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
Возврат ?(ЧислоN = 0, 1, ЧислоN * ФакториалР(ЧислоN - 1));
КонецФункции
СоответствиеФакториал = Новый Соответствие;
СоответствиеФакториал.Вставить(1,1);
|
|