Имя: Пароль:
1C
1С v8
Перебор табличной части
, ,
0 JedaiMaster
 
02.06.14
10:08
задача для тек то очень хорошо разбирается в алгоритмах, как реализовать это в алгоритме 1с, в обработке есть табличная часть мне надо сделать проверку, и если проверка удовлетворяет значению поменять значения в таблице, только менять надо не текущие значение а следующие
http://yadi.sk/d/bqRni6PxRxC6b

получаем строку выделенную красным, из 96724-10396 получаем сумму которую надо записать в ячейку выделенную синим (97253)

    Для Каждого Стр из Платежи   Цикл
            
        текстр=ЭлементыФормы.Платежи.ДанныеСтроки(Стр);
          

        если (текстр.Погашение+ТекСтр.проценты)<>ТекСтр.ИтогоВыплаты тогда
        Сообщить(ТекСтр.Месяц);    
        Сообщить(ТекСтр.ОстатокЗадолжности);
        Сообщить(ТекСтр.проценты);
        Сообщить(ТекСтр.ИтогоВыплаты);
        ТекСтрРЕДАКТОР=ТекСтр.ОстатокЗадолжности-  (текстр.Погашение+ТекСтр.проценты);
    

        
    КонецЕсли;
    
ТекСтр.ОстатокЗадолжности=ТекСтрРЕДАКТОР;

        КонецЦикла;
1 JedaiMaster
 
02.06.14
10:11
(0) задача для гения 1С
2 fisher
 
02.06.14
10:13
В чем проблема-то? Перебирай не "для каждого", а с индексами строк работай.
3 Jokero
 
02.06.14
10:13
а вчем проблема то непонятно))
К индексу полученной в условии строки добавить единичку и менять ее на здоровье.
4 Галахад
 
гуру
02.06.14
10:15
Вот и гении подтянулись :-)
5 fisher
 
02.06.14
10:16
"задача для тек то очень хорошо разбирается в алгоритмах"
Шаг в сторону от тупого перебора - "задача для гения 1С"?
6 JedaiMaster
 
02.06.14
10:20
(5) в первые столкнулся с таким перебором, поэтому туговато понимаю как сделать
7 Крошка Ру
 
02.06.14
10:21
(0) Недостаток знания в тебе, джедаймастер, вижу
Умных книг ещё много ты прочитать должен
8 Shurjk
 
02.06.14
10:23
"задача для тек то очень хорошо разбирается в алгоритмах"  - это такой маркетингговый ход, чтоб народ активней отвечал.
9 fisher
 
02.06.14
10:24
(6) С ТЧ можно работать, адресуя строки их индексами (как и с многими другими коллекциями).
"Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс строки (нумерация с 0)"
Кури также методы Индекс(), Количество()
10 JedaiMaster
 
02.06.14
10:25
(9) Спасибо
11 fisher
 
02.06.14
10:27
Ну и метод Получить() до кучи. Правда, никогда его не юзал.
"Применяется в случаях, когда использование оператора [] невозможно"
Навскидку даже не соображу, когда квадратные скобки невозможно использовать.
12 Крошка Ру
 
02.06.14
10:29
Да можно и Для Каждого использовать...
В конце одной итерации цикла запоминаем в переменной значение,
в начале следующей - заносим его в таблицу.
13 mikecool
 
02.06.14
10:37
сделать это запросом!
14 JedaiMaster
 
02.06.14
10:50
(12)делал так, при первом проходе он будет говорит что переменная не определена
15 Крошка Ру
 
02.06.14
10:51
(14) ну перед циклом, её, понятное дело, инициализировать надо))
16 Крошка Ру
 
02.06.14
10:56
(14) Ну или как-то так:

ЭтоПерваяСтрокаТаблицы = Истина;
Для Каждого СтрокаТЗ Из ТЗ Цикл
   Если ЭтоПерваяСтрока Тогда
      ЭтоПерваяСтрока = Ложь;
   Иначе
      ... заносим ВычисленноеЗначение в ТЗ...
   КонецЕсли;
   ... вычисляем ВычисленноеЗначение...
КонецЦикла;