![]() |
![]() |
|
Событие до события Выбор в ТЧ документа | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
20.08.15
✎
18:00
|
Доброго всем времени суток!
Есть необходимость при выборе пользователем строки в ТЧ документа произвести некоторые действия используя данные строки, которая была текущей до выбора. Как получить данные предыдущей строки? |
|||
1
Ёпрст
гуру
20.08.15
✎
18:06
|
Запоминай её в переменной
|
|||
2
НоваяВолна
20.08.15
✎
18:10
|
(0)В том то и дело в какой момент запоминать. При первом открытии документа ТЧ может не содержать не одной строки. Потом строки заполняются, и при перевыборе строки надо определить предыдущую.
|
|||
3
НоваяВолна
20.08.15
✎
18:13
|
(1) При выборе строки срабатывает событие Выбор ТЧ... и текущей строкой становится выбранная. Тут я конечно могу запомнить ее в переменную, а потом использовать. Но как быть с самой первой строкой?
|
|||
4
Михаил Козлов
20.08.15
✎
18:33
|
У ТЧ есть реквизит НомерСтроки (в порядке, как они видны).
Предыдущая строка = ТЧ.Получить(ЭлементФормы.ТекущаяСтрока.НомерСтроки-2), если строк>=2 и предыдущей нет, в противном случае. |
|||
5
НоваяВолна
20.08.15
✎
18:38
|
(4) Может быть текущей пятая строка например, а пользователь выбирает вторую. И так я ничего толкового не получу.
|
|||
6
Михаил Козлов
20.08.15
✎
18:42
|
"...а пользователь выбирает вторую.". При активизации строки текущей будет вторая.
Или я чего-то не понял. |
|||
7
НоваяВолна
20.08.15
✎
18:47
|
(6) текущая будет вторая, это да. А мне надо при выборе этой второй строки произвести действия по данным предыдущей (пятой в данном примере) строки
|
|||
8
Злопчинский
20.08.15
✎
18:49
|
а я хз как это в 8-ке..
в клюшках делается тривиально: на форму функция ложится, в функции проверяется текущая строка, сравнивается с переменнной в которой запомнена текущая строка при предыдущем срабатывании функции... фсе.. |
|||
9
НоваяВолна
20.08.15
✎
18:50
|
И кстати дополнительный вопрос. Как определить заполнена ли табличная часть (есть ли в ней вообще строки). Это уже не относится к выбору строки.
|
|||
10
Михаил Козлов
20.08.15
✎
18:54
|
(7) В этом контексте непонятно, что такое предыдущая: на которой стоял курсор до активизации текущей?
Тогда можно попробовать сесть на событие ПриАктивизацииСтроки: 1. Получить значение переменной формы (скажем ПредыдущаяТекущая) и с этим значением проделать нужные действия. 2. ПредыдущаяТекущая = ЭлементФормы.ТекущаяСтрока. (9) ТЧ.Количество()>0. |
|||
11
НоваяВолна
20.08.15
✎
18:57
|
(0) В общем вся задача целиком выглядит так. В документе две ТЧ, данным каждой строки первой ТЧ соответствуют данные второй ТЧ. Данные из второй ТЧ я записываю в регистр сведений. При выборе строки из первой ТЧ из регистра должны заполнятся строки второй ТЧ.
|
|||
12
Defender aka LINN
20.08.15
✎
19:00
|
(2) "При первом открытии документа ТЧ может не содержать не одной строки" - ну вот ты тогда и скажи - какая строка при этом текущая?
А вообще - есть событие "ПриАктивизацииСтроки", чего тебе еще надо? |
|||
13
НоваяВолна
20.08.15
✎
19:03
|
(12) В том то и дело, что если я ПриОткрытии буду пытаться взять ТекущуюСтроку, то будет ошибка, в случае если ТЧ пустая. Но это уже я решил.
|
|||
14
Михаил Козлов
20.08.15
✎
19:11
|
(11) Вместо второй ТЧ (она не нужна) можно на форму поместить табличное поле с источником данных РС.НаборЗаписей.
Нужно только аккуратно организовать работу по чтению/записи этого набора при изменении текущей в 1-ой ТЧ. Правда, это несколько "трудоемко" и отменить редактирование набора будет нельзя. С набором записей можно посмотреть как работают в типовых с контактной информацией. Либо прямо работать с РС.Список: редактирование записей РС будет происходить непосредственно. При активизации строки в 1-ой ТЧ нужно будет только устанавливать отбор для этого списка РС. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |