Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Поставить курсор в нужное место таблицы

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.