|
|
|
8.2 Как активировать строку в Таблице на форме? | ☑ | ||
|---|---|---|---|---|
|
0
kimba
08.02.10
✎
00:32
|
Как активировать строку в Таблице на форме?
Более конкретная задача такая: Есть ТЗ на форме, она заполнена кроме одной колонки. Пользователь должен её заполнить, он активизирует первую строчку, вводит значение, жмет enter, после чего должна активизироваться строка №2, пользователь опять вводит и жмет enter ... и т.д. Не могу найти как активизировать следующую строку после окончания ввода. |
|||
|
1
kimba
08.02.10
✎
02:21
|
апп
|
|||
|
2
kimba
08.02.10
✎
08:47
|
кто нибудь!
|
|||
|
3
kimba
08.02.10
✎
09:57
|
ну кто нибудь!
|
|||
|
4
kimba
08.02.10
✎
10:42
|
ну хоть кто нибудь!
|
|||
|
5
kimba
08.02.10
✎
12:20
|
Пробовал на клиенте сделать следующее:
Процедура ИсследованияРезультатПриИзменении(Элемент) Элементы.Таблица.ТекущаяСтрока = Элементы.Таблица.ТекущаяСтрока + 1; //ТекущаяСтрока это число. КонецПроцедуры Получается очень странная картина: нижняя строка становится активной, но активная ячейка всеравно остаётся та, которую только что изменили, см. скриншот в личке. |
|||
|
6
ll13
08.02.10
✎
12:37
|
В свойствах Таблицы поставь РежимВыделенияСтроки - Строка
|
|||
|
7
kiruha
08.02.10
✎
12:47
|
УправляемаяФорма (ManagedForm)
ТекущийЭлемент (CurrentItem) Использование: Чтение и ЗАПИСЬ. Описание: Тип: ГруппаФормы; ТаблицаФормы; ПолеФормы; КнопкаФормы. Содержит текущий активный элемент управляемой формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент |
|||
|
8
kimba
08.02.10
✎
13:00
|
(6) ничего не дало, все так же
(7) мне нужно ячейку таблицы активизировать ТекущийЭлемент не подходит. у Таблицы кстати есть тоже ТекущийЭлемент, но там можно только колонку (элемент) активизировать |
|||
|
9
kiruha
08.02.10
✎
13:10
|
(8)
Элементы.ГруппаЗапасы.ПодчиненныеЭлементы.Запасы.ТекущийЭлемент=НужноеПолеФормы; ? |
|||
|
10
kiruha
08.02.10
✎
13:12
|
Элементы.Таблица.ТекущийЭлемент=НужноеПолеФормы;
|
|||
|
11
kimba
08.02.10
✎
13:20
|
(9) и как мне ячейку в таблице ативизировать???
Элементы.Таблица.ТекущийЭлемент = Элементы.НеобходимаяКолонка; После этого тоже самое что на скрине, не становится активной ячейка следующей строки, даже если так писать: Элементы.Таблица.ТекущаяСтрока = Элементы.Таблица.ТекущаяСтрока + 1; Элементы.Таблица.ТекущийЭлемент = Элементы.НеобходимаяКолонка; |
|||
|
12
kimba
08.02.10
✎
14:03
|
может не понятно объяснил:
Пользователь должен спозиционироваться на первой строке в колонке для заполнения. Далее вводит число, жмет enter, число enter, число enter... таким образом быстро заполняется вся колонка ТЗ. |
|||
|
13
kiruha
08.02.10
✎
14:11
|
Проблема не активизации - активизацию проводит
Элементы.Таблица.ТекущийЭлемент=НужноеПолеФормы; Мне лично не понятно как получить НужноеПолеФормы - не нашел методов |
|||
|
14
kimba
08.02.10
✎
14:13
|
(13) Я тоже не нашел)
|
|||
|
15
kiruha
08.02.10
✎
15:21
|
Апну что ли )
Самому интересно. Как получить поле формы таблицы , например из 3 строки 3-го столбца ? |
|||
|
16
kimba
08.02.10
✎
16:41
|
кстати в веб режиме данный кусок кода ваще глючит:
Элементы.Таблица.ТекущаяСтрока = Элементы.Таблица.ТекущаяСтрока + 1; Элементы.Таблица.ТекущийЭлемент = Элементы.НеобходимаяКолонка; Выдает кучу пустых сообщений и т.д. |
|||
|
17
kimba
08.02.10
✎
17:55
|
ну кто там в 8.2 рулит?
|
|||
|
18
azernet
08.02.10
✎
18:07
|
НеобходимаяСтрока = ЭлементыФормы.Таблица.Получить(Индекс(Элементы.Таблица.ТекущаяСтрока)+1);
Элементы.Таблица.ТекущаяСтрока = НеобходимаяСтрока; что то в этом роде должно заработать |
|||
|
19
kiruha
08.02.10
✎
18:22
|
Что есть Получить() у ТаблицаФормы ?
Что есть Индекс() ? |
|||
|
20
kimba
08.02.10
✎
19:02
|
странный код какой-то
Индекс() - что это??? Пальцем в небо? |
|||
|
21
kimba
08.02.10
✎
21:04
|
ап
|
|||
|
22
kimba
08.02.10
✎
22:23
|
ыва ыва
|
|||
|
23
mrBlutig
08.02.10
✎
22:23
|
Эт как выделить след строку, а как сделать активным поле след строки, неизвестно.
Элементы.ТЗ.ТекущаяСтрока =ТЗ.Получить(ТЗ.Индекс(ТЗ.НайтиПоИдентификатору(Элементы.ТЗ.ТекущаяСтрока))+1).ПолучитьИдентификатор(); |
|||
|
24
kimba
08.02.10
✎
22:33
|
(23) Зачем так сложно? работает и так:
Элементы.Исследования.ТекущаяСтрока = Элементы.Исследования.ТекущаяСтрока + 1; На клиенте Элементы.Исследования.ТекущаяСтрока это число, я уже писал об этом. Вопрос остается открытым, строка выделяется, но активность к ней не переходит! |
|||
|
25
mrBlutig
08.02.10
✎
22:42
|
В текущей строке хранится идентификатор строки, что не совсем одно и тоже что индекс, попробуй поменять местами строки в ТЗ.
|
|||
|
26
kimba
08.02.10
✎
22:49
|
(25) Зачем мне их менять? Чтобы проверить индекс чтоли?
там кстати строгая сортировка, местами строки менять нельзя. |
|||
|
27
mrBlutig
08.02.10
✎
22:55
|
(26) ну имей в виду. А с активацией поля думаю эт недоделка 1с-гов, имеет смысл написать в саппорт.
|
|||
|
28
kimba
08.02.10
✎
23:19
|
(27) это плохо, надеюсь не придется ждать пока они доделают...
|
|||
|
29
kiruha
08.02.10
✎
23:37
|
Если установить отбор по нужной строке,
а потом отбор отменить - нужная строка станет активной |
|||
|
30
kimba
08.02.10
✎
23:43
|
(29) идея не плохая, но это слишком жестока для пользователя, бабушка в шоке будет от постоянно появляющихся и исчезающих строк.
|
|||
|
31
kiruha
08.02.10
✎
23:45
|
По крайней мере так можно спозиционироваться в журнале или справочнике
|
|||
|
32
kiruha
08.02.10
✎
23:52
|
Кстати не уверен что визуально это будет заметно
|
|||
|
33
kiruha
09.02.10
✎
00:25
|
Вот так работает.
И обновления нет ))) &НаКлиенте Процедура ЗапасыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) СтрОтбора= Новый ФиксированнаяСтруктура("НомерСтроки", 1); Элементы.Запасы.ОтборСтрок = СтрОтбора; СтрОтбора= Новый ФиксированнаяСтруктура; Элементы.Запасы.ОтборСтрок = СтрОтбора; КонецПроцедуры |
|||
|
34
kiruha
09.02.10
✎
00:28
|
Точнее судя по замерам идет обращение к серверу, но только 1 раз
|
|||
|
35
kimba
09.02.10
✎
01:48
|
обращение к серверу - не гут, на вебе притормаживать будет.
|
|||
|
36
kiruha
09.02.10
✎
09:05
|
(35)
Ничуть не больше чем при изменении номенклатуры - также одно обращение и обновление видимых элементов |
|||
|
37
kimba
09.02.10
✎
23:24
|
&НаКлиенте
Процедура ИсследованияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) СледСтрока = Элементы.Исследования.ТекущиеДанные.НомерСтр + 1; СтрОтбора = Новый ФиксированнаяСтруктура("НомерСтр", СледСтрока); Элементы.Исследования.ОтборСтрок = СтрОтбора; Элементы.Исследования.ОтборСтрок = Неопределено; Элементы.Исследования.ИзменитьСтроку(); КонецПроцедуры Так работает, только в вебе немного притормаживает, но зато не моргает как в тонком. Еще одна фишка выяснилась: При таком переходе на след строку впринципе работает, но только в вебе, в тонком приходится действовать так: вводишь число, ентер, переходит фокус на след строку, опять приходится ентер нажимать чтобы начать редактирование и т.д. тогда как в вебе неприходится 2 раза подряд ентер нажимать. В тонком короче не срабатывает данная строка: Элементы.Исследования.ИзменитьСтроку(); |
|||
|
38
kimba
09.02.10
✎
23:28
|
Может еще у кого есть варианты?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |