|
Поставить курсор в нужное место таблицы | ☑ | ||
---|---|---|---|---|
0
ЗлаяЗая
27.07.20
✎
11:25
|
Есть обработка с табличным полем.
Стоим, например, на строке 20. Меняем что-то в ячейке. После этого отрабатывает процедура ТаблПриОкончанииРедактирования. В этой процедуре пробегаем по таблице и меняем что-то в некоторых строках, например, 21-25. И таблица опять выводится на экран. При этом курсор стоит снова на 1 строке. Как вернуть его на строку 20? |
|||
1
acht
27.07.20
✎
11:36
|
(0) Примечание:
В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере, а также изменять свойства, которые могут привести к серверному вызову. |
|||
2
NcSteel
27.07.20
✎
11:37
|
(0) Текущая строка - вестимо.
|
|||
3
Галахад
гуру
27.07.20
✎
11:40
|
(1) ОФ же.
|
|||
4
acht
27.07.20
✎
11:41
|
(3) Почему?
|
|||
5
ЗлаяЗая
27.07.20
✎
11:41
|
Формы Обычные
Я спрашивала- ЭлементыФормы.Табл.ТекущаяСтрока. Пишет, что неопределено |
|||
6
acht
27.07.20
✎
11:42
|
(5) Дык не читать, писать надо
|
|||
7
ЗлаяЗая
27.07.20
✎
11:43
|
Задам вопрос по другому.
Я стою на строке. КАк узнать - на какой? |
|||
8
ЗлаяЗая
27.07.20
✎
11:46
|
ТекущуюКолонку показывает. А строку-нет.
|
|||
9
Ёпрст
27.07.20
✎
11:48
|
(7) ЭлементыФормы.ТвояТабличка.ТекущиеДанные
|
|||
10
Ёпрст
27.07.20
✎
11:50
|
(0)
ЭлементыФормы.ТвояТабличка.ТекущаяСтрока = НужнаяСтрока; //НужнаяСтрока - это именно строка таблички, а не её "номер" |
|||
11
ЗлаяЗая
27.07.20
✎
13:12
|
НужнаяСтрока= ЭлементыФормы.Табл.ТекущиеДанные;
..... ЭлементыФормы.Табл.ТекущаяСтрока = НужнаяСтрока; ругается Отсутствует ключ строки |
|||
12
Ёпрст
27.07.20
✎
13:31
|
(11) ясен пень. Присваивать нужно строку таблички...
так, например ЭлементыФормы.Табл.ТекущаяСтрока = Табл[0]; |
|||
13
ЗлаяЗая
27.07.20
✎
13:58
|
СтрокаНаКоторойСтоим= ЭлементыФормы.Табл.ТекущиеДанные.НомерСтроки;
... ЭлементыФормы.ТаблВыпуск.ТекущаяСтрока=Табл[СтрокаНаКоторойСтоим]; пишет, что Ошибка при установке значения атрибута контекста (ТекущаяСтрока) Невозможно изменить текущую строку |
|||
14
Ёпрст
27.07.20
✎
14:02
|
(13) естественно.. НомерСтроки-1 надоть
|
|||
15
ЗлаяЗая
27.07.20
✎
14:07
|
(14) пишет "Невозможно изменить текущую строку"
|
|||
16
Ёпрст
27.07.20
✎
14:11
|
(15) больше кода
И.. в какой проце ты всё это делаешь ? |
|||
17
ЗлаяЗая
27.07.20
✎
14:19
|
процедура ТаблПриОкончанииРедактирования.
СтрокаНаКоторойСтоим= ЭлементыФормы.ТаблВыпуск.ТекущиеДанные.НомерСтроки; ТЗ=ТаблВыпуск.Скопировать(); ТаблВыпуск.Очистить(); Для каждого т ИЗ ТЗ Цикл НоваяСтрока1 =Табл.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока1,т); ....заполняются в некоторых строках значения КонецЦикла; т.к. таблица по сути заново выведена на экран, то желательно встать на ту же строку ЭлементыФормы.ТаблВыпуск.ТекущаяСтрока=ТаблВыпуск[СтрокаНаКоторойСтоим-1]; |
|||
18
ЗлаяЗая
27.07.20
✎
14:20
|
Табл=ТаблВыпуск
|
|||
19
Kesim
27.07.20
✎
14:27
|
(0) перед началом манипуляций ПолучитьИдентификатор() строки, зафиксировать в реквизит формы, после манипуляций .....текущаяСтрока = полученный ранее идентификатор, кажись так
|
|||
20
Kesim
27.07.20
✎
14:37
|
(17) только все зря видимо: таблица очищается и заполняется вновь.. а нельзя не очищая таблицу, обработать только текущую строку обработать?
|
|||
21
acht
27.07.20
✎
14:37
|
(17) Какой негодяй мешает тебе запустить цикл по самой табличной части?
Для Каждого Т Из ТаблВыпуск Цикл |
|||
22
ЗлаяЗая
27.07.20
✎
14:48
|
(20) обработать нужно не только текущую, а еще другие строки таблицы, по определенному критерию
|
|||
23
Kesim
27.07.20
✎
14:50
|
(22) если не добавить и удалить(кардинально) тогда вопрос тот же почему бы не обрабатывать существующую таблицу по определенному критерию?
|
|||
24
acht
27.07.20
✎
14:52
|
(22) Ну хорошо, уговорила
Для Индекс = 1 По ТаблВыпуск.Количество() - 2 Цикл ТаблВыпуск[Индекс].ВажноеПоле = ТаблВыпуск[Индекс - 1].ВажноеПоле + ТаблВыпуск[Индекс + 1].ВажноеПоле; КонецЦикла |
|||
25
ЗлаяЗая
27.07.20
✎
14:54
|
Получилось :)
|
|||
26
ЗлаяЗая
27.07.20
✎
14:54
|
(21) наследство, однако.
передела просто проходом по таблице |
|||
27
lEvGl
гуру
27.07.20
✎
14:56
|
реализация изначально кажется кривой. встать на строку в ТП - ТП.ТекущаяСтрока = СтрокаТЧ при этом строка до манипуляций <> строка после манипуляция, т к строка До удаляется и добавленная После - разные "сущности", но их можно сопоставить по какому нибудь признаку, например по индексу в ТЧ, но гарантировать что курсор встанет как надо нельзя, т к количество срок в таблице может измениться и индекс может не дать того соответствия которое нужно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |