Tab.CurLine

From SunFlurry wiki
Jump to: navigation, search
  CurLine (Индекс текущей строки)
Объект:Таблица
Статус разработки: Реализована
Тип:Атрибут
Обращение к БД:Нет
Доступность:Чтение и запись
Визуальность:Нет

Получить индекс текущей строки таблицы (первая строка=1). Текущая строка и выбранная пользователем строка визуального объекта, привязанного к таблице, могут иметь разные значения. Текущая строка используется в функциях выборки строк таблицы Select и пр. Разрешено присваивание нулевого значения.

Синтаксис

Tab.CurLine:<Индекс текущей строки (INT)>

Возвращаемое значение

Возвращает текущий индекс строки таблицы в виде целого числа. 0 -- если строка не выбрана.

Примеры

//Пример текста обработки визуального события OnAfterEditCell
//Value -- редактируемое значение, которое пользователь пытается записать в таблицу
MainTab:=Form.MainTab.Value;
//Если не выбрана строка или столбец в визуальной таблице, не выполнять действия
If (MainTab.SelectedLine=0)Or(MainTab.SelectedColumn=0) Then
  Exit;
EndIf;
//Текущая строка = выбранная пользователем строка
MainTab.CurLine:=MainTab.SelectedLine;
//Если выбран столбец визуальной таблицы "Количество"
If MainTab.SelectedColumnName=uppercase("Количество") Then
  //Записать количество в основной объект
  MainTab.Количество:=Value;
  //Изменить введенное количество, если необходимо, процедура работает с табличной частью документа
  ПроверитьСоответствиеКоличестваНаЗапретОтгрузкиШручногоТовара(Form.Object);
  //Обновить переменную Value измененным количеством
  Value:=MainTab.Количество;
  Form.CallOnStatusChange();
EndIf;
//Пример обхода таблицы с помощью функции Select
//Осуществляется проход по документу с указанием счетов, проверяется корректность соотношения выбранных счетов
aTab.Select();
While aTab.Next() Do
  If (aTab.СчетД.Selected()=0)Or(aTab.СчетК.Selected()=0) Then
    If aTab.СчетД.Забалансовый+aTab.СчетК.Забалансовый=0 Then
      //Строка с ошибкой активизируется на экране для удобства пользователя
      aTab.SelectedLine:=aTab.CurLine;
      Box("В указанной строке документа не выбран корреспондирующий счет! Такое возможно только для забалансовых счетов!",Q_STOP);
      Exit 0;
    EndIf;
  ElseIf aTab.СчетД.Забалансовый+aTab.СчетК.Забалансовый=1 Then
    //Строка с ошибкой активизируется на экране для удобства пользователя
    aTab.SelectedLine:=aTab.CurLine;
    Box("В указанной строке документа выбраны забалансовый и обычный счета! Такие проводки запрещены!",Q_STOP);
    Exit 0;
  EndIf;
EndDo;