|
Как удалить строки из ТЗ |
☑ |
0
ЛучшийПрограммер1С
02.08.16
✎
10:43
|
Функция ФильтроватьОтклонения(ВсеОтклонения, ДатаНач, ДатаКон)
Отклонения=ВсеОтклонения.Скопировать();
Для Каждого Отклонение Из Отклонения Цикл
Если Отклонение.ПериодЗавершения<ДатаНач ИЛИ Отклонение.Период>ДатаКон Тогда
Отклонения.Удалить(Отклонение);
Иначе
Если Отклонение.Период<ДатаНач Тогда
Отклонение.Период = ДатаНач;
КонецЕсли;
Если Отклонение.ПериодЗавершения>ДатаКон Тогда
Отклонение.ПериодЗавершения=ДатаКон;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Отклонения;
КонецФункции
Удаляет через одну. Походу такая песня - допустим 5 строк. Первую удалил, осталось четыре строки. Переходит ко второй строке, а по исходной получается к третьей. Как правильно удалить?
|
|
1
batman69
02.08.16
✎
10:44
|
(0) Поиск. Мозг.
|
|
2
igork1966
02.08.16
✎
10:45
|
(0) Можно обходить с конца. Можно сформировать массив удаляемых и удалить потом
|
|
3
Любопытная
02.08.16
✎
10:45
|
Собрать массив удаляемых строк и потом этот массив удалять.
|
|
4
mkalimulin
02.08.16
✎
10:45
|
(0) Удаляй с конца.
|
|
5
oslokot
02.08.16
✎
10:46
|
всё во вселенной движется по спирали..
|
|
6
ЛучшийПрограммер1С
02.08.16
✎
10:51
|
А с конца то как удалять?
Для Каждого Отклонение Из Отклонения Цикл
|
|
7
ЛучшийПрограммер1С
02.08.16
✎
10:53
|
(3) Как собрать массив, ну соберу массив, а как удалять его
|
|
8
Evgueni
02.08.16
✎
10:53
|
Отклонения=ВсеОтклонения.Скопировать();
мсОтклонения = Новый Массив;
Для Каждого Отклонение Из Отклонения Цикл
Если Отклонение.ПериодЗавершения<ДатаНач ИЛИ Отклонение.Период>ДатаКон Тогда
//Отклонения.Удалить(Отклонение);
мсОтклонения.Добавить(Отклонение);
Иначе
Если Отклонение.Период<ДатаНач Тогда
Отклонение.Период = ДатаНач;
КонецЕсли;
Если Отклонение.ПериодЗавершения>ДатаКон Тогда
Отклонение.ПериодЗавершения=ДатаКон;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого элмнт Из мсОтклонения Цикл
Отклонения.Удалить(элмнт);
КонецЦикла;
Возврат Отклонения;
|
|
9
Это_mike
02.08.16
✎
10:55
|
де жа вю...
|
|
10
igork1966
02.08.16
✎
10:55
|
(6) Вообще-то это не единственный вариант цикла...
Для (For)
Синтаксис:
Для <Имя переменной> = <Выражение 1> По <Выражение 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;
|
|
11
ЛучшийПрограммер1С
02.08.16
✎
11:46
|
(8) Спасибо )
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший