|
Перебор таблицы значений | ☑ | ||
---|---|---|---|---|
0
webDoktor
23.10.11
✎
16:08
|
Это снова я. Знаю, что от меня вас уже тошнит, но все же, прошу помощи.
Как перебрать все ячейки в определенных колонках таблицы значения? |
|||
1
Aleksey
23.10.11
✎
16:10
|
а в чем проблема?
|
|||
2
Aleksey
23.10.11
✎
16:12
|
для й=1 по тз.Количество() цикл
ЗначениеЯчейки=ТЗ[й-1][номерТвоейЯчейки] КонецЦикла |
|||
3
Живой Ископаемый
23.10.11
✎
16:13
|
То есть например только во второй и пятой колонке?
и сделать двумя циклами? |
|||
4
webDoktor
23.10.11
✎
16:14
|
(1) Есть предприятие. У предприятия ведется журнал прогулов. То есть, там отмечается, что сегодня не было Петрова, Иванова, Сидорова... Так вот, необходимо составить отчет по месяцам.
С горем по палам, я нашел поля, в которых необходимо просматривать значение на "не было". Теперь, мне нужно в каждой из этих колонок, посчитать количество этих самых "не было". Как это сделать? (2), (3) Мне требуется поиск не в определенных ячейках, а ВО ВСЕХ ячейках определенной колонки. |
|||
5
Aleksey
23.10.11
✎
16:16
|
(4) И чем тебе (2) не нравится?
|
|||
6
Aleksey
23.10.11
✎
16:16
|
или тебе нужно поиск во всех ячейках определенной строки (!)?
|
|||
7
webDoktor
23.10.11
✎
16:21
|
(6) Мне нужен обход всех строк в определенной колонке.
(2) А как узнать "номерТвоейЯчейки"? |
|||
8
Aleksey
23.10.11
✎
16:23
|
номерТвоейЯчейки = номер "определенной колонке"
|
|||
9
Aleksey
23.10.11
✎
16:24
|
Тебе номер колонки в которой смотреть надо известен? Или что значит "к в определенной колонке. "
|
|||
10
webDoktor
23.10.11
✎
16:25
|
(9)
Для Каждого ТекСтрока Из ТаблицаЗначений Цикл // в цикле перебираем все строки таблицы значений Для Каждого ТекКолонка Из КолонкиТЗ Цикл // перебираем все столбцы текущей строки табличцы значений ИмяКолонки = ТекКолонка.Имя; КонецЦикла; КонецЦикла; Мне известно имя колонки. А как узнать номер колонки? |
|||
11
Aleksey
23.10.11
✎
16:27
|
(10) Зачем? Обращайся по имени
А вообще можно использовать НайтиСтроки() Для извращенцев можно запрос к ТЗ написать |
|||
12
Живой Ископаемый
23.10.11
✎
16:28
|
2(10) а зачем ты перебираешь колонки, если ты точно знаешь в каких тебе нужно искать?
|
|||
13
Aleksey
23.10.11
✎
16:28
|
(10) Как то (10) с задачей не вяжется. Тебе нужно искать обределенной значение во всей ТЗ?
|
|||
14
webDoktor
23.10.11
✎
16:31
|
(12), (13) У меня есть ТЗ. В этой ТЗ мне нужно найти:
1. Колонки, которые соотв. месяцу 2. Проверить все эти колонки и сложить значения "не был" Делаю так: Для Каждого ТекСтрока Из ТаблицаЗначений Цикл // в цикле перебираем все строки таблицы значений Для Каждого ТекКолонка Из КолонкиТЗ Цикл // перебираем все столбца текущей строки табличцы значений ТекЯчейка = ТекСтрока[ТекКолонка.Имя]; // выбираем данные из текущей ячейки Если Прав(ТекЯчейка, 2) = "01" Тогда для й = 1 по ТаблицаЗначений.Количество() цикл ЗначениеЯчейки = ТаблицаЗначений[й-1][ТекКолонка.Имя]; Сообщить(ЗначениеЯчейки); КонецЦикла КонецЕсли; КонецЦикла; КонецЦикла; И представляете?! РАБОТАЕТ! Теперь только надо как-то сделать так, чтобы не 12 условий делать, а все в одном цикле. |
|||
15
Aleksey
23.10.11
✎
16:31
|
Отбор = Новый Структура();
Отбор.Вставить(ИмяТвоейКолонкиВКоторойБудемИскать,ЗначениеКотороеНужноНайти); Строки = ТвояТЗ.НайтиСтроки(Отбор); |
|||
16
Живой Ископаемый
23.10.11
✎
16:34
|
2(14) божечки... зачем жеж ты перебираешь колонки в цикле, если ты и так знаешь что их 12? в надежде на то что когда-нибудь количество месяцев может быть другим?
и блин, что это за ересь: для й = 1 по ТаблицаЗначений.Количество() цикл ЗначениеЯчейки = ТаблицаЗначений[й-1][ТекКолонка.Имя]; Сообщить(ЗначениеЯчейки); КонецЦикла ? |
|||
17
Aleksey
23.10.11
✎
16:35
|
Для Каждого ТекКолонка Из КолонкиТЗ Цикл // перебираем все столбца текущей строки табличцы значений
ТекЯчейка = ТекСтрока[ТекКолонка.Имя]; // выбираем данные из текущей ячейки Отбор = Новый Структура(); Отбор.Вставить(ТекЯчейка ,"не был"); Строки = ТаблицаЗначений.НайтиСтроки(Отбор); Сообщить("В ячейки "+ТекЯчейка+" не было "+Строки.Количество()+" раз"); КонецЦикла |
|||
18
Aleksey
23.10.11
✎
16:37
|
А вообще, не проще ли тупо свернуть??
стрСуммирования=""; Для Каждого ТекКолонка Из КолонкиТЗ Цикл // перебираем все столбца текущей строки табличцы значений ТекЯчейка = ТекСтрока[ТекКолонка.Имя]; // выбираем данные из текущей ячейки стрСуммирования=стрСуммирования+", "+ТекЯчейка; КонецЦикла ТаблицаЗначений.Свернуть(,сред(стрСуммирования,3)); |
|||
19
webDoktor
23.10.11
✎
16:52
|
СПАСИБО вам большое! Разобрался!
|
|||
20
ILM
гуру
23.10.11
✎
18:42
|
(0) Милый человек, сейчас Вы считаете ячейки где "не было", завтра "был", потом будете считать "больничный", "командировка", "отпуск", "донор" и т.д.
Может стоит запросы выучить? Тем более в 8-ке концепция - всегда применять запросы. Лучше вытянуть 250 строк с суммой итого, чем в ТЗ тянуть данные 250*365 строк, а по ним потом считать уже итого? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |