|   |   | 
| 
 | удаление строки в ТЧ | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Несколько явных ошибок исправил во втором варианте.
  Остальное на месте) 
  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |