Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Получение строк табличной части документа

Получение строк табличной части документа
Я
   ЯСтараюсь
 
28.05.18 - 12:41
Как получить строки табличной части документа, если по отбираемому полю есть в ТЧ есть дубли?

Есть массив из справочника ЛицевыеСчета
Есть документ в ТЧ которой есть колонка ЛицевойСчет
Необходимо получить строки с теми ЛицевымиСчетами, которые содержатся в массиве для дальнейшей обработки. Но в документе может быть несколько строк с одинаковым ЛицевымСчет-ом

Если делать цикл по массиву и воспользоваться функцией Найти(), можно получить только одну из строк с одинаковыми лицевыми счетами
СтрокаТЧ = ЛицевыеСчета.Найти(ЛС,"Объект");

Как получить все строки?
 
 
   Timon1405
 
1 - 28.05.18 - 12:42
НайтиСтроки()
   Михаил Козлов
 
2 - 28.05.18 - 12:43
Либо запросом к ТЧ, либо по каждому ЛС из массива - НайтиСтроки
   ЯСтараюсь
 
3 - 28.05.18 - 12:58
Табличная часть (Tabular section)
НайтиСтроки (FindRows)
Синтаксис:

НайтиСтроки(<ПараметрыОтбора>)
Параметры:

<ПараметрыОтбора> (обязательный)

Тип: Структура.
Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:

Тип: Массив.
   ЯСтараюсь
 
4 - 28.05.18 - 12:59
НайтиСтроки() - возвращает массив, а мне нужно получить эти строки и далее с ними еще работать
   ЯСтараюсь
 
5 - 28.05.18 - 13:00
т.е. изменить значения другого столбца
   Ёпрст
 
6 - 28.05.18 - 13:01
(4) получает массив строк ТЧ.
   Ёпрст
 
7 - 28.05.18 - 13:02
у тя будет доступ к  строке табличной части, если что -то меняешь, считай, меняешь в ТЧ.
   Zmich
 
8 - 28.05.18 - 13:02
(4). Получаешь массив строк, потом циклом Для Каждого ... Из <Массив> обходишь и меняешь, что тебе нужно.
   Ёпрст
 
9 - 28.05.18 - 13:02
фирштейн ?
   ЯСтараюсь
 
10 - 28.05.18 - 13:07
(9) - Спасибо,щас попробую, отпишусь
 
 Рекламное место пустует
   Вася Теркин
 
11 - 28.05.18 - 13:08
(10) Нет!!! не пробуй!!!
Все, больше мы его не увидим.
   ЯСтараюсь
 
12 - 28.05.18 - 13:15
А можно сделать отбор строк ТЧ по всем значением массива разом? Или нужно в цикле перебором?
   ЯСтараюсь
 
13 - 28.05.18 - 13:15
МассивЛС =МС_СтрокаВМассивСтрокЛС(СтрокаТабличнойЧасти.СписокЛС, ",");
            ОтборЛС = Новый Структура;
            ОтборЛС.Вставить("Объект",МассивЛС);
            ТЧДок = ЛицевыеСчета.НайтиСтроки(ОтборЛС);
            Для каждого Стр из ТЧДок Цикл  
                Стр.ДокументОплаты = ДокументОплатыПлатежнойКартой.Ссылка;    
            КонецЦикла;
так не заработало...
   ЯСтараюсь
 
14 - 28.05.18 - 13:17
Как сделать оптимально - с точки зрения производительности?
   ЯСтараюсь
 
15 - 28.05.18 - 13:26
Сделал перебором. Спасибо большое всем!
            МассивЛС =МС_СтрокаВМассивСтрокЛС(СтрокаТабличнойЧасти.СписокЛС, ",");
            Для Каждого ЭлементМассива из МассивЛС Цикл
                ОтборЛС = Новый Структура;
                ОтборЛС.Вставить("Объект",ЭлементМассива);
                МассивТЧДок = ЛицевыеСчета.НайтиСтроки(ОтборЛС);
                Для каждого Стр из МассивТЧДок Цикл  
                    Стр.ДокументОплаты = ДокументОплатыПлатежнойКартой.Ссылка;    
                КонецЦикла;
            КонецЦикла;
   yavasya
 
16 - 28.05.18 - 13:27
(15) Привыкай запросом, цикл в большинстве случаев некашерно
   ЯСтараюсь
 
17 - 28.05.18 - 13:32
(16) т.е. запросом вытащить строки ТЧ документа (в параметр установить массив) и дальше перебором изменить нужный реестр?
И если менять в переборе, то в ТЧ тоже меняется?
   ЯСтараюсь
 
18 - 28.05.18 - 13:33
*реквизит

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует