|
Отбор в ТЗ | ☑ | ||
---|---|---|---|---|
0
Олеся999
21.04.17
✎
10:20
|
Нужно оставить строки в таблице только те в которых: Количество будет равно 1 и 2 остальные удалить. Как это можно осуществить ?
пока только срабатывает условие : тзТаб = тз_Осн.Выгрузить(); ПараметрыОтбора = Новый Структура("Количество", 1); ТЗ = тзТаб.Скопировать(ПараметрыОтбора); тз_Осн.Очистить(); тз_Осн.Загрузить(ТЗ); пробовала так : ПараметрыОтбора = Новый Структура("Количество", 1 и 2); Но не работает |
|||
1
Живой Ископаемый
21.04.17
✎
10:21
|
да, не работает. Надо применить последовательно.
Либо второй вариант - скормить ТЗ построителю запроса, и добавить отбор ему. |
|||
2
Живой Ископаемый
21.04.17
✎
10:34
|
||||
3
Живой Ископаемый
21.04.17
✎
10:37
|
Если в исходной тз есть строки, в которых количество <0, то надо два элемента отбора.
|
|||
4
Живой Ископаемый
21.04.17
✎
10:37
|
тзТаб = мРезультатЗапроса.Выгрузить();
построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(тзТаб); ЭлементОтбора = Построитель.Отбор.Добавить("Количество"); ЭлементОтбора.Использование = истина; ЭлементОтбора.Значение = 2; ЭлементОтбора.ВидСравнения = ВидСравнения.МеньшеИлиРавно; тзРез = Построитель.Результат.Выгрузить(); тзРез.ВыбратьСтроку(); |
|||
5
Олеся999
21.04.17
✎
11:06
|
(4) Странно у меня почему то все вываливает.
|
|||
6
Олеся999
21.04.17
✎
11:07
|
и 1 и 2 и 3 и 4 итд...
|
|||
7
Живой Ископаемый
21.04.17
✎
11:09
|
2(5) в 13-й строке ошибка у тебя
|
|||
8
Олеся999
21.04.17
✎
13:28
|
(7) в какой 13-ой ?)
|
|||
9
СвинТуз
21.04.17
✎
13:40
|
В цикле не пробовали удалять?
Долго? |
|||
10
Ganiev
21.04.17
✎
13:44
|
Сделай Тз еще одну скопируй все с отбором "1" потом с отбором "2", и будет тебе счастье!
|
|||
11
Олеся999
21.04.17
✎
13:45
|
(9) я выполняю на сервере. а текущие данные не прокатят только на клиенте
|
|||
12
1dvd
21.04.17
✎
13:46
|
Запросом
|
|||
13
Олеся999
21.04.17
✎
13:46
|
(10) А нельзя я не знаю отбор как то по нескольким условиям делать сразу?
|
|||
14
FIXXXL
21.04.17
✎
13:46
|
(13) запросом - можно
|
|||
15
Олеся999
21.04.17
✎
13:46
|
(12) так это же ТЗ а не ТЧ, или в ТЗ тоже запросом прокатит ?
|
|||
16
1dvd
21.04.17
✎
13:48
|
(15) Можно в Запрос засунуть ТЗ
|
|||
17
Basilio
21.04.17
✎
13:48
|
(15) да. только придется во временную таблицу выгружать. думаю проще в цикле.
|
|||
18
Ganiev
21.04.17
✎
13:48
|
(13) А РеквизитФормыВЗначение и передать не?
(15) а почему нет? |
|||
19
1dvd
21.04.17
✎
13:49
|
(11) причем тут текущие данные?
|
|||
20
FIXXXL
21.04.17
✎
13:49
|
(15) типизируешь - прокатит
не хочешь типизировать - получай строки через НайтиСтроки и складывай их в новую таблицу |
|||
21
Олеся999
21.04.17
✎
13:49
|
(19) Ну если в цикле делать, сравнивать с условием и если не выполняется удалять строку
|
|||
22
1dvd
21.04.17
✎
13:50
|
(21) да. Только удалять не сразу, а вторым циклом. И причем тут текущие данные?
|
|||
23
Basilio
21.04.17
✎
13:51
|
маСтрокиКУдалению = Новый Массив;
Для Каждого строка Из тз_Осн Цикл Если строка.Количество = 1 Или строка.Количество = 2 Тогда мастрокиКУдалению.Добавить(строка) конеццикла; Для каждого строка из маСтрокиКУдалению Цикл тз_Осн.Удалить(строка); конеццикла; |
|||
24
Ganiev
21.04.17
✎
13:53
|
(23) Ну вот даже не дал ей самой разобраться
|
|||
25
Ganiev
21.04.17
✎
13:57
|
Можно одним циклом
н=1; Пока н<= Тз_Осн.Количество Цикл Если Тз_Осн[н].Количество =1 или Тз_Осн[н].Количество =2 Тогда Н=н+1; Иначе Тз_Осн.Удалить(н); КонецЕсли; КонецЦикла; |
|||
26
1dvd
21.04.17
✎
14:00
|
(25) ерунда получится
|
|||
27
Живой Ископаемый
21.04.17
✎
14:04
|
Капец в (4) рабочий код, в (2) - пруф.
|
|||
28
arsik
гуру
21.04.17
✎
14:06
|
Вот такт надо
(25) Инд=Тз_Осн.Количество()-1;
|
|||
29
Basilio
21.04.17
✎
14:06
|
(24) ты фото посмотри. не похоже что она способна в этом разобраться (если фото не фейк).
|
|||
30
catena
21.04.17
✎
14:09
|
(29)Дискриминация по зеленым кофточкам?
|
|||
31
Timon1405
21.04.17
✎
14:10
|
(27) садись, два. не учтены отрицательные числа
тзТаб= новый ТаблицаЗначений; тзТаб.Колонки.добавить("Количество",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой))); Для сч=-1 по 3 цикл Стр = тзТаб.Добавить(); Стр.Количество=Сч; КонецЦикла; построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(тзТаб); ЭлементОтбора = Построитель.Отбор.Добавить("Количество"); ЭлементОтбора.Использование = истина; ЭлементОтбора.Значение = 2; ЭлементОтбора.ВидСравнения = ВидСравнения.МеньшеИлиРавно; тзРез = Построитель.Результат.Выгрузить(); тзРез.ВыбратьСтроку(); |
|||
32
Живой Ископаемый
21.04.17
✎
14:18
|
2(31) читай (3)
|
|||
33
1dvd
21.04.17
✎
14:18
|
(32) а ноль?
|
|||
34
1dvd
21.04.17
✎
14:19
|
+ и разве можно делать два отбора по одному полю?
|
|||
35
Живой Ископаемый
21.04.17
✎
14:20
|
2(33) капец...
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(тзТаб); ЭлементОтбора = Построитель.Отбор.Добавить("Количество"); ЭлементОтбора.Использование = истина; ЭлементОтбора.Значение = 2; ЭлементОтбора.ВидСравнения = ВидСравнения.МеньшеИлиРавно; ЭлементОтбора = Построитель.Отбор.Добавить("Количество"); ЭлементОтбора.Использование = истина; ЭлементОтбора.Значение = 0; ЭлементОтбора.ВидСравнения = ВидСравнения.Больше; |
|||
36
Живой Ископаемый
21.04.17
✎
14:20
|
ленивые животные.
:) |
|||
37
Timon1405
21.04.17
✎
14:20
|
(32) или использовать
ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; ))) |
|||
38
Живой Ископаемый
21.04.17
✎
14:21
|
2(37) Ну... если количество не дробное, то наверное можно.
|
|||
39
catena
21.04.17
✎
14:21
|
(35)Сейчас скажут про полтора...
|
|||
40
dezss
21.04.17
✎
14:23
|
(39) в постановке только 1 и 2
|
|||
41
1dvd
21.04.17
✎
14:23
|
(35) см (34)
|
|||
42
catena
21.04.17
✎
14:24
|
(40)Вот именно. А код в (35) и полтора возьмет.
|
|||
43
dezss
21.04.17
✎
14:27
|
так ты прочитай (37) и (38)
|
|||
44
Живой Ископаемый
21.04.17
✎
14:27
|
окей, тогда в списке
|
|||
45
catena
21.04.17
✎
14:29
|
(43)Да я вообще не понимаю, что можно после (4) обсуждать. Там уже автор должен сам под свои нужды модифицировать. А у нее ошибка в 13 строке...
|
|||
46
Timon1405
21.04.17
✎
14:32
|
(45) так пятница же, можно и пообсуждать)
|
|||
47
dezss
21.04.17
✎
14:32
|
(45) да то ископаемый протелепатировал
|
|||
48
catena
21.04.17
✎
14:33
|
(46)Да тут скучно, автор на контакт не идет же.
|
|||
49
Живой Ископаемый
21.04.17
✎
14:34
|
(47) у меня хрустальный шар, купленный на алиэкспрессе. Когда мне 1Сники говорят что у них не вышло, я задаю ему вопрос "В какой строчке кода у них ошибка", и он всегда показывает.
|
|||
50
Олеся999
21.04.17
✎
14:37
|
(28) По циклу ходит но почему то не удаляет
|
|||
51
Живой Ископаемый
21.04.17
✎
14:37
|
ы...
|
|||
52
Олеся999
21.04.17
✎
14:37
|
(48) идет :)
|
|||
53
Олеся999
21.04.17
✎
14:38
|
(35) тоже пробовала не удаляет строки
|
|||
54
dezss
21.04.17
✎
14:38
|
(50) ужас...
столько советов и воспользовалась неправильным))) там наоборот, удаляет те, где 1 или 2 |
|||
55
Олеся999
21.04.17
✎
14:38
|
нулевых и отрицательных нет не было и не будет
|
|||
56
Олеся999
21.04.17
✎
14:39
|
(54) и не удаляет
|
|||
57
Живой Ископаемый
21.04.17
✎
14:39
|
2(53) в (4) рабочий код. все что дальше написано - бред психов.
|
|||
58
catena
21.04.17
✎
14:39
|
(51)Что "ы", давай строчку. Будем предлагать варианты решения.
|
|||
59
dezss
21.04.17
✎
14:39
|
(53) этот код не удаляет, он отбирает нужные тебе строки...
и после него надо добавить тзРез = Построитель.Результат.Выгрузить(); тзРез.ВыбратьСтроку(); |
|||
60
arsik
гуру
21.04.17
✎
14:41
|
(50) Поменяй условие
Если не (Тз_Осн[Инд].Количество =1 или Тз_Осн[Инд].Количество =2) Тогда |
|||
61
dezss
21.04.17
✎
14:44
|
(60) один фиг лучше удалять после, а не в самом цикле
|
|||
62
Олеся999
21.04.17
✎
14:45
|
(60) Да я так и поставила, там в другом у меня ошибка была, заработало спасибо, всем спасибо )))
|
|||
63
arsik
гуру
21.04.17
✎
14:46
|
(61) Чем лучше?
|
|||
64
dezss
21.04.17
✎
14:48
|
(63) сложнее ошибку допустить
|
|||
65
dezss
21.04.17
✎
14:49
|
(64) хотя при цикле с конца, конечно, ошибки не будет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |