|
v7: Таблица значений удалить строку | ☑ | ||
---|---|---|---|---|
0
work92
29.02.16
✎
14:05
|
Подскажите как сделать чтобы удалить строку 2 так как в этом месяце есть ВзносВрем
Датанач----- дата кон -----ВР-----ВД 1 строка 01.01.2015----- 25.01.2015 -----По окладу-----ВзносВрем 2 строка 01.01.2015----- 25.01.2015 -----Индексация-----Индекс 3 строка 01.02.2015----- 25.03.2015 -----Больничный-----БЛ 4 строка 01.02.2015----- 13.02.2015 -----Индексация-----Индекс 5 строка 01.04.2015----- 30.04.2015 -----По окладу-----ВзносВрем |
|||
1
work92
29.02.16
✎
14:10
|
Может у кого есть пример кода
|
|||
2
Mikeware
29.02.16
✎
14:13
|
Если (этом месяце есть ВзносВрем) Тогда
тз.получитьСтокуПоНомеру(2) |
|||
3
Mikeware
29.02.16
✎
14:14
|
Если (этом месяце есть ВзносВрем) Тогда
тз.получитьСтокуПоНомеру(2); тз.УдалитьСтроку(); конецЕсли |
|||
4
Rie
29.02.16
✎
14:15
|
(0) Если просто строку 2, то так и пишешь:
ТЗ.УдалитьСтроку(2); Если все строки, где ВзносВрем, то Для н=-ТЗ.КоличествоСтрок() По -1 Цикл Если ТЗ.ВД=ВзносВрем Тогда ТЗ.УдалитьСтроку(н); КонецЕсли; КонецЦикла; |
|||
5
aka AMIGO
29.02.16
✎
14:16
|
Для ы=-ТЗ.КоличествоСтрок по -1 Цикл
ТЗ.ПолучитьСтрокуПоНомеру(-ы); Если ТЗ.ВД = "ВносВрем" Тогда ТЗ.УдалитьСтроку(-ы); КонецЕсли; КонецЦикла; |
|||
6
work92
29.02.16
✎
14:16
|
Строка постоянна меняется
|
|||
7
aka AMIGO
29.02.16
✎
14:17
|
(6) поясни.
|
|||
8
Rie
29.02.16
✎
14:18
|
(4) Тьфу, уже нюх теряю... Условие:
ТЗ.ПолучитьЗначение(-н,"ВД")=ВзносВрем; |
|||
9
work92
29.02.16
✎
14:18
|
Мне нужно написать условие если в месяце есть ВзносВрем и Индексация тогда удалить индексацию иначе оставить индексацию
|
|||
10
aka AMIGO
29.02.16
✎
14:18
|
(8) Ой! ты что пишешь? :)
|
|||
11
Mikeware
29.02.16
✎
14:19
|
(9) ну так напиши
|
|||
12
work92
29.02.16
✎
14:20
|
Это условие подскажите как правильно его выполнить
|
|||
13
Rie
29.02.16
✎
14:26
|
(10) Исправленное условие для оператора Если в Цикле из (4).
|
|||
14
Rie
29.02.16
✎
14:31
|
(9) Что такое "удалить индексацию"? Варианты ответа:
а) удалить всю строку из таблицы значений; б) очистить поле ВР соответствующей строки; в) сделать что-то ещё, пока что не названное. Если а) - (4)+(8) или в (5), но в условие добавь ещё и проверку на ВР. Если б) - тогда ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Если (ТЗ.ВР="Индексация") И (ТЗ.ВД="ВзносВрем") Тогда ТЗ.ВР = ""; КонецЕсли; КонецЦикла; Если в) - то кто ж знает, что тебе надо. |
|||
15
Builder
29.02.16
✎
14:37
|
(14) Условие не выполнится никогда :)
|
|||
16
Mikeware
29.02.16
✎
14:40
|
(15) нужно это в бесконецный цикл обернуть.
подулим неопределенность класса "невыполняемое условие в бесконечном цикле" :-) Ну а дальше по правилу лопиталя.... |
|||
17
Garykom
гуру
29.02.16
✎
14:43
|
(16) по правилу буравчика интереснее
|
|||
18
Mikeware
29.02.16
✎
14:52
|
(17) по правилу лопиталя мы определяем, какие строик нужно удалить. а по правилу буравчика - уже, собственно, удаляем...
|
|||
19
Rie
29.02.16
✎
17:45
|
(15) "То ли лыжи не едут, то ли я ..." (хм, правила форума не позволяют мне дать себе характеристику в таком случае).
Однако попрошу всё же объяснить, почему такое условие "не выполняется никогда". Ибо у меня есть контрпример: таблица значений со строкой: (датанач: '01.04.2015', датакон: '01.04.2014', ВР: "Индексация", ВД: "ВзносВрем") Не знаю, существует ли такая строка у топикстартера - но она вполне возможна. Что не так? |
|||
20
HawkEye
29.02.16
✎
18:37
|
(19)
выполнится, выполнится... не переживай |
|||
21
Garykom
гуру
29.02.16
✎
20:24
|
(0) Правильное решение это раскидать разные ВР/ВД по разным таблицам и затем собирать как нуна по ключу "период"
Простое-тупое решение два цикла, сначала берем все "По окладу-----ВзносВрем" и для каждого перебираем все строки и если период совпадает то меняем "Индексация-----Индекс" на "По окладу-----ВзносВрем" осталось Свернуть("Датанач, дата кон, ВР, ВД", ""); - и оппа строчки одинаковые того - удалилися |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |