| 
    
        
     
     | 
    
    
  | 
ТЗ или как пробежаться по его данным | ☑ | ||
|---|---|---|---|---|
| 
    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) А вот это зачет ))))). Развеселил.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |