Есть общий модуль в УПП/УТП, называется "Ценнобразование". Вызывается например, для получения скидки:
Скидка = Ценообразование.ПолучитьСуммуСкидки(Сумма, ПроцентСкидки);
Проблема в том, что код используется во внешней обработке, которая может быть вызвана из конфигураций, которые его не имеют.
Например, пр открытии в ЗУП, программа ругается: "Переменная не определена (Ценообразование)"
Вопрос: как сделать проверку на наличие общего модуля "Ценообразование"?
Попытка/Исключение Вызвать процедуру/функцию
Ошибка возникает при открытии обработки, и Попыткой/Исключением не обрабатывается.
Выполнить("текст кода не проверяется на синтаксис");
Обычно проверяют имя конфигурации.
Егор Динин
Обработка универсальная, конфигураций море....
Petre
Спасибо, все получилось.
ОбщиеМодули = Метаданные.ОбщиеМодули;
МойМодуль = ОбщиеМодули.Найти("МойМодуль");
Если МойМодуль <> Неопределено Тогда
//...
КонецЕсли;
ОбщиеМодули = Метаданные.ОбщиеМодули;
МойМодуль = ОбщиеМодули.Найти("МойМодуль");
Если МойМодуль <> Неопределено Тогда
//...
КонецЕсли;
Если Метаданные.ОбщиеМодули.Найти("МойМодуль") <> Неопределено Тогда
//...
КонецЕсли;
Если ОбщегоНазначения.ОбщийМодуль("МойМодуль") <> Неопределено Тогда
//...
КонецЕсли;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua