Заказ звонка

Закрыть

*
*
*

Как определить из какого режима запускается макрос

Страницы: 1
RSS
Как определить из какого режима запускается макрос
Добрый день
Каким образом можно определить из какого режима(окна) запущен макрос?
Есть макрос для обработки учетных карточек. Необходима возможность его запуска как в справочнике СкладскойУчет/УчетныеКарточки так и в окне РасчетныеДокументы/УчетныеДокументы(зависимый объект).
Иначе говоря, открываю РасчетныеДокументы, затем открываю для них окно зависых объектов и выбираю в качестве объекта УчетныйДокументы - Макрос нужен тут.
Открываю УчетныеДокументы - этот же макрос нужен тут.

Проблема в том, что когда открываешь окно УчетныхДокументов в качестве зависимого объекта к РасчетнымДокументам, кол-во УчетныхДокументов значительно меньше, чем в самостоятельном окне УчетныеДокументы. Из за этого макрос работает поразному )))

Дк вот, есть ли возможность определить из какого окна запущен макрос?
В данном случае, меня интересует конкретно такая возможность. Алгоритм макроса, понятно, можно доработать.

P.S. Вот скриптовые модули как то ведь привязываются к конкрентным окнам. Но сам пока я не догнал, как мне это поможет ))
Вариант 1.
Если макрос пишете для себя и заранее известен перечень режимов, из которых будет производиться запуск, то проще сделать дополнительный параметр вызова процедуры, в котором и будет указываться режим работы.

Вариант 2.
Если перечень режимов, из которых будет производиться запуск заранее неизвестен и необходимо автоматически определять режим, то средствами API можно получить активный модуль системы ActiveModule, далее привести его к одному из типов интерфейса, тем самым определив текущий интерфейс.
Спасибо за ответ
Можете пояснить пункт 1?
Каким образом можно через параметр задать режим работы?
Пишете общую процедуру c параметрами:
Код
Sub Example (Object1, mode1)

Select Case mode1
Case "Технология"
Case "Спецификация"
...
End Select

End Sub


А когда вызываете её из модуля соответсвующей формы, то передавайте нужное значение:

Код
Sub Form_Macr0_Test1 (TCSActiveModule)

Call Example (TCSActiveModule, "Спецификация")

End Sub


Примерно вот так smile;)
Круто! Спасибо, буду применять
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)