Вход | Регистрация

1С:Предприятие ::

Метки: 

Универсальный код для разный конфигураций

Я
   Slon747
 
15.12.17 - 16:46
8.3
Пытаюсь создать универсальный код для 2-х конфигураций.
Но даже если условие не соблюдается, всё равно ругается на отсутствие общего модуля:

Функция ПолучитьКурсВалюты(Валюта, Дата) Экспорт

    Если УТ_11() Тогда
        Возврат РаботаСКурсамиВалют.ПолучитьКурсВалюты(Валюта, Дата);
    Иначе
        Возврат МодульВалютногоУчета.ПолучитьКурсВалюты(Валюта, Дата);
    КонецЕсли;

КонецФункции


Есть ли удобный вариант обхода?
Может как-то директивой препроцессора или еще как?
 
 
   lodger
 
1 - 15.12.17 - 16:48
Выполнить (Execute)
Синтаксис:
Выполнить(<Строка>)

Параметры:
<Строка>
Строка, содержащая текст исполняемого кода.

Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.

Примечание:
В режиме запуска веб-клиент оператор не поддерживается, при его вызове будет сгенерировано исключение.

В режимах запуска мобильного приложения оператор не поддерживается в операционной системе iOS.
   lodger
 
2 - 15.12.17 - 16:49
Функция ПолучитьКурсВалюты(Валюта, Дата) Экспорт

    Если УТ_11() Тогда
        Выполнить ("Структура = РаботаСКурсамиВалют.ПолучитьКурсВалюты(Валюта, Дата)");
    Иначе
        Выполнить ("Структура = МодульВалютногоУчета.ПолучитьКурсВалюты(Валюта, Дата)");
    КонецЕсли;

Возврат Структура;
КонецФункции
   lodger
 
3 - 15.12.17 - 16:50
что-то в этом духе. без отладчика точнее не скажу.
   mehfk
 
4 - 15.12.17 - 16:50
(2) см в СП "Вычислить"
   lodger
 
5 - 15.12.17 - 16:51
(4) ну или так.
выполнить для процедур
вычислить для функций
   AlexTim03
 
6 - 15.12.17 - 16:52
В типовых посмотри, как делают.
Общий модуль - это тоже объект и можно проверить его наличие
   nordbox
 
7 - 15.12.17 - 16:55
(0)> всё равно ругается на отсутствие общего модуля:
он там есть?
   nordbox
 
8 - 15.12.17 - 16:56
Даже при отсутствие компилятор то все равно проверяет условие компилирует его
   nordbox
 
9 - 15.12.17 - 16:56
+8 при отсутствии общего модуля
   Мыш
 
10 - 15.12.17 - 17:04
(0) МодульПолученияКурсовВалют = ОбщегоНазначения.ОбщийМодуль("МойОбщийМодуль");
 
 Рекламное место пустует
   hhhh
 
11 - 15.12.17 - 17:07
(10) это ничем не поможет. то же самое. в конфах может не быть ОбщегоНазначения.ОбщийМодуль()
   Мыш
 
12 - 15.12.17 - 17:08
(11) Это поможет для типовых конфигураций. Не для всех, да.
   nordbox
 
13 - 15.12.17 - 17:09
Мыш, да там другое, РАЗНЫЕ конфы, в одной модуль есть, в другой нет, а ТС думает что при отсутствии модуля, компилятор проглотит хотелку
ТС народным творчеством занимается наверное
   Мыш
 
14 - 15.12.17 - 17:11
(13) Я понял, что разные. Одна из них УТ 11, в которой используется БСП. Про вторую ничего не сказано. Т.е. допустима БП, например.
   Slon747
 
15 - 15.12.17 - 17:17
(5) Спасибо. Работает.
   D3O
 
16 - 15.12.17 - 18:15
(0) в БСП (и всех типовых) есть ОбщегоНазначения.ПодсистемаСуществует(ИмяПодсистемы)

а дальше используешь 
Модуль = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля)
Модуль.вызовНужнойФункции


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует