Имя: Пароль:
1C
1С v8
Перейти внутри цикла по строкам на след строку и вернуться
,
0 Adgjj
 
05.07.12
13:59
Здравствуйте!
Раньше это делала, но уже не помню, а смотреть метода самой дольше получится.
Для каждого СтрокаТЗ Из ТЗ Цикл
  если СтрокаТЗ.НомерДок <> НомерДокСледующейСтроки тогда //если в след. строке не будет такого же НомерДок
     ...    
  конецесли;
КонецЦикла;
1 butterbean
 
05.07.12
14:00
>>  а смотреть метода самой дольше получится
в мемориз
2 0_Serg_0
 
05.07.12
14:01
Для каждого СтрокаТЗ Из ТЗ Цикл
й=й+1;
  если СтрокаТЗ.НомерДок <> НомерДокСледующейСтроки тогда //если в след. строке не будет такого же НомерДок
    ТЗ[й].НомерДока = "12345";
  конецесли;
КонецЦикла;
3 0_Serg_0
 
05.07.12
14:05
или даже так - не совсем понятно что надо

Для каждого СтрокаТЗ Из ТЗ Цикл
й=й+1;
  если СтрокаТЗ.НомерДок <> ТЗ[й].НомерДок  тогда //если в след. строке не будет такого же НомерДок

      конецесли;
КонецЦикла;
4 Defender aka LINN
 
05.07.12
14:05
(3) Желаю удачи на последней строке
5 0_Serg_0
 
05.07.12
14:06
(4) чисто по заданию)) "если в след. строке не будет такого же НомерДок"
6 izekia
 
05.07.12
14:08
(5) не отмазывайся, тебя теперь тоже не возьмут
7 0_Serg_0
 
05.07.12
14:08
+ (3)
  Если й < ТЗ.Количество() тогда
    если СтрокаТЗ.НомерДок <> ТЗ[й].НомерДок  тогда


      конецесли;
  КонецЕсли;
8 osa1C
 
05.07.12
14:09
(7) вот так уже лучше
9 Ненавижу 1С
 
гуру
05.07.12
14:10
КолвоСтрок = ТЗ.Количество();
Для й=0 по КолвоСтрок-2 Цикл
  если ТЗ[й].НомерДок <> ТЗ[й+1].НомерДок тогда //выложи ФОТО

     ...    
  конецесли;
КонецЦикла;
10 Adgjj
 
05.07.12
14:11
я написала так
СтрокаТЗ.НомерДок = ТЗ.Получить(ТЗ.Индекс(СтрокаТЗ)+1).НомерДок
но Ваш вариант краше спасибо
11 rs_trade
 
05.07.12
14:14
(0) С вероятностью чуть менее 200% такое решение задачи не требуется. Автор, рассказывай что изначально надо сделать. Какая задача решается таким циклом?
12 izekia
 
05.07.12
14:17
(9) ламер, первая строка лишняя ... а слабо через рекурсию?
13 rs_trade
 
05.07.12
14:26
(12) ламерский вопрос. а почему первая строка лишняя?
14 izekia
 
05.07.12
14:30
(13) а по-твоему метод каждый цикл вызывается для проверки?
15 rs_trade
 
05.07.12
14:34
(14) а по твоему метод внутри цикла?
16 izekia
 
05.07.12
14:39
Для й=0 по ТЗ.Количество()-2 Цикл
  если ТЗ[й].НомерДок <> ТЗ[й+1].НомерДок тогда //выложи ФОТО


     ...    
  конецесли;
КонецЦикла;
17 izekia
 
05.07.12
14:39
почему бы не как в (16)
18 Ненавижу 1С
 
гуру
05.07.12
14:40
(12) да не слабо рекурсия, на счет строки - просто мне так удобнее
19 rs_trade
 
05.07.12
14:44
(17) получается, по твоему ламеры это те, кто пишет не так как ты? то есть все остальные прогеры.
20 izekia
 
05.07.12
14:45
(19) лишняя строка, лишняя переменная инициализируется ... зачем это?
21 rs_trade
 
05.07.12
14:47
(18) ты видимо не в курсах был что при таком написании, строка КолвоСтрок = ТЗ.Количество() вычисляется каждый проход цикла.

я честно говоря тоже.
22 izekia
 
05.07.12
14:49
(21) курить до прозрения:

   сз = Новый СписокЗначений;
   Для инд = 0 По 9 Цикл
       сз.Добавить(инд);
   КонецЦикла;
   
   Для инд = 0 По сз.Количество() - 1 Цикл
       Сообщить("" + сз.Получить(инд) + " " + инд);
       сз.Удалить(сз.Количество() - 1);
   КонецЦикла;
23 Ненавижу 1С
 
гуру
05.07.12
14:52
(21) да он не про то, условие на границы вычисляется в 1С один раз, в С++ каждый раз
24 rs_trade
 
05.07.12
14:52
(22) и что? выложил какой то кривой код. зачем мне его курить?
25 Плот
 
05.07.12
14:53
(0) Не понятно что надо. ТО что тз обходишь понял, а дальше что надо?
26 izekia
 
05.07.12
14:53
(24) ну не кури
27 rs_trade
 
05.07.12
16:07
(26) код не рабочий. что сказать то хотел им?