|
Текущая строка Динамического списка | ☑ | ||
---|---|---|---|---|
0
Ovcyanka
20.07.18
✎
08:05
|
Здравствуйте, уважаемые! Сижу "туплю" уже 3 дня не могу понять что делаю не так..
проблема: на форме есть динамический список, основной таблицей которого является регистр сведений.. ( текущие строки имеют тип РегистраСведений Ключ записи) в событиях дС "СписокВыбор" даю пользователю возможность изменить параметр регистра сведений ( далее его записываю программно . и ищу ( также программно) следующую за Текущей запись запись и меняю нужные мне данные в ней ). проблема что зрительно слетает позиционирование текущей строки ( была на строке 2, стала на строке 3). ничего не помогает. побывала и просто запоминать предыдущую тек. строку и потом ставить активность на нее. и через создать ключ записи искать данные по 4 параметрам отбора и потом этот ключ подсовывать текущей строки Динамического списка. не встает активность и все((((. в чем может быть беда....... |
|||
1
Радим1987
20.07.18
✎
08:19
|
ОбновитьОтображениеДанных(<ОбновлятьЭлементы>) не помогает?
|
|||
2
Ovcyanka
20.07.18
✎
08:54
|
В качестве ОбновлятьЭлементы , что передать тогда?
|
|||
3
Ovcyanka
20.07.18
✎
09:05
|
ключ записи вроде даже передается в тек. строку но, почему она не становиться активной хз(((((
СсылкаНаНужныйЭлемент = Элементы.Список.ТекущаяСтрока; ПрограммноеИзменениеДанныхРегистр(ТекСтрокаСДанными,""); Элементы.Список.Обновить(); попытка Элементы.Список.ТекущаяСтрока= ТекСтрока; Исключение КонецПопытки; |
|||
4
Ovcyanka
20.07.18
✎
09:07
|
(3) ниже там
ТекСтрока = Элементы.Список.ТекущаяСтрока; ПрограммноеИзменениеДанныхРегистраОперацииЗаказа(ТекСтрокаСДанными,""); Элементы.Список.Обновить(); попытка Элементы.Список.ТекущаяСтрока= ТекСтрока; Исключение КонецПопытки; |
|||
5
Ovcyanka
20.07.18
✎
09:09
|
и все равно , соскакивает позиция на следующую строку, а не на текущую. Причем это при первом изменении такое поведение, когда после , опять встаю на строчку №2 и опять меняю данные, она как была активной так и есть, прочему при первом изменении слетает активность((
|
|||
6
Ovcyanka
20.07.18
✎
19:02
|
не ужели никто не работал с ДС?
|
|||
7
hhhh
20.07.18
✎
21:05
|
(6) наверно вы перепутали список и табличное поле
Элементы.Список - это табличное поле всё-таки. просто Список - это динамический список. |
|||
8
whitedi
20.07.18
✎
23:22
|
(4) ПрограммноеИзменениеДанныхРегистр(ТекСтрокаСДанными,"");
данная процедура должна быть с директивой #НаСервереБезКонтекста |
|||
9
Ovcyanka
21.07.18
✎
06:53
|
(7) у меня Список-это динамический список.
я устанавливаю текущей строку Динамического списка, данные которого размещаются на форме. |
|||
10
hhhh
21.07.18
✎
08:37
|
(9) почему тогда Элементы.Список ?
|
|||
11
Ovcyanka
21.07.18
✎
08:48
|
а как я должна обратиться к текущей строке?
|
|||
12
Ovcyanka
21.07.18
✎
08:49
|
(8) не помогает. ((( в ДС есть составного типа реквизит, вот его когда меняешь программа происходит скачек на следующую строку при обновлении ДС и ничего не могу сделать
|
|||
13
Сияющий в темноте
21.07.18
✎
09:23
|
Текущая строка списка,это номер от начала,если мы поменяли запись,особенно поля,которые в упорядочивании,то запись уходит в другое место,а потом умная система находит по номеру текущую строку,которая следующая.
Насколько я помню,у записи регистра есть ключ уникальности,который при обновлении измерений меняется. Как вариант,запомнить индекс текущей строки,скинуть текущую в начало списка,изменить то,что нужно,найти то,что изменили и сделать его текущим. |
|||
14
whitedi
21.07.18
✎
13:34
|
(12) опишите задачу в целом. Очень похоже, что ваше решение нереализуемо в дин.списке.
|
|||
15
Ovcyanka
21.07.18
✎
19:39
|
(13)там индекса нет , строки - с типом регистр сведений ключ записи.. я его и сохраняю ДО обновления списка, а потом присваиваю Эту сохраненный ключ текущей строке и не срабатывает((
|
|||
16
Ovcyanka
21.07.18
✎
19:45
|
(14) есть строки в дС, изменяем какие либо данные ПРОГРАММНО ( в конкретном случае скачет на следующую строку только при смене реквизита Ответственный, который имеет составной тип ( сотрудники организации и Бригады). Т е. вызываю форму выбора ответственного. после выбора, запоминаю ключ строки, изменяю запись в регистре ,обновляю динамический список, устанавливаю текущей Запомненный ключ.. и строка перескакивает на следующую..
Пример: встаю на строчку №2 ,устанавливаю в Динамическом списке в колонке ответственный сотрудника Иванов Иван Иванович( после установки в регистр записываются данные и вызывается программное обновление динамического списка) и активной становится строка №3. а не №2 как была.. |
|||
17
hhhh
21.07.18
✎
20:13
|
(16) посмотри отладчиком чему равна Элементы.Список.ТекущаяСтрока
|
|||
18
1sanekmaloi1
21.07.18
✎
21:43
|
Ну значит текущая строка стала 3й по списку, то что делается программно изменяет дин.список и на 2ю строку встает другая запись.
|
|||
19
whitedi
21.07.18
✎
23:22
|
(16) если не вызывать программно обновление, а нажать F5 после выполнения программной записи, как ведет себя список?
может как вариант открывать форму записи регистра (можно нарисовать уникальную форму только с полем "ответственный") при двойном клике по строке и выбирать ответственного в ней без всяких программных записей и обновлений списка? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |