|   |   | 
| 
 | ТЗ или как пробежаться по его данным | ☑ | ||
|---|---|---|---|---|
| 0
    
        PeaceDeath 18.03.13✎ 16:34 | 
        Добрый вечер.
  Прошу помочь.. немогли бы вы подсказать как работает следующий механизм. Для Каждого Параметра из Результат Цикл НоваяСтрока = ТабЗнач.Добавить(); Для i=0 по ТабЗнач.Количество() Цикл ТабЗнач.Колонки.Добавить(); Для j=0 по ТабЗнач.Колонки.Количество() Цикл КонецЦикла; КонецЦикла; КонецЦикла; Никак не пойму принцип - Из общего запроса вытащить в ТЗ все данные.(Вытащил) Затем пробежаться циклом по строкам (??ТУТ???). и только в конце по колонкам(??ТУТ??)). Обьясните пожалуйста без громких высказываний. Приведите легкий пример.. | |||
| 1
    
        exwill 18.03.13✎ 16:36 | 
        по колонкам не инадо     | |||
| 2
    
        exwill 18.03.13✎ 16:38 | 
        В чем разница между строками и колонками?     | |||
| 3
    
        GLazNik 18.03.13✎ 16:38 | 
        (0) Зачем?
  Может просто Запрос.Выполнить().Выгрузить(); | |||
| 4
    
        Reset 18.03.13✎ 16:38 | 
        Объясни, чего надо то тебе, без громких слов :)     | |||
| 5
    
        Reset 18.03.13✎ 16:41 | 
        Вывод значений ТЗ поколоночно:
  Для каждого Строка из ТЗ цикл Для каждого Значение из Строка цикл Сообщить(Значение); КонецЦикла; КонецЦикла; или Для каждого Строка из ТЗ цикл Для й=0 по ТЗ.Колонки.Количество()-1 цикл Сообщить(Строка[ТЗ.Колонки[й].Имя]); КонецЦикла; КонецЦикла; | |||
| 6
    
        PeaceDeath 18.03.13✎ 16:53 | 
        (5) Спасибо! А то мне здесь ужасное задание прислали.     | |||
| 7
    
        pessok 18.03.13✎ 16:54 | 
        (6) если ты не можешь сделать сам обход многомерного массива циклом, то выкинь задание и дуй в институт     | |||
| 8
    
        PeaceDeath 18.03.13✎ 16:56 | 
        (2) А в том что в зависимости от колонки будет меняться и пропускаться значение.
  То есть если попадется Оплата труда тогда вычислится его колонка и задастся значение, которое после пойдет в отчет. | |||
| 9
    
        PeaceDeath 18.03.13✎ 16:57 | 
        (7) Не сыпь мне соль на рану...     | |||
| 10
    
        PeaceDeath 18.03.13✎ 16:57 | 
        Просто запутался... к тому же я не прогер. а лишь стажер     | |||
| 11
    
        GANR 18.03.13✎ 17:17 | 
        Напишем человеческим языком:
  Для Каждого СтрокаТЧ Из ТабЗнач Цикл Для Каждого Колонка Из ТабЗнач.Колонки Цикл СтрокаТЧ[Колонка.Имя] = ЗначениеЯчейкиТаблицыЗначений; КонецЦикла; КонецЦикла; Это не матрица - это таблица значений, все-таки. | |||
| 12
    
        pessok 18.03.13✎ 17:18 | 
        (11) таблица значений - это сущность, придуманная хитрыми разрабами платформы :) на самом деле это матрица/многомерный массив     | |||
| 13
    
        GANR 18.03.13✎ 17:20 | 
        (12) С точки зрения  п о л ь з о в а т е л я  платформы (программиста 1С, то есть) это не совсем матрица.     | |||
| 14
    
        Reset 18.03.13✎ 17:21 | 
        (11) Нормальный вариант тоже. Я написал то, что в голову пришло первым. Но насчет нечеловеческого языка это ты зря :)
  Где-то, как вариант, цикл со счетчиком может оказаться удобней. | |||
| 15
    
        GANR 18.03.13✎ 17:26 | 
        (14) Где-то в области матанализа, но для таких задач MathLAB есть - это уже история другая. Не стоит это возлагать на платформу 1С.     | |||
| 16
    
        Reset 18.03.13✎ 17:27 | 
        (15) Какого матанализа?
  Допустим, нужно обработать колонки, начиная с третьей. | |||
| 17
    
        GANR 18.03.13✎ 17:31 | 
        (16) Лично я что-то не натыкался на такую надобность.     | |||
| 18
    
        pessok 18.03.13✎ 17:37 | 
        (17) сплошь и рядом, на самом деле. табель, например, где Сотрудник, Организация, Подразделение не надо трогать :)     | |||
| 19
    
        GANR 18.03.13✎ 17:42 | 
        (18) Было дело у меня с множеством колонок. В таких ситуациях, как-то, имени колонки GUID очищенный от "-" с префиксом "P_" присвоил - и голова не болит. :)     | |||
| 20
    
        pessok 18.03.13✎ 17:43 | 
        (19) вот жеж онанизм какой ;)     | |||
| 21
    
        GANR 18.03.13✎ 17:49 | 
        (20) А на кой мне её порядковый номер??? Главное - идентифицировать, а для этого лучше GUIDов в мире пока что ничего не придумано. А вдруг какие-то колонки удаляться нежданно-негаданно или переместятся.     | |||
| 22
    
        pessok 18.03.13✎ 17:51 | 
        (21) и вот у тебя надо пропустит двести колонок, ты делаешь форич и потом в условии пропускаешь две колонок по гуиду...     | |||
| 23
    
        pessok 18.03.13✎ 17:51 | 
        двести колонок... реально пора домой     | |||
| 24
    
        GANR 18.03.13✎ 17:54 | 
        (22) Колонки.Найти(GUID)     | |||
| 25
    
        Reset 18.03.13✎ 17:57 | 
        (21) >>А на кой мне её порядковый номер
  А если тебе нужно ее сдвинуть влево? Какой-то ты сегодня категоричный. Тяжелый день? :) | |||
| 26
    
        pessok 18.03.13✎ 17:57 | 
        (24) двести раз, угу :)
  Для Каждого ТекСтр Из Таблица Цикл Для Каждого Коли Из Таблица.Колонки Цикл Если Колонки.Найти(GUID) = Неопределено Тогда Продолжить; КонецЕсли //вот тут придется делать условие для каждого гуида, который надо пропустить КонецЦикла; КонецЦикла | |||
| 27
    
        pessok 18.03.13✎ 17:58 | 
        все, домой :) нафик холивары. циклы всякие нужны, циклы всякие важны ;)     | |||
| 28
    
        Reset 18.03.13✎ 17:58 | 
        (27) +100     | |||
| 29
    
        GANR 18.03.13✎ 18:01 | 
        (27) А вот это зачет ))))). Развеселил.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |