Надо найти строки в ТЗ, значение которых >0 #379384


#0 by Masquerade
Скажем так. Или значение в которых не равно определенному значению. Отбор работает на строгое равентсво. А как быть в моем случае? Как-то мне казалось, что я нашёл выход, но даже если так, то я его забыл.
#1 by Живой Ископаемый
нашел выход с помощью временных таблиц и языка запросов?
#2 by Masquerade
Да нефига - как-то проще все решалось, но возможно меня глючит
#3 by Живой Ископаемый
то есть сортировать нельзя?
#4 by Черный всадник
И дальше? Делать цикл по ТЗ?
#5 by Живой Ископаемый
Находить первую = 0.. все что выше - те что нам нужны...
#6 by Masquerade
Наверное, как-то так. А как насчет диапазона значений.
#7 by Aprobator
это прокатит только если значение присутствует в ТЗ, а если к примеру 0 там нет, а условие > 0 -  то данная методика идет лесом. Так что - временная таблица и запрос.
#8 by H A D G E H O G s
А вам не кажется, что сортировка будет помедленней, чем полный перебор? :-)
#9 by Masquerade
Только тесты рассудят нас. А на это нет времени (как обычно)
#10 by Живой Ископаемый
точно... ну стало быть временные...
#11 by NcSteel
Рспечатать ТЗ и ручко по зачеркивать не нужные строки. Потом вручную их загнать с базу. А вообще Запрос.
#12 by Mitriy
печатать не круто... ручку и бумагу... потом вбить в базу результаты...
#13 by Leksus
Мне кажется ПостроительЗапроса будет быстрее работать чем Временная таблица + Запрос, т.к. не будет лишних передач Клиент-Сервер
#14 by ДенисЧ
Тесты? Назови алгоритм сортировки со сложностью меньше O(n*log n) ...
#15 by H A D G E H O G s
Ну тут и другие факторы влияют, присущие 1С.. Возможно сортировка будет даже быстрее полного перебора, особливо при малых размерах ТЗ.
#16 by Fragster
ИМХО с ТЗ в 200 строк - что перебор, что запрос со временными таблицами - пофиг, лишь бы написано было так, что и через год понятно будет - как и зачем
#17 by Vahe
Сортировка медленнее работает чем чем перебор?
#18 by ДенисЧ
а что, быстрее?
#19 by Fragster
в том плане, что встроенная функция "сортировать" может быть реализована на более низком уровне, чем встроенный язык...
#20 by Vahe
То есть медленнее?
#21 by ДенисЧ
В равных условиях - медленней. Но если учитывать , то тесты...
#22 by Vahe
Есть ли какая нибудь статистика что сортировка медленнее работает чем перебор?
#23 by Fragster
то есть ХЗ... - и существуют частные случаи, которых довольно много, в которых встроенная сортировка быстрее прохода по таблице с условием... но это все частные случаи
#24 by ДенисЧ
Это не статистика, это математика :-) Самая быстрая сортировка имеет сложность O(n * log n). Перебор - O(n)
#25 by Vahe
Сколько строк в тз, при сортировке каких данных?
#26 by Fragster
кстати, как там комп? удовлетворил ожидания?
#27 by Vahe
То бишь сортировать ссылочный тип данных или не ссылочный и так далее не имеет значение?
#28 by Vahe
Даже если учесть индексы в тз?
#29 by Fragster
в 1с по представлению идет сортировка
#30 by hhhh
ну а зачем сортировать, если это все равно ничего не даст. См .
#31 by Vahe
кто сказал что не даст?
#32 by Vahe
и что там в написанно?))
#33 by Fragster
афигеть :(
#34 by Vahe
что такое?
#35 by Vahe
У меня нет статистических данных, что быстрее, но в тз найти все не 0 значение по колонке очень легко с помощью сортировки
#36 by Vahe
А ДенисЧ знающий человек, и я склонен ему верить, но хочется узнать по подробнее про быстродействия механизмов
#37 by Живой Ископаемый
В 7 написано что строк с значением 0 может не быть вовсе.. Ну посортировал ты строки, у половине у тебя меньше нулдя, в половине - больше.. Ищешь Первую с нулем и не находишь... Думаешь что у тебя все меньше нуля... А это не так...
#38 by Vahe
да ладно))).
#39 by Vahe
есть прямая и обратная сортировка, соотвественно (ВОЗР и УБЫВ)
#40 by Живой Ископаемый
да, я это учел.. И все равно нуля ты не нашел.. и что?
#41 by ЗлобнийМальчик
ищем первую больше 0...
#42 by Vahe
если тебе нужно точно узнать отдельно все (-) и отдельно все (+) можешь просто добавить строку с 0
#43 by Живой Ископаемый
Читаем 0 и вспоминаем что метод Найти ищет только по определенному значению, а не > или <
#44 by Vahe
а если нужно узнать все не 0, то вообще нет проблем
#45 by Живой Ископаемый
Ну... это конечно способ.. как автор топика на него посмотрит..
#46 by Fragster
читай до полного просветления
#47 by Живой Ископаемый
А ну?
#48 by Stepa86
Двоичный поиск рулит =) У мя тз с 15000 строками сортируется, а потом обходится где то за секунду, так что не вижу смысла извращаться...
#49 by Vahe
ты хоть прочел что написанно в ))) умник?
#50 by Vahe
что не понятно то?
#51 by Живой Ископаемый
Как отобрать строки с ненулем... при помощи сортировки - непонятно..
#52 by Vahe
(ТЗ.Индекс(НайденнаяСтрока) - 1) <-- индекс последней строки значении в (-) КонецЕсли;
#53 by Fragster
угу. токо после того, как написал уже :(
#54 by Vahe
то же самое в обратном порядке, то есть ТЗ.Сортировать("Колонка УБЫВ"); даст тебе (+)
#55 by Fragster
если это к то потом пересортировываем, и снова ищем?
#56 by Vahe
да, к сожалению 2 раза придется сортировать, при таком поиске
#57 by Vahe
А если просто все не 0 значения то тогда 1 раз сортируем
#58 by Fragster
да и нафиг, на самом деле... ИМХО для работы со сложными условиями есть 2 метода - временные таблицы и перебор... а вот какой из них быстрее - вот в чем вопрос...
#59 by Живой Ископаемый
Я просто когда прочитал "а если нужно узнать все не 0, то вообще нет проблем" - думал что это означает, что проще чем найти все >0... оказалось в два раза сложнее...
#60 by Vahe
может и так
#61 by Vahe
да нет, проще найти все не 0 значения, или только все (-), или только все (+) посколько 1 раз надо сортировать
#62 by Живой Ископаемый
Проще чего?
#63 by Vahe
Не понимаю сути вопроса? что не понятно?
#64 by Живой Ископаемый
2 Суть вопроса... "Проще" - это сравнительная степень от прилагательного "простой"... Ты перечислил три варианта, которые "проще"... хочу услышать 4-вариант, если он один или еще какие-то, если их несколько, которые просто "простые", то есть сложнее тех, которые "проще"... Так понятно?
#65 by Живой Ископаемый
ясно, слово "проще" в данном случае - слово паразит...
#66 by hhhh
но зачем сортировать, ты так и не объяснил. Просто перебираем строки, и сравниваем каждую с нулем. Преимущества: 2) код меньше, легче для понимания 3) сохраняем исходную таблицу в неприкосновенности, а ствоей сортировкой она однозначно херится, так что ее еще и придется копировать на всякий случай.
#67 by hhhh
+
#68 by Aprobator
Коль пошла такая пъьянка - я тады тоже поизвращаюсь:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С