Рекурсивный вызов ПриАктивизацииСтроки()

Рекурсивный вызов ПриАктивизацииСтроки()

Из синтакс-помощника:

ТаблицаФормы (FormTable)
ПриАктивизацииСтроки (OnActivateRow)

Синтаксис:

ПриАктивизацииСтроки()

Описание:

Вызывается при активизации строки таблицы.

Примечание:

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

Однако если очень хочется, то можно вызывать из этой процедуры необходимый серверный обработчик. Сделать это можно следующим образом: нужно самостоятельно отслеживать рекурсию. Создавать клиентскую переменную модуля, хранить в ней текущую строку. Если текущая строка отличается от того, что в переменной – делать серверный вызов. Если не отличается – не делать.

Вот пример кода:

&НаКлиенте
Перем ТекущиеДанныеПоказатель;
&НаКлиенте
Перем ТекущиеДанныеБА;

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
 
 ТекущиеДанные = Элементы.Список.ТекущиеДанные;
 Если ТекущиеДанные <> Неопределено Тогда
  Если ТекущиеДанныеПоказатель<> ТекущиеДанные.Показатель ИЛИ ТекущиеДанныеБА<>ТекущиеДанные.БА Тогда
   ТекущиеДанныеПоказатель = ТекущиеДанные.Показатель;
   ТекущиеДанныеБа = ТекущиеДанные.БА;
   Показатель = ТекущиеДанные.Показатель;
   УстановитьОтборНПА(Показатель);
   ЗаполнитьСуммыПоПоказателю(ТекущиеДанные.Показатель, ТекущиеДанные.БА);
  КонецЕсли;
 КонецЕсли;
 
КонецПроцедуры