Установить курсор на нужную строку в 1с 8.3 Управляемая форма

1. motiask 15.01.20 16:25 Сейчас в теме
Добрый день. Управляемые формы.
Есть форма. На форме Таблица Значений.
Обработчик события ТЗ => Выбор


&НаКлиенте
Процедура ТЗ_Выводим_ТоварыНаСкладахВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

ВремТекущаяСтрока = ВыбраннаяСтрока;// сохраняем значение выбранной строки



Оповещение = Новый ОписаниеОповещения("ПослеВводаКоличества", ЭтотОбъект,СтруктураДанных);
ПоказатьВводЧисла(Оповещение, 1, "Введите количество", 15, 2);

КонецПроцедуры

Запускаю оповещение. При завершении Оповещение ТЗ обновляется :

Врем_ТЗ = РеквизитФормыВЗначение("ТЗ");
...........
ЗначениеВРеквизитФормы(Врем_ТЗ,"ТЗ");

т.е. таблица значений изменилась.

Как мне установить курсор обратно на ту же строку???
По теме из базы знаний
Найденные решения
8. soft_wind 15.01.20 17:08 Сейчас в теме
ээээ
у меня так работает

...
Строки = ТЗ.НайтиСтроки(СтруктураПоиска);
Если Строки.Количество() >0 Тогда
Элементы.ТЗ.ТекущаяСтрока = Строки[0].ПолучитьИдентификатор();
КонецЕсли;
...
2. Sashares 34 15.01.20 16:39 Сейчас в теме
(1) Вариант, не использовать РеквизитФормыВЗначение и ЗначениеВРеквизитФормы не предлагать?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 15.01.20 16:39 Сейчас в теме
(1) Вариант, не использовать РеквизитФормыВЗначение и ЗначениеВРеквизитФормы не предлагать?
3. motiask 15.01.20 16:44 Сейчас в теме
Мне нужна работать с ТЗ на Форме. т.е. добавлять, удалять, сворачивать. Мне нужно как-то заново получить текущую строку.

Т.е. в Событии Выбор я могу указать : Элементы.ТЗ.ТекущаяСтрока = <Значение>

НО! я вышел уже с процедуры и данный метод не работает.
4. Sashares 34 15.01.20 16:49 Сейчас в теме
(3) Запоминать значения ключевых реквизитов выбранной строки, потом искать нужную строку и делать ее текущей.
5. motiask 15.01.20 16:54 Сейчас в теме
Так и есть. Значение текущей строки я записал. Но как мне заново активировать на форме ТЗ?
7. Sashares 34 15.01.20 17:07 Сейчас в теме
(5)Если нажимать кнопку Ответить, то в тексте сообщения ответа появляется в скобках номер сообщения, например - (5), и приходит уведомление об ответе на сообщение.

Значение текущей строки я записал.


Какое еще значение текущей строки, что за бред?
Вы сохраняете идентификатор строки.
При использовании метода ЗначениеВРеквизитФормы идентификаторы перезаполняются другими значениями. И смысла в сохранении идентификатора в данном случае нет.

Прочитайте еще раз, что я написал...
Значения реквизитов колонок выбранной строки сохранять, чтобы ее можно было потом найти.
6. dakork 33 15.01.20 17:03 Сейчас в теме
Попробуй так:

СтруктураПоиска = Новый Структура("Ключ", Значение);

Строки = ТЗ.НайтиСтроки(СтруктураПоиска);

Элементы.ТЗ.ТекущаяСтрока = ТЗ[Строки[0].НомерСтроки-1].ПолучитьИдентификатор();
8. soft_wind 15.01.20 17:08 Сейчас в теме
ээээ
у меня так работает

...
Строки = ТЗ.НайтиСтроки(СтруктураПоиска);
Если Строки.Количество() >0 Тогда
Элементы.ТЗ.ТекущаяСтрока = Строки[0].ПолучитьИдентификатор();
КонецЕсли;
...
9. dakork 33 15.01.20 17:09 Сейчас в теме
(8)и у меня примерно так же. см (6)
10. Sashares 34 15.01.20 17:09 Сейчас в теме
11. soft_wind 15.01.20 17:19 Сейчас в теме
(10) а что это - вот это?
ТЗ[Строки[0].НомерСтроки-1]

у ТЗ на форме вроде нет поля НомерСтроки, да и с получением по индексу в упр.формах, просто празоник
12. Sashares 34 15.01.20 17:36 Сейчас в теме
(11)Тоже интересно, что это и зачем.
13. dakork 33 15.01.20 17:49 Сейчас в теме
(11)
Строки[0].НомерСтроки-1
Когда-то я столкнулся с аналогичной задачей и решил её таким образом, но сейчас не помню почему именно так написал код. Поле НомерСтроки у меня было
14. soft_wind 15.01.20 17:52 Сейчас в теме
(13) возможно это вариант позиционирования связанный с Табличной частью? а не с ТЗ!
15. dakork 33 15.01.20 17:54 Сейчас в теме
(14)Совершенно верно. Я просто немного подправил код, под ТЗ, когда сюда выкладывал
16. LechatS 02.04.21 13:25 Сейчас в теме
У меня динамическая ТЗ ТЗДвижение.
В таком варианте нормально работает отрисовка при изменении, добавлении, удалении строк на форме.

&НаКлиенте
Процедура ПриИзмененииТЗДвижения(Элемент)
НомерСтроки = ТЗдвижение.Индекс(ТЗдвижение.найтипоидентификатору(Элемент.ТекущаяСтрока));

ПриИзмененииТЗДвиженияНаСервере(Элемент.ТекущийЭлемент.Имя, НомерСтроки );

Элементы.ТЗДвижение.ТекущаяСтрока = ТЗДвижение[НомерСтроки].ПолучитьИдентификатор();
КонецПроцедуры

&НаСервере
Процедура ПриИзмененииТЗДвиженияНаСервере(пИмя, пНомерСтроки)
ТЗ_движение = РеквизитФормыВЗначение("ТЗДвижение");

....

ЗначениеВРеквизитФормы(ТЗ_движение, "ТЗДвижение");

КонецПроцедуры
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот