![]() |
|
Волшебная таблица значений | ☑ | ||
---|---|---|---|---|
0
mulder_mulder
02.07.15
✎
21:40
|
Добрый день.
Столкнулся с проблемой Есть у меня форма. На форме таблица значений. (3 строки / 54 колонки) Заполняется программно. Задача, находить в ячейках нужную информацию. Делаю так: Процедура Таблица53хНедельногоГрафикаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) объект.ИмяВыделяемогоСтолбца = элементы.Таблица53хНедельногоГрафика.ТекущийЭлемент.имя; объект.НомерВыделяемойСтроки = элементы.Таблица53хНедельногоГрафика.ТекущаяСтрока; сообщить(объект.ИмяВыделяемогоСтолбца); сообщить(объект.НомерВыделяемойСтроки); КонецПроцедуры С определением колонок проблем как ни странно,нет. А вот со строками засада. Стоит отчистить таблицу, и заполнить заново, как программа начинает опередлять строки в место 0/1/2 как 3/4/5. отчищаю таблицу, и заполняю заново. Показывает - 6/7/8. Проверяю программно количество строк - 3. Что делать? Если это баг, то как можно ещё найти координаты ячейки по клику? Заранее благодарен. |
|||
1
Сниф
02.07.15
✎
21:45
|
(0) а это управляемые формы или что?
объект.НомерВыделяемойСтроки = элементы.Таблица53хНедельногоГрафика.ТекущаяСтрока; Имхо, ТекущаяСтрока имеет тип отличный от числа, там не номер строки. |
|||
2
Лефмихалыч
02.07.15
✎
21:48
|
код кривой, как турецкая сабля, а с таблицей значений нормально все. Отлаживай по шагам свое это "отчищение"
|
|||
3
Nirvana
02.07.15
✎
21:48
|
По индексу текущей строки в таблице.
|
|||
4
ДенисЧ
02.07.15
✎
21:50
|
Кстати, в книжке по УФ это описано
|
|||
5
mulder_mulder
02.07.15
✎
21:53
|
(1)
Форма списка Документов. (2) Чего там кривого-то в отчищении. этаформа.Таблица53хНедельногоГрафика.Очистить(); (3) Код можно? (4)Читал.До 36 страницы ещё понятно более менее, а потом в интернет полез :). |
|||
6
Лефмихалыч
02.07.15
✎
21:54
|
(5) >Чего там кривого-то в отчищении
ну, вот это самое и кривое, во-первых, а, во-вторых, - все, что вокруг |
|||
7
ДенисЧ
02.07.15
✎
21:55
|
(5) нужно было до 340й страницы дочитать...
|
|||
8
Сниф
02.07.15
✎
21:56
|
ИндексТекСтроки = Таблица53хНедельногоГрафика.Индекс(ЭлементыФормы.Таблица53хНедельногоГрафика.ТекущаяСтрока);
объект.НомерВыделяемойСтроки = ИндексТекСтроки ; |
|||
9
mulder_mulder
02.07.15
✎
21:58
|
(6) Других функций очищения таблицы, не нашёл. Подскажите прямой код, как русский меч-кладенец :)
(7) стр 340 Выполнение и работ с запросами во встроенном языке (8) Благодарю. Сейчас опробую. |
|||
10
ДенисЧ
02.07.15
✎
22:00
|
(9) Я говорю про книгу по УФ. А не по языку.
|
|||
11
mulder_mulder
02.07.15
✎
22:03
|
(8) Говорит, что все номера строк у меня (-1).
(10) Ах,вон чего... А я только конфигурирование и администрирование на время отпуска домой стащил. :) |
|||
12
Сниф
02.07.15
✎
22:06
|
(11) все правильно, индекс начинается с 0, а НомерСтроки с 1, таким образом НомерСтроки = Индекс +1
|
|||
13
mulder_mulder
02.07.15
✎
22:12
|
(12) Щёлкаю по третьей строке, а он мне -1
Щёлкаю по второй, а он мне -1 Щёлкаю по первой -1. А номера строки получаются,при элементы.Таблица53хНедельногоГрафика.ТекущаяСтрока 0/1/2 Как вы и говорили С нуля счёт идёт. |
|||
14
Сниф
02.07.15
✎
22:20
|
(13) я боюсь спросить что такое "объект", тем более, что такое "объект.НомерВыделяемойСтроки"
А так? сообщить(Таблица53хНедельногоГрафика.Индекс(ВыбраннаяСтрока)+1); |
|||
15
mulder_mulder
03.07.15
✎
08:58
|
(14) Кажет одни нули на всех строках
Объект - это реквизит формы который указывает на документ, в состав которого и входит данная форма. |
|||
16
mulder_mulder
03.07.15
✎
08:59
|
(14) А в этом документе, есть реквизит - НомерВыделяемойСтроки.
|
|||
17
mulder_mulder
03.07.15
✎
09:53
|
В общем, получилось обойти этот баг таким образом:
запустил цикл на отчистку изменяемых значений. ... ПереборСтрок = этаформа.Таблица53хНедельногоГрафика; КолвоСтрок=ПереборСтрок.Количество(); для а=0 по КолвоСтрок-1 цикл ИмяОбъектаППР = ПереборСтрок.Получить(а); ИмяОбъектаППР.нед1= ""; ИмяОбъектаППР.нед2= ""; ИмяОбъектаППР.нед3= ""; ИмяОбъектаППР.нед4= ""; ИмяОбъектаППР.нед5= ""; ИмяОбъектаППР.нед6= ""; ИмяОбъектаППР.нед7= ""; ИмяОбъектаППР.нед8= ""; ИмяОбъектаППР.нед9= ""; ИмяОбъектаППР.нед10= ""; ИмяОбъектаППР.нед11= ""; ИмяОбъектаППР.нед12= ""; ИмяОбъектаППР.нед13= ""; ИмяОбъектаППР.нед14= ""; ИмяОбъектаППР.нед15= ""; ИмяОбъектаППР.нед16= ""; ИмяОбъектаППР.нед17= ""; ИмяОбъектаППР.нед18= ""; ИмяОбъектаППР.нед19= ""; ИмяОбъектаППР.нед20= ""; ИмяОбъектаППР.нед21= ""; ИмяОбъектаППР.нед22= ""; ИмяОбъектаППР.нед23= ""; ИмяОбъектаППР.нед24= ""; ИмяОбъектаППР.нед25= ""; ИмяОбъектаППР.нед26= ""; ИмяОбъектаППР.нед27= ""; ИмяОбъектаППР.нед28= ""; ИмяОбъектаППР.нед29= ""; ИмяОбъектаППР.нед30= ""; ИмяОбъектаППР.нед31= ""; ИмяОбъектаППР.нед32= ""; ИмяОбъектаППР.нед33= ""; ИмяОбъектаППР.нед34= ""; ИмяОбъектаППР.нед35= ""; ИмяОбъектаППР.нед36= ""; ИмяОбъектаППР.нед37= ""; ИмяОбъектаППР.нед38= ""; ИмяОбъектаППР.нед39= ""; ИмяОбъектаППР.нед40= ""; ИмяОбъектаППР.нед41= ""; ИмяОбъектаППР.нед42= ""; ИмяОбъектаППР.нед43= ""; ИмяОбъектаППР.нед44= ""; ИмяОбъектаППР.нед45= ""; ИмяОбъектаППР.нед46= ""; ИмяОбъектаППР.нед47= ""; ИмяОбъектаППР.нед48= ""; ИмяОбъектаППР.нед49= ""; ИмяОбъектаППР.нед50= ""; ИмяОбъектаППР.нед51= ""; ИмяОбъектаППР.нед52= ""; ИмяОбъектаППР.нед53= ""; конеццикла; Кстати, может кто знает оператор который бы менял имена переменных Давно ищу такое решение. А то иногда забадываешься писать. g = 53; к примеру: нед53 = нед{g} |
|||
18
fishb1
03.07.15
✎
10:10
|
(17)
А = 53; Б53 = "Тест"; Ц = Вычислить("Б" + А); Сообщить(Ц); |
|||
19
Гёдза
03.07.15
✎
10:13
|
это не индекс, а идентификатор
|
|||
20
Гёдза
03.07.15
✎
10:13
|
у тз есть метод найтипоидентификатору()
|
|||
21
mulder_mulder
03.07.15
✎
11:11
|
(20) Понял. Получившийся из сложения букв и цифр блок указать в качестве параметра поиска. Интерсно, чего это я раньше не замечал такого приёма? Благодарю.
Благодарю всех, за участие. Эту проблему обошли. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |