|
Метод ЗАГРУЗИТЬ() табличной части | ☑ | ||
---|---|---|---|---|
0
only82
27.08.11
✎
20:15
|
Результат запроса (1257 строк) выгружаю в табличну часть обработки:
Объект.Участки.Загрузить(Результат.Выгрузить()); Далее обращаюсь к строке: &НаКлиенте Процедура УчасткиПриИзменении(Элемент) Строка = Объект.Участки[Элемент.ТекущаяСтрока]; ПроцедурыУправленияПерсоналом.ЗаписатьУчасток(Строка.НаселенныйПункт,Строка.Улица,Строка.НомерДома,Строка.Участок); КонецПроцедуры Все работает отлично, но если повторно использую метод Загрузить(), то свойство ТекущаяСтрока находится за пределами массива. Напр: после первого использования ТекущаяСтрока = 1, после второго эта же строка = 1258, после третьего = 2515, и т. д. Это баг версии, или так и должно быть? Версия 8.2.14.519 |
|||
1
Лефмихалыч
27.08.11
✎
20:58
|
(0) включи голову в розетку. Элемент.ТекущаяСтркоа после вызова Загрузить() содержит ссылку на строку коллекции, которой уже не существует
|
|||
2
only82
27.08.11
✎
23:18
|
(1) Это почему? Я обращаюсь к свойству "ТекущаяСтрока" в обработчике события "ПриИзменении", получаю новый объект "Элемент", и свойства у него тоже новые.
|
|||
3
Amiralnar
28.08.11
✎
06:39
|
1. Если Элемент.ТекущаяСтрока = Неопределено Тогда Возврат; КонецЕсли;
2. Объект.Участки.Очистить(); Объект.Участки.Загрузить(Результат.Выгрузить()); Дальше зависит от того, чем занимается (0). |
|||
4
only82
28.08.11
✎
13:05
|
(3) Метод Загрузить() и делает предварительную очистку а потом загрузку. Очистить() абсолютно ничего не меняет. И Элемент.ТекущаяСтрока = Неопределено будет только в том случае если табличная часть не имеет строк, а в моем случае Элемент.ТекущаяСтрока = 1258.
Неужели никто не делал ничего подобного? |
|||
5
ДенисЧ
28.08.11
✎
13:07
|
вотжеблеатЪ.
Сохраняем текущую строку, потом полностью переписаваем содержимое ТЧ и хотим, чтобы в строке осталось что-то вменяемое... |
|||
6
only82
28.08.11
✎
13:09
|
Блин, вы можете написать как правильно? То что это не работает я и сам прекрасно понимаю
|
|||
7
ДенисЧ
28.08.11
✎
13:11
|
(6) смотря что ты хочешь сделть....
|
|||
8
only82
28.08.11
✎
13:17
|
(7) Неужели не ясно? Я хоче чтобы после второго вызова Загрузить() ТекущаяСтрока не менялась. Надо внимательно читать (0)!
|
|||
9
ДенисЧ
28.08.11
✎
13:19
|
(8) не взлетит.
|
|||
10
EvgeniuXP
28.08.11
✎
15:22
|
(8) она слетит.
|
|||
11
Лефмихалыч
28.08.11
✎
15:24
|
(8) этого ты не получишь
|
|||
12
Лефмихалыч
28.08.11
✎
15:24
|
+(11) живи с этим
|
|||
13
Лефмихалыч
28.08.11
✎
15:25
|
или надо не загружать ни чего, или после загрузки ищи нужную строку заново
|
|||
14
EvgeniuXP
28.08.11
✎
15:26
|
сняли розовые очки...
|
|||
15
only82
28.08.11
✎
19:14
|
Если не знаете как сделать правильно - не пишите.
|
|||
16
Лефмихалыч
28.08.11
✎
19:27
|
(15) всё уже сказано, если ты не в силах понять, что тебе говорят, наверное дело в тебе, а не в нас
|
|||
17
only82
28.08.11
✎
20:06
|
(16) Я же нормально попросил не писать всякую чушь. Лефмихалыч, не пиши здесь ничего больше.
|
|||
18
only82
28.08.11
✎
20:35
|
Все, разобрался сам.
Если кому интересно: Мне в данном случае нужно было использовать Элемент.ТекущиеДанные.НомерСтроки. Но нумерация тут начинается не с 0, а с 1, поэтому правильно будет Элемент.ТекущиеДанные.НомерСтроки-1. &НаКлиенте Процедура УчасткиПриИзменении(Элемент) Строка = Объект.Участки[Элемент.ТекущиеДанные.НомерСтроки-1]; ПроцедурыУправленияПерсоналом.ЗаписатьУчасток(Строка.НаселенныйПункт,Строка.Улица,Строка.НомерДома,Строка.Участок); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |