|
удаление строки в ТЧ | ☑ | ||
---|---|---|---|---|
0
mau89
18.03.13
✎
14:32
|
Здравствуйте подскажите, не получается удалить строки из табличного поля с помощью внешней обработки заполнения табличной части. Подскажите в какую сторону копать?
Процедура Инициализировать(Объект1,ИмяТабличнойЧасти1,ТабличноеПолеОбъекта1) Экспорт запрос = Новый Запрос; запрос.Текст= "ВЫБРАТЬ | ЛицевыеСчетаРаботниковОрганизации.ФизЛицо, | ЛицевыеСчетаРаботниковОрганизации.Организация, | ЛицевыеСчетаРаботниковОрганизации.Банк |ИЗ | РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации"; РезультатЗапроса = запрос.Выполнить(); ТаблицаРезультатов = РезультатЗапроса.Выгрузить(); Для Каждого стр Из ТаблицаРезультатов Цикл Для Каждого СтрокаДокумента из ТабличноеПолеОбъекта1.Значение Цикл Если СокрЛП(СтрокаДокумента.физлицо)=СокрЛП(стр.физлицо) тогда // вот тут надо удалить строки которые совпадают, а именно из СтрокаДокумента КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
1
John83
18.03.13
✎
14:34
|
собираешь строки для удаления, затем удаляешь
|
|||
2
mau89
18.03.13
✎
14:35
|
(1) а подробнее можно, в 1с новичок еще
|
|||
3
Михаил Козлов
18.03.13
✎
14:35
|
Удалите строку (СтрокаДокумента) из ТЧ, какое значение будет в СтрокаДокумента в следующей итерации цикла?
|
|||
4
НафНаф
18.03.13
✎
14:35
|
(0) а не проще в запросе получать строки, подлежащие удалению?
|
|||
5
salvator
18.03.13
✎
14:36
|
НайтиСтроки
+ поиск по форуму, 100500 раз уже обсуждалось |
|||
6
mau89
18.03.13
✎
15:02
|
(3) суть задачи в том чтоб убрать из документа зарплата к выплате, убрать всех физлиц с лицевыми счетами при выборе способа оплаты через кассу, т.е при удалении останутся только физлица без лицевых счетов.
(4) а не подскажите каким образом это сделать? |
|||
7
Kreont
18.03.13
✎
15:08
|
Сразу в запросе отбери что нужно, но у меня в конф.еще есть:
РегистрСведений.ПараметрыВыплатыЗПРаботников по нему и можно отобрать что надо. |
|||
8
Фокусник
18.03.13
✎
15:10
|
(0) Из своего "ТабличноеПолеОбъекта1.Значение" выгрузи колонку с физ.лицами (в массив). В запросе исключи физ.лиц из этого массива.
|
|||
9
Reset
18.03.13
✎
15:19
|
(6) Расшифрую то что раньше сказали:
Метод (1): ДляУдаления=Новый Массив; Для Каждого стр Из ТаблицаРезультатов Цикл Для Каждого СтрокаДокумента из ТабличноеПолеОбъекта1.Значение Цикл Если СтрокаДокумента.физлицо=стр.физлицо тогда ДляУдаления.Добавить(СтрокаДокумента); КонецЕсли; КонецЦикла; КонецЦикла; Для каждого Удаляемая из ДляУдаления ТабличноеПолеОбъекта1.Значение.Удалить(Удаляемая); КонецЦикла; Метод (4): ТекстЗапроса="Выбрать НомерСтроки,ФизЛицо Поместить ВДокументе Из &ТЗ Как ТЗ; // Выбрать Различные НомерСтроки Из ВДокументе Внутреннее Соединение РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК РС По РС.ФизЛицо=ВДокументе.ФизЛицо Упорядочить По НомерСтроки Убыв"; Запрос.УстановитьПараметр("ТЗ",ТабличноеПолеОбъекта1.Значение.Скопировать(,"НомерСтроки,ФизЛицо")); Рез=Запрос.Выполнить(); Если не Рез.Пустой() тогд Выборка=Рез.Выбрать(); Пока Выборка.Следующий() цикл ТабличноеПолеОбъекта1.Значение.Удалить(Выборка.НомерСтроки-1); КонецЦикла; КонецЕсли; |
|||
10
mau89
18.03.13
✎
15:24
|
(9) спасибо за такой ответ
|
|||
11
Reset
18.03.13
✎
15:24
|
Несколько явных ошибок исправил во втором варианте.
Остальное на месте)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |