Имя: Пароль:
1C
1С v8
тупит с методом Удалить()
0 адинэсниг1
 
29.05.13
10:58
Изменяйте за возможно глупые темы, но я еще только учусь.

РТ1 и РТ2 результаты 2х запросов. Распределяет не всё, и не удаляет те которые >=3. Без удалить() работает нормально. Но далее  РТ2 нужен с учетом удаленных строк.

Для каждого стрТз1 из РТ1 цикл
Для каждого стрТз2 из РТ2 цикл
 док = стрТз2.Документ.получитьобъект();
  Если док.контрагент = стрТз1.Контрагент тогда
   Если стрТз1.КоличествоДок < 3 тогда
    док.Ответственный = стрТз1.Ответственный;
    док.состояние = Перечисления.аааа.бббб;
    док.записать();
                       Сообщить(строка(док.ссылка) + " - распределен - " + строка(стрТз1.Ответственный));
   Иначе
                       Сообщить(строка(док.ссылка) + " - будет распределен - " + строка(стрТз1.Ответственный));
   КонецЕсли;
РТ2.Удлаить(стрТз2);

  КонецЕсли;
 КонецЦикла;
КонецЦикла;
1 Ursus maritimus
 
29.05.13
10:59
Из результата запроса нельзя Удалить()
2 адинэсниг1
 
29.05.13
11:00
Из ТЗ можно?
3 Ursus maritimus
 
29.05.13
11:00
Из ТЗ можно
4 адинэсниг1
 
29.05.13
11:01
если РТ2 = запрос.выпольнить().выгрузить();
он бдует ПТ2 будет ТЗ?
5 salvator
 
29.05.13
11:01
Условие отрабатывает? Если док.контрагент = стрТз1.Контрагент тогда
6 адинэсниг1
 
29.05.13
11:02
(5) да отрабатывает
7 salvator
 
29.05.13
11:02
И я бы руки прямые поставил:
РТ2.Удлаить(стрТз2);
8 MSII
 
29.05.13
11:02
Строки к удалению в массив, потом удалить.
9 salvator
 
29.05.13
11:04
+(8) +100.
Или перебирать с конца.
10 адинэсниг1
 
29.05.13
11:04
(7) это тут опечатка. В коде нормально
11 адинэсниг1
 
29.05.13
11:05
(8) попробую
2 + 2 = 3.9999999999999999999999999999999...