8.2 Как в таблице установить текущую строку программно. #478524


#0 by Mustang
Подскажите как программно установить текущую строку. Я понимаю что нужно юзать "ТекущаяСтрока", но ей присваивается не номер строки, а индекс. Тогда как получить индекс следующей строки.
#1 by Topol-M
#2 by Mustang
Строки уже сформированы (выгружены запросом). Далее нужно по ним перемещять курсор.
#3 by Шапокляк
Это как? чтоб курсор шарился по форме самостоятельно?
#4 by Mustang
Нет. Есть две кнопки. Предыдущая строка. Следующая строка.
#5 by Phace
Механизм удаления текущей строки (под свой случай думаю сам доведешь):
#6 by Aprobator
#7 by Mustang
Как получить индекс текущей строки я понимаю, а как получить индекс следующей строки (она не активна).
#8 by Aprobator
в смысле? 1 не прибавить?
#9 by Aprobator
Переход на след. строку: [1С] Элементы.Погрузки.ТекущаяСтрока = ТЗсвязаннаяСТаблПолем[ИндексТекСтроки + 1] [/С] ну еще довесить контроль на последнюю и первую строку.
#10 by Aprobator
#11 by Mustang
Таак. Чет я совсем похоже заблудился. "ТЗСвязаннаяСТаблПолем.Индекс(Элементы.Погрузки.ТекущаяСтрока)" В Индекс(...) Нужно передать строку, для того чтоб получить индекс. "Элементы.Погрузки.ТекущаяСтрока" - Содержит идентификатор текущей строки но не строку. Соответственно: "ТЗСвязаннаяСТаблПолем.Индекс(Элементы.Погрузки.ТекущаяСтрока)" = -1
#12 by Aprobator
а блин соррь. Я проглядел, что это 8.2 (. Это все по 8.1 было.
#13 by Aprobator
+ хотя должно работать. Щаз у ся на демке потестю для опыта
#14 by Phace
"под свой случай думаю сам доведешь" Не, вижу не доведешь :) -1 и +1 (с проверкой) сделать не в силах?
#15 by ll13
Элементы.СписокФайлов.ТекущаяСтрока (число) Индекс текущей строки, начинается помоему с 0 Соответственно поднять вверх Элементы.СписокФайлов.ТекущаяСтрока=Элементы.СписокФайлов.ТекущаяСтрока + 1; Проверяй на начало и конец
#16 by shuhard_серый
#17 by Mustang
Народ. Вы разницу между индексом строки и идентификатором строки различаете?
#18 by Mustang
Нет.
#19 by Mustang
1 строка может быть с идентификаторм и 300 и 400.
#20 by Phace
"Давайте я попробую объяснить вам на таблицах первого уровня (чтобы не загромождать объяснение), а вы уже сами сделаете то же самое для других таблиц. Дело в том, что таблица, которая в форме, элемент формы, и таблица, которая в реквизите (ДанныеФормыКоллекция) - это разные таблицы. Это две разные коллекции. Они, конечно, однозначно связаны между собой. То есть зная строку одной таблицы можно получить соответствующую ей строку другой таблицы. Но эта связь не такая, как вы ее себе представляете: ГлавнаяТаблицаЗначений[Элементы.ГлавнаяТаблицаЗначений.ТекущаяСтрока] ТекущаяСтрока у таблицы в форме это не индекс таблицы в реквизите. Эти две таблицы связаны через Идентификатор. У таблицы в форме идентификатор можно получить как раз через текущую строку: Идентификатор = Элементы.ГлавнаяТаблицаЗначений.ТекущаяСтрока; У таблицы в реквизите (ДанныеФормыКоллекция) есть метод НайтиПоИдентификатору(Идентификатор), который вернет вам строку, соответствующую текущей строке в таблице формы. В обратную сторону аналогично. Если вы знаете строку у таблицы в реквизите, вы можете найти (или установить курсор на) строку, соответствующую ей в таблице в форме. У строки таблицы в реквизите (ДанныеФормыЭлементКоллекции) есть метод ПолучитьИдентификатор: Идентификатор = СтрокаГлавнойТаблицыЗначений.ПолучитьИдентификатор; А у таблицы в форме - известное уже свойство ТекущаяСтрока: Элементы.ГлавнаяТаблицаЗначений.ТекущаяСтрока = Идетнификатор; Таким образом перед выполнением манипуляций вам нужно узнать, какая строка в таблице реквизита соответствует текущей строке в таблице формы. Каким-то образом запомнить, что это за строка. После выполнения манипуляций в таблице реквизита вам нужно найти эту запомненную строку, получить ее идентификатор и таблице в форме сказать, что ее текущая строка должна быть равна этому идентификатору." (с) Максим Радченко, 1С
#21 by Mustang
Во правильная статья. А мне все индекс, индекс. +1, -1.
#22 by Phace
Я тебе еще в отписывал код с определением текущей строки ТЧ, но ты же не слушаешь.
#23 by Mustang
Да как текщую строку определить я знаю. Мне пример тот ничего нового не дал. Ну определил я текущую строку. Узнал что у нее идентификатор 300, следущая строка идет с идентификатором 512. Мне какой смысл от текущей строки или от идентификаторм 300?
#24 by Mustang
Мне же нужно узнать что за ткущей строкой идет строка с идентификатором 512.
#25 by shuhard_серый
задачку целиком опиши что за форма, что за таблица, что за данные в ней вопрос актуальный, результат востребованный
#26 by Phace
Бррр, а вот так в первой строчке кода написать?
#27 by Mustang
ОК. Идет заполнение строк таблицы^ Перваоя строка - идентификатор 0 Вторая строка - иднетификатор 1 Третья строка - идентификатор 2 После, удаляем "Вторую строку", при этом идентификаторы не сбиваются. Вот с этим путать не нужно. Получиться: Первоя строка - идентификатор 0 Вторая строка (была Третья строка) - идентификатор 2 По примеру: Текущая трока "Первоя строка" получаю идентификатор 0. Прибавляю 1. Получаю идентификатор 1 (уже не существующей строки). В результате Error.
#28 by Phace
"По примеру: Текущая трока "Первоя строка" получаю идентификатор 0. Прибавляю 1. Получаю идентификатор 1 (уже не существующей строки). В результате Error." Да ты почитай внимательно, ты получаешь сначала следующую строку от текущей, а затем только определяешь ее идентификатор, а не наоборот.
#29 by Phace
Все оказалось проще. Это для следующей строки:
#30 by ll13
Реквизита "НомерСтроки" может и не быть ... Я вроде бы разобрался с тонкостями работы с ТЗ на форме, делаю так:
#31 by Phace
"Реквизита "НомерСтроки" может и не быть ..." Это в каком случае?
#32 by ll13
Создайте реквизит формы ТЗ типа "ТаблицаЗначений" к примеру с одним столбцом типа текст. Перетащите ТЗ1 в Элементы, что бы она отображалась на форме. В таком случае Элементы.ТЗ1.ТекущиеДанные.НомерСтроки - "Поле объекта не определено ..." хотя Элементы.ТЗ1.ТекущиеДанные определено и содержит ДанныеФормыЭлементКоллекции
#33 by Phace
Логично, но это потому что в ТЗ данных то нет, поэтому и неопределено, как только данные появятся и НомерСтроки, или я не прав (1С нет под рукой сейчас)?
#34 by Phace
*как только данные появятся, появится и НомерСтроки
#35 by ll13
Не появиться, несколько раз проверял на НЕ пустой ТЗ ) ... У Типа ДанныеФормыЭлементКоллекции нет встроенного свойства НомерСтроки, его свойства зависят от объекта которые он моделирует. Если он фактически ничего не моделирует, как в описанном ной случае, то и свойства такого у него нет. Из синтаксис-помощника: "Описание: Набор свойств элемента коллекции зависит от того, на основе какого объекта построена данная коллекция. Может включать в себя свойства, значениями которых будут являться другие универсальные структуры, универсальные коллекции и наборы записей." Но Вы всё равно проверьте, 8.2 такая штука - никому не верь, даже собственным глазам )
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С