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

Вопрос: как сделать проверку на наличие общего модуля "Ценообразование"?
sava1
Попытка/Исключение Вызвать процедуру/функцию
Inkognito
Ошибка возникает при открытии обработки, и Попыткой/Исключением не обрабатывается.
Petre
Выполнить("текст кода не проверяется на синтаксис");
Егор Динин
Обычно проверяют имя конфигурации.
Inkognito
Егор Динин
Обработка универсальная, конфигураций море....
Petre
Спасибо, все получилось.
Vofka
ОбщиеМодули = Метаданные.ОбщиеМодули;
МойМодуль = ОбщиеМодули.Найти("МойМодуль");
Если МойМодуль <> Неопределено Тогда
   //...
КонецЕсли;
Kerberos
Цитата(Vofka @ 06.03.17, 15:01) необходимо зарегистрироваться для просмотра ссылки
ОбщиеМодули = Метаданные.ОбщиеМодули;
МойМодуль = ОбщиеМодули.Найти("МойМодуль");
Если МойМодуль <> Неопределено Тогда
   //...
КонецЕсли;


в конфигурациях этот код объединяют smile.gif

Если Метаданные.ОбщиеМодули.Найти("МойМодуль") <> Неопределено Тогда
   //...
КонецЕсли;


Или в БСП

Если ОбщегоНазначения.ОбщийМодуль("МойМодуль") <> Неопределено Тогда
   //...
КонецЕсли;


во 2м случае, можно еще вызывать потом модуль "по ссылке"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.