![]() |
![]() |
![]() |
|
v8: Платформа 8.2: Подскажите как удалить строку из табличной части? | ☑ | ||
---|---|---|---|---|
0
Adilgeriy
14.04.09
✎
12:17
|
Доброго времени суток.
Подскажите как удалить строку из табличной части. &НаКлиенте Процедура ОбработатьВыполнить() Объект.Обработан=Истина; Для Каждого ТекСтрокаДанные из Объект.Данные Цикл Если ТекСтрокаДанные.Группа<> Объект.ВозрастнаяГруппа Тогда //ЗдесьНадо удаоитьтекущуюстроку; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
FanatToNight
14.04.09
✎
12:24
|
а через ТЗ не прокатит?
|
|||
2
1Cv8exe
14.04.09
✎
12:35
|
Прошу прощения, что не в тему. Просто небольшой вопрос по 8.2 тему для это не хочу создавать.
Кто знает при работе через веб-клиент лицензии используются? |
|||
3
Adilgeriy
14.04.09
✎
12:37
|
Может и пркатит до грузить туда обратно както не охото
|
|||
4
nop
14.04.09
✎
12:37
|
(2) за создание темы вроде ещё никого не наказывали
|
|||
5
SMakcik
14.04.09
✎
12:42
|
(0) Создавай массив строк которые необходимо удалить. Потом удаляй
|
|||
6
Adilgeriy
14.04.09
✎
14:51
|
Типа Так?
Процедура ОбработатьВыполнить() Объект.Обработан=Истина; ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Группа", Объект.ВозрастнаяГруппа); НайденныеСтроки = Объект.Данные.НайтиСтроки(ПараметрыОтбора); НайденныеСтроки.Очистить(); КонецПроцедуры Так вроде не удаляет и мне нужно не равен Объект.ВозрастнаяГруппа |
|||
7
TitanLuchs
14.04.09
✎
15:00
|
&НаКлиенте
Процедура ОбработатьВыполнить() Объект.Обработан=Истина; Для Каждого ТекСтрокаДанные из Объект.Данные Цикл Если ТекСтрокаДанные.Группа<> Объект.ВозрастнаяГруппа Тогда //ЗдесьНадо удаоитьтекущуюстроку; Объект.Данные.Удалить(ТекСтрокаДанные); КонецЕсли; КонецЦикла; КонецПроцедуры не катит? |
|||
8
vmv
14.04.09
✎
15:04
|
при чем тут 7, 8 или 9 версия. Удаление строк фиксированных коллекций, как вравило, абсурдно выполнять при обходе этой же коллекции
|
|||
9
TitanLuchs
14.04.09
✎
15:19
|
(8) Почему, можно, только надо организовать счетчик от количества строк до нуля, получать строку по счетчику, проверять условие, если надо строку удалять и сетчик уменьшать
|
|||
10
AquaKosh
14.04.09
✎
15:20
|
(8) При прямом проходе - да. А в обратном - нормально всё.
|
|||
11
Adilgeriy
14.04.09
✎
16:06
|
Процедура ОбработатьВыполнить()
Объект.Обработан=Истина; Счетчик=0; Для Счетчик=Объект.Данные.Количество() по 0 цикл Объект.Данные.Получить(Счетчик); Предупреждение(счетчик,1); Если Объект.Данные.Группа<> Объект.ВозрастнаяГруппа Тогда Объект.Данные.Удалить(Счетчик); КонецЕсли; КонецЦикла; КонецПроцедуры и как его в обратную сторону запустить? |
|||
12
AquaKosh
14.04.09
✎
16:20
|
(11) Типа так (общий принцип):
КоличествоЭлементовКоллекции = ПодразделенияДопРеквизита.Количество(); Для ОбратныйИндекс = 1 По КоличествоЭлементовКоллекции Цикл ЭлементКоллекции = ПодразделенияДопРеквизита[КоличествоЭлементовКоллекции - ОбратныйИндекс]; Если СтрокиКУдалению.Найти(ЭлементКоллекции) <> Неопределено Тогда ПодразделенияДопРеквизита.Удалить(ЭлементКоллекции); КонецЕсли; КонецЦикла; |
|||
13
TitanLuchs
14.04.09
✎
16:45
|
(11) "Для" в обратную сторону не рабюотает в 1С
Счетчик=Объект.Данные.Количество(); Пока Счетчик >=0 Цикл ... ... ... ... Счетчик = Счетчик - 1; КолнецЦикла; |
|||
14
TitanLuchs
14.04.09
✎
16:46
|
+(13) То есть
Счетчик=Объект.Данные.Количество() - 1; |
|||
15
Adilgeriy
14.04.09
✎
17:13
|
А как здесь указать что я работяю со строкой табличной части?
|
|||
16
TitanLuchs
14.04.09
✎
17:29
|
Счетчик=Объект.Данные.Количество() - 1;
Пока Счетчик >=0 Цикл Строка = Объект.Данные[Счетчик]; Если Строка.Группа <> Объект.ВозрастнаяГруппа Тогда Объект.Данные.Удалить(Счетчик); Счетчик = Счетчик - 1; КонецЕсли; Счетчик = Счетчик - 1; КолнецЦикла; |
|||
17
Joint
14.04.09
✎
17:34
|
(16) из условия, изменение счетчика убери, да
|
|||
18
Joint
14.04.09
✎
17:40
|
к = 0;
Пока к < ТабличнаяЧасть.Количество() Цикл лСтр = ТабличнаяЧасть[к]; Если лСтр.Группа <> Объект.ВозрастнаяГруппа Тогда ТабличнаяЧасть.Удалить(к); Продолжить; КонецЕсли; к = к + 1; КонецЦикла; |
|||
19
TitanLuchs
14.04.09
✎
17:47
|
(17) Да
(18) Пока к < ТабличнаяЧасть.Количество() - 1 Цикл А вообще надо делать не так ИМХО |
|||
20
TitanLuchs
14.04.09
✎
17:48
|
+(19) Хотя нет, правильно у тебя, торможу уже к концу дня
|
|||
21
Adilgeriy
14.04.09
✎
17:59
|
Спасибо все заработало и последний вопрос а как документы удалять что то не нашол этого меню
|
|||
22
TitanLuchs
14.04.09
✎
18:02
|
(21) В режиме тонкого и веб клиента предопределенной формы для удаления объктов нет, вставь ее из демоконфигурации 1С
|
|||
23
Adilgeriy
14.04.09
✎
22:48
|
Еще вопрос при вызове процедуры
Процедура ВремяПервойПриИзменении(Элемент) //лСтр = Объект.Данные.ТекущиеДанные; //лСтр.РезультатПервой=100; Как здесь записать значение в колонку другой строки КонецПроцедуры |
|||
24
Adilgeriy
15.04.09
✎
01:10
|
Ну что никто не знает? или пересчет по всему документу запускать надо?
|
|||
25
TitanLuchs
15.04.09
✎
10:39
|
(24) Бери коллекцию строк, находи нужную, получай ее и изменяй. По какому условию надо найти "другую строку"?
|
|||
26
Adilgeriy
15.04.09
✎
21:53
|
С (23) разобрался но в продолжение 18 код работает но ведет себя странно. Как бы удаеляет не те строки пробывал вот так:
Процедура ОбработатьВыполнить() О//бъект.Данные.Сортировать("Группа Убыв"); Если Объект.ВозрастнаяГруппа=Неопределено тогда Предупреждение("Укажите возрастную группу"); Иначе Объект.Обработан=Истина; Счетчик = 0; Пока Счетчик < Объект.Данные.Количество() Цикл лСтр = Объект.Данные[Счетчик]; Если лСтр.Группа <> Объект.ВозрастнаяГруппа Тогда лСтр.Удалить(); //Объект.Данные.Удалить(Счетчик); Продолжить; КонецЕсли; Счетчик = Счетчик + 1; КонецЦикла; КонецЕсли; Объект.Данные.Сортировать("Подразделение Убыв"); КонецПроцедуры причем сортировка пов конце процедыры необходима иначе даже докуменит записать нельзя(( |
|||
27
Adilgeriy
16.04.09
✎
00:04
|
В логике ошибок нет походу ошибки в платформе вот код который работает
&НаКлиенте Процедура ОбработатьВыполнить() Объект.Обработан=Истина; БылоСтрок= Объект.Данные.Количество(); Для Счетчик =1 по Объект.Данные.Количество() Цикл НомерСтроки= БылоСтрок-Счетчик; лСтр = Объект.Данные[НомерСтроки]; Если лСтр.Группа = Объект.ВозрастнаяГруппа Тогда Иначе Объект.Данные.Удалить(НомерСтроки); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
28
TitanLuchs
16.04.09
✎
11:03
|
(27) Это не ошибка в платформе, надо было сразу удалять из коллекции по номеру, а не использовать метод строки "Удалить", я тебе в (16) так и написал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |