Перепривязка аргументов на уровне объектов

Для перепривязки аргументов на уровне объектов атрибуту (118) ID канала CALL нужно тем или иным способом присвоить значение, равное ID объекта базы каналов (группы с установленным флагом Загрузить). В данном контексте под ID понимается значение, указанное в фигурных скобках после ключевого слова DBG_LOAD в файле *.cnv в строке описания характеристик объекта. Например, на показанном ниже рисунке объекту Ch1 для перепривязки соответствует ID=34, объекту Ch2 – ID=35:

Аргументы канала (пусть имя канала – ch) перепривязываются по следующему алгоритму:

   Шаг1. В таблице аргументов ищется первый, который еще не участвовал в перепривязке и который привязан к любому каналу, кроме ch.

   Шаг 2. Запоминается привязка найденного аргумента.

   Шаг 3. Запомненная привязка заменяется на привязку к первому по порядку каналу объекта с указанным ID во всей таблице аргументов канала ch.

   Шаг 4. Первоначально найденному аргументу устанавливается признак его игнорирования в дальнейшей перепривязке.

   Шаг 5. Переход к шагу 1.

При перепривязке на уровне объектов для аргумента, к которому привязывается атрибут (118) ID другого канала CALL, нужно задать тип данных STRING или целочисленный 4-байтовый.

В первом случае для перепривязки в аргумент посылается имя объекта, после чего монитор сканирует базу каналов с целью поиска ID объекта по его имени, что может занять длительное время.

Во втором случае в аргумент посылается непосредственно ID объекта и время на поиск не тратится.

Кроме того, для перепривязки на уровне объектов можно использовать ГЭ Переключатель каналов (см. ГЭ ‘Переключатель каналов’ ).

При прямом задании в профайлере в атрибут (118) ID нужно послать имя объекта (с учетом регистра).

После перепривязки аргументов канал CALL меняет свое имя (атрибут 127) на имя объекта.