Имя: Пароль:
1C
1С v8
Удалить строки не соответствующие отбору.
0 haggart
 
20.11.14
17:36
В табличной части документа я устанавливаю отбор, который скрывает некоторые строки. Можно ли как-то быстро удалить эти строки, которые не соответствуют отбору?

Спасибо.
1 Ник второй
 
20.11.14
17:38
Установить отбор на эти строки и удалить
2 Крошка Ру
 
20.11.14
17:39
(1) То есть?
3 YFedor
 
20.11.14
17:39
Честно говоря, быстрого способа на ум не приходит
4 Крошка Ру
 
20.11.14
17:39
Мне просто насчет быстроты интересно
5 Ник второй
 
20.11.14
17:40
(2) Что не есть?

Устанавливаем отбор в ТЧ и по условию отбора на экране отобразятся только нужные строки. Далее зажимаем дел, или выделить все и опять дел
6 Heckfy
 
20.11.14
17:40
Может при заполнении ТЧ сразу обрабатывать?
7 Wobland
 
20.11.14
17:40
(0) а почему бы и не медленно?
8 Ник второй
 
20.11.14
17:41
(3) Несколько секунд это не быстро? )))
9 Крошка Ру
 
20.11.14
17:41
(5) Ааааа))
Нажатие Del генерируем программно?)
10 Ник второй
 
20.11.14
17:41
(6) они уже есть в ТЧ, сейчас идет допил наильником видимо )
11 Ник второй
 
20.11.14
17:41
(9) Зачем? один раз нажимаем и все удалилось
12 haggart
 
20.11.14
17:42
Удалить нужно программно.
13 Ник второй
 
20.11.14
17:43
(12) Появилась новая задача? Почему нельзя сразу описывать ее?
14 Ник второй
 
20.11.14
17:43
Если программно, то запросом конечно.
15 haggart
 
20.11.14
17:43
Можно ли по отбору, который установлен выгрузить эти данные во временную таблицу, потом очистить основную и загрузить из временной (где по отбору выгрузились только нужные данные)?
16 Крошка Ру
 
20.11.14
17:43
(12) Чтоб не заморачиваться:

МассивСтрок = ТЧ.НайтиСтроки(КакойТоОтбор);
Для Каждого СтрокакТЧ Из ТЧ Цикл
  ТЧ.Удалить(СтрокаТЧ);
КонецЦикла;
17 Heckfy
 
20.11.14
17:43
Загони нужные в массив, далее запросом вытащи строки, которые не в Массив и поудаляй их.
18 Крошка Ру
 
20.11.14
17:44
(15) Это ты разрешения спрашиваешь?
19 haggart
 
20.11.14
17:45
(16) Можно ли по отбору в качестве КакойТоОтбор использовать отбор на элементФормы ТабличнойЧастиДокумента?
20 Ник второй
 
20.11.14
17:45
(15) Как ты у ТЧ отбор установил? У ТЧ нет отбора
21 Ник второй
 
20.11.14
17:46
(19) Нет, так как отбор дейстувет только на первые N отображаемые данные, остальные не отбирает.

И на будущее! С данными надо работать посредством обращения к данным, а не через элементы формы
22 Крошка Ру
 
20.11.14
17:47
(19) А вот об этом можно почитать в СП)) Я тебе идею кинул - разрабатывай дальше
23 Ник второй
 
20.11.14
17:47
(17) Насоветуешь сейчас глупостей
24 Ник второй
 
20.11.14
17:47
(22) Читай не читай, но так нельзя.
25 Ник второй
 
20.11.14
17:47
Самый простой вариант это Запрос
26 Крошка Ру
 
20.11.14
17:47
(21) Ну, тут, как в том анекдоте - "Случаи, они разные бывают"
27 Гобсек
 
20.11.14
17:48
На основе своего отбора сделай другой, который отбирает строки, которые нужно удалить. Это вероятнее всего, тривиально. Далее (16)
28 Крошка Ру
 
20.11.14
17:48
(24) "Да я сто раз так делал!"(с)
29 Ник второй
 
20.11.14
17:48
(26) за долгую карьеру не встречал таких случаев. И за подобные косяки раздавал подзатыльники
30 ОператорПК
 
20.11.14
17:48
(19)
Постр=Новый ПостроительЗапроса;
    Постр.ИсточникДанных=Новый ОписаниеИсточникаДанных(ТабличноеПоле2);
    Постр.Выполнить();
    РРР=Постр.Результат.Выгрузить();
31 Ник второй
 
20.11.14
17:48
(28) Установить отбор на элементы формы и выгрузить в тЗ?
мда....
32 haggart
 
20.11.14
17:49
Короче, отбор на отображение для ЭлементаФормы нельзя больше нигде использовать?
33 ОператорПК
 
20.11.14
17:50
(32) см (30) это для обычных форм.
34 haggart
 
20.11.14
17:50
мне для обычных форм
35 Ник второй
 
20.11.14
17:51
(32) У тебя курсовая на тему "Использования отбора на ЭлементыФормы"?
Используй там где нужно и для чего предназначен.

Для работы ТЧ есть правила:
1. Если ТЧ большая то использовать Запрос
2. Если объект документа получен, то использовать перебор
36 Крошка Ру
 
20.11.14
17:51
(31) Э не, ты мне лишнего не шей! Причем здесь установить отбор и выгрузить в ТЗ?
37 Ник второй
 
20.11.14
17:53
(36) ты ссылаешься на пост который как раз об этом.
38 haggart
 
20.11.14
17:53
У меня задача такая... есть табличное поле, где более 10 полей. Пользователь хочет на каждое поле делать условие, причем условия разные от "в списке", в диапазоне, до "кроме  в списке". Встроенный отбор на элементФОрмы очень удобен в этом отношении. Когда пользователь путем проб устанавливает отборы, которые ему нравятся, он хочет, чтобы то, что скрыто по отбору вообще удалилось.
39 Ник второй
 
20.11.14
17:55
(38) С таким подходом только построитель, который тебе выдаст нужные строки. Этот результат и присвой к ТЧ
40 haggart
 
20.11.14
17:57
Мля... я  с построителем никогда не работал. Я вообще вещи в себе стараюсь не использовать.
41 Ник второй
 
20.11.14
17:58
(40) В данном случае он удобней, так как Отборы на форме этофактически урезанный Построитель, поэтому можно эти настройки легко перенести в него.
42 haggart
 
20.11.14
17:58
Мне бы хоть какой-то пример... с построителем и отбором в нем.
43 Крошка Ру
 
20.11.14
18:01
(37) В каком месте?
44 Ник второй
 
20.11.14
18:03
(43) 28 пост ссылается на 24, а 24 на 22, а 22 на 19, который:
Можно ли по отбору в качестве КакойТоОтбор использовать отбор на элементФормы ТабличнойЧастиДокумента?
45 Ник второй
 
20.11.14
18:03
46 haggart
 
20.11.14
18:08
ясно, буду разбираться с построителем. Похоже другого варианта нет.
47 Крошка Ру
 
20.11.14
19:30
(44) И я ответил, что, о том что можно ли так делать - читать в СП. Об "Установить отбор на элементы формы и выгрузить в тЗ"
из 31 разговора не было.
48 Михаил Козлов
 
20.11.14
20:03
Можно еще:
ТабличноеПоле (TableBox)
ПроверитьСтроку (CheckRow)
Синтаксис:
ПроверитьСтроку(<Строка>)
Параметры:
<Строка> (обязательный)
Строка табличного поля. Тип параметра зависит от типа редактируемого в табличном поле значения.
Описание:
Проверяет, соответствует ли строка, установленному в табличном поле отбору.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.