Имя: Пароль:
1C
1С v8
Удалить лишние строки ТЧ
,
0 Flempy
 
14.03.22
12:43
Имеется, предварительно заполненная данными, табличная часть, например https://ibb.co/gDShFBN
Так же есть запрос который возвращает следующее https://ibb.co/3djfJ3p
Как можно удалить строки в ТЧ, которые не соответствуют данным запроса и при этом не добавлять из него новых строк, чтобы получилось следующее https://ibb.co/g6qzWfR
1 PuhUfa
 
14.03.22
12:47
Табличная часть (Tabular section)
Удалить (Delete)
Синтаксис:
Удалить(<Индекс>)
Параметры:
<Индекс> (обязательный)
Тип: Число, Строка табличной части.
Индекс удаляемой строки в табличной части, либо сама удаляемая строка.
Описание:
Удаляет строку с указанным индексом из табличной части.
2 Flempy
 
14.03.22
12:52
Есть конечно мысль получить выборку из запроса и перебирать каждую строку ТЧ, сравнивая номенклатуру строки со строкой выборки
3 acht
 
14.03.22
13:31
(0) Переписать запрос так, чтобы он принимал параметром табличную часть и возвращал номера строк, которые надо удалить.
4 Масянька
 
14.03.22
13:58
(0) А нельзя заполнять только нужными?
5 RomaH
 
naïve
14.03.22
14:25
+(3) ВЫБРАТЬ ИЗ ТЧ ЛЕВОЕ СОЕДИНЕНИЕ Запрос ПО ТЧ.Номенклатура = Запрос.Номенклатура ГДЕ Запрос Есть NULL
6 Said_We
 
14.03.22
14:51
(5) + Главное что бы дублей номенклатуры не было. И условие наверное НЕ есть NULL. Нам же не чай нужен, которого нет в таблице, которую возвращает Запрос фильтр.

Можно и в условие поставить фильтр на номенклатуру:
Выбрать тч.* из тч как тч
где тч.Номенклатура в (выбрать т.номенклатура из Запрос_какой_то как т)

В этом случае не важно есть дубли или нет.
Если нужно и количество как-то учитывать, а не только номенклатуру, то вариант в (5), только предварительно свернуть таблицы источника и фильтра по номенклатуре. Числовые поля посчитать.
7 RomaH
 
naïve
14.03.22
15:05
(6) нет - именно есть NULL - остаются только строки в которых номенклатура <> - те которые удалить надо
8 RomaH
 
naïve
14.03.22
15:06
+(7) ... это уже в подкорке - пишу не думая
9 Garykom
 
гуру
14.03.22
15:07
При записи объекта с ТЧ в базу происходит ли перезапись всех строк ТЧ с предварительным удалением их?
Если до то НЕ НАДО УДАЛЯТЬ строки. КОПИРУЙТЕ нужные В НОВУЮ ТЧ,
10 Said_We
 
14.03.22
15:07
(8) Зачем искать строки, которые надо удалить и потом построчно удалять, если можно искать только те, которые необходимо оставить и перегрузить табличную часть?
11 Garykom
 
гуру
14.03.22
15:08
(10) именно
12 RomaH
 
naïve
14.03.22
15:09
(10) тоже вариант - задача была "удалить строки" - вот и выдал для удалить
13 Said_We
 
14.03.22
15:40
Задача в (0) аналогична задачи тут
Программно скопировать строки с отбором в тч

Только в этой задаче кроме номенклатуры учитывается и вид номенклатуры, при этом у одной и той же номенклатуры вид может быть разный и одновременно.
Другими словами условие не на одну колонку, а на сочетание нескольких.

Описано как загрузить в табличную часть из ТЗ. Саму ТЗ можно получить из результата запроса методом выгрузить.
14 DES
 
14.03.22
16:26
https://fastcode.im/Templates/7906
Фильтрация ТЗ