|
Обновление таблицы на форме обработки | ☑ | ||
---|---|---|---|---|
0
dimm7310
15.03.13
✎
12:44
|
Управляемая форма. На форме обработки есть таблица - табличная часть объекта (Объект.ТЗЗаказы), по мимо нее есть вторая таблица на форме - таблица значений, которая должна заполнятся при движении по строкам первой таблицы (что-то вроде расширенной инфы).
Первая таблица заполняется по результату запроса Объект.ТЗЗаказы.Загрузить(ТЗ); вторая таблица в &НаКлиенте Процедура ТЗЗаказыПриАктивизацииСтроки(Элемент) ТекСтрока = Элементы.ТЗЗаказы.ТекущаяСтрока; Данные = Элементы.ТЗЗаказы.ДанныеСтроки(ТекСтрока); и т.д. После первоначального заполнении ТекСтрока = Элементы.ТЗЗаказы.ТекущаяСтрока; показывает правильно, но при повторном заполнении показывает неверно, как будто старым строкам прибавились новые, т.е. при клике на первую строку Элементы.ТЗЗаказы.ТекущаяСтрока = 57, хотя визуально таблица обновилась нормально и старых строк на ней нет. Пробовал на клиенте после заполнения первой таблицы прописывать Элементы.ТЗЗаказы.Обновить(); но ситуациюэто не исправило. Что я делаю не так? |
|||
1
butterbean
15.03.13
✎
12:45
|
не так задаешь вопрос
|
|||
2
dimm7310
15.03.13
✎
12:53
|
(1) вопрос: как сделать так , что бы на клиенте отражался правильный номер строки в Элементы.ТЗЗаказы.ТекущаяСтрока ?
|
|||
3
НЕА123
15.03.13
✎
13:05
|
Элементы.ТЗЗаказы.ТекущиеДанные.ИсходныйНомерСтроки
? |
|||
4
dimm7310
15.03.13
✎
13:25
|
(3) получается тоже самое, при повторном заполнении номер первой строки 58 , при следущем = 114
|
|||
5
dimm7310
16.03.13
✎
10:28
|
up
|
|||
6
mikecool
16.03.13
✎
10:49
|
(4) может проще для первой таблицы сделать параметр отбора = ссылке на документ и заполнять его при создании формы?
|
|||
7
dimm7310
18.03.13
✎
09:53
|
не понял я твою мысль.
В первой таблице уже все есть для второй таблицы , в строке первой таблицы есть ячейка в которой свернута ТЗ для второй таблицы, нужно лишь ее развернуть при клике по строке, а что бы ее развернуть я должен узнать номер строки первой таблицы по которой кликнули &НаКлиенте Процедура ТЗЗаказыПриАктивизацииСтроки(Элемент) ТекСтрока = Элементы.ТЗЗаказы.ТекущаяСтрока; Данные = Элементы.ТЗЗаказы.ДанныеСтроки(ТекСтрока); и вот тут и происходит эта хрень - Элементы.ТЗЗаказы.ТекущаяСтрока возвращает правильные значения только при первом заполнении первой таблицы (после того как форма обработки была закрыта), и если не закрывая форму обработки вызвать процедуру заново заполняющую первую таблицу, то в дальнейшем Элементы.ТЗЗаказы.ТекущаяСтрока - вернет уже не верный номер , как будто к старым строкам добавились новые. Т.е. кликая по перво |
|||
8
dimm7310
18.03.13
✎
09:56
|
Т.е. кликая по первой строке я уже получу Элементы.ТЗЗаказы.ТекущаяСтрока = 57, а не 0. 57 строк было при первом заполнении таблицы.
Хотя визуально первая таблица заполнилась нормально. |
|||
9
dimm7310
18.03.13
✎
10:19
|
уже не знаю что еще можно сделать
ведь должна полностью очищаться перед повторным заполнением &НаКлиенте Процедура Сформировать(Команда) Объект.ТЗЗаказы.Очистить(); СформироватьНаСервере(); Элементы.ТЗЗаказы.Обновить(); КонецПроцедуры и все равно та же хрень |
|||
10
butterbean
18.03.13
✎
10:33
|
а че ты ТекущиеДанные() не используешь?? ТекущаяСтрока возвращает не индекс(номер) строки, а идентификатор, его платформа сама назначает, независимо от твоих желаний :-)
|
|||
11
dimm7310
18.03.13
✎
11:06
|
(10) спасибо, все получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |