| 
    
        
     
     | 
    
    
  | 
Поиск в результате запроса: ТЗ VS Выборка | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Timon1405    
     11.02.15 
            ✎
    12:25 
 | 
         
        Часто возникают ситуации, когда нужно поискать что-нибудь в результатах запроса. Насколько мне известно, есть два варианта поиска:
 
        1. Выгружаем результат запроса в ТЗ, индексируем колонку поиска, ищем через найти/найтистроки 2. Используем метод Выборка.НайтиСледующий(), после найденной сбрасываем выборку. вопросов несколько: будет ли во втором случае выборка индексирована, что в каких случаях будет работать быстрее, что используете вы и почему(может быть свой вариант)? спасибо.  | 
|||
| 
    1
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:29 
 | 
         
        (0) 
 
        Колонку поиска не стоит индексировать.  | 
|||
| 
    2
    
        Гёдза    
     11.02.15 
            ✎
    12:31 
 | 
         
        (1) Почему?     
         | 
|||
| 
    3
    
        ShoGUN    
     11.02.15 
            ✎
    12:32 
 | 
         
        (0) Померяй.     
         | 
|||
| 
    4
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:32 
 | 
         
        (2) Моего слова тебе недостаточно?     
         | 
|||
| 
    5
    
        ДенисЧ    
     11.02.15 
            ✎
    12:33 
 | 
         
        (4) неа     
         | 
|||
| 
    6
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:33 
 | 
         
        (5) Я не с тобой разговаривал.     
         | 
|||
| 
    7
    
        РеализоВано    
     11.02.15 
            ✎
    12:33 
 | 
         
        (0) <Часто возникают ситуации, когда нужно поискать что-нибудь в результатах запроса>
 
        А для чего тогда запрос?  | 
|||
| 
    8
    
        ShoGUN    
     11.02.15 
            ✎
    12:34 
 | 
         
        (4) Ты миссионер что ли? Знаешь - объясни, а на слово верить - это к журналистам :)     
         | 
|||
| 
    9
    
        ДенисЧ    
     11.02.15 
            ✎
    12:34 
 | 
         
        (6) а мне до ширинки, с кем ты разговаривал.
 
        Обосновывай утверждение. Или слив считаем.  | 
|||
| 
    10
    
        Гёдза    
     11.02.15 
            ✎
    12:34 
 | 
         
        (4) С каких пор ты стал истиной в последней инстанции?
 
        Экзамен сдал и зазвездился чтоли?  | 
|||
| 
    11
    
        rozer76    
     11.02.15 
            ✎
    12:34 
 | 
         
        (1) еще как стоит... проверено 100%     
         | 
|||
| 
    12
    
        ShoGUN    
     11.02.15 
            ✎
    12:35 
 | 
         
        (7) Для того, чтобы сформировать выборку в памяти.     
         | 
|||
| 
    13
    
        Гёдза    
     11.02.15 
            ✎
    12:35 
 | 
         
        У нас ту не клуб джентельменом, мы на слово не верим     
         | 
|||
| 
    14
    
        rozer76    
     11.02.15 
            ✎
    12:35 
 | 
         
        (4) корона не жмет ?     
         | 
|||
| 
    15
    
        РеализоВано    
     11.02.15 
            ✎
    12:35 
 | 
         
        (12) И потом по ней ещё раз искать чтото? Бред.     
         | 
|||
| 
    16
    
        Бубка Гоп    
     11.02.15 
            ✎
    12:37 
 | 
         
        (4) О Великий! Твоего слова достаточно чтобы вода стала вином! Не слушай простых смердов!     
         | 
|||
| 
    17
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:37 
 | 
         
        (10) Хехе, отлично.     
         | 
|||
| 
    18
    
        ShoGUN    
     11.02.15 
            ✎
    12:38 
 | 
         
        (15) Пожалуйста вам:
 
        Загрузка данных из файла, при том, что часть данных(но не все!) уже существует в БД. Ищем данные запросом по ключам, если в результате запроса есть такие данные, то подставляем из результата запроса, если нет - создаём. Предложи, как решить эту задачу ТОЛЬКО запросом.  | 
|||
| 
    19
    
        Timon1405    
     11.02.15 
            ✎
    12:39 
 | 
         
        (7) например, в ПриПолученииДанных получили набор свойств, их потом заполняем оформление строк.     
         | 
|||
| 
    20
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:39 
 | 
         
        Индексировать стоит в большинстве своем только долгоживущие данные.
 
        Если число поисков по таблице мало - смысла индексировать нет. Если число поисков по таблице велико (большая внешняя таблица) - проще обойти эти 2 таблицы в одном цикле (merge join). Все, согласно классике.  | 
|||
| 
    21
    
        Бубка Гоп    
     11.02.15 
            ✎
    12:41 
 | 
         
        (20)я так понял тс ищет неоднократно, так что проиндексировать все таки смысл есть     
         | 
|||
| 
    22
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:47 
 | 
         
        (21) Я думаю - проще обойти в одном цикле эти 2 отсортированные предварительно таблицы и сформировать массив найденных строк-совпадений.
 
        Да, тяжко и непривычно, но это оптимально и заставляет думать.  | 
|||
| 
    23
    
        РеализоВано    
     11.02.15 
            ✎
    12:48 
 | 
         
        (18) Данные из файла в ТЗ, ТЗ в запрос с джойнить с номенклатурой, обойти и записать     
         | 
|||
| 
    24
    
        РеализоВано    
     11.02.15 
            ✎
    12:49 
 | 
         
        (19) СКД многое умеет     
         | 
|||
| 
    25
    
        ShoGUN    
     11.02.15 
            ✎
    12:49 
 | 
         
        (23) Офигенный замут. Только кто сказал, что в данных только номенклатура?     
         | 
|||
| 
    26
    
        РеализоВано    
     11.02.15 
            ✎
    12:49 
 | 
         
        (24) в оформление по условию     
         | 
|||
| 
    27
    
        РеализоВано    
     11.02.15 
            ✎
    12:50 
 | 
         
        (25) Да пофиг с чем сравнивать и соединять     
         | 
|||
| 
    28
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:51 
 | 
         
        (17) Понравилась реакция Гёдзы. Надеюсь, это немного поможет ему более человечнее общаться на этом форуме.     
         | 
|||
| 
    29
    
        Timon1405    
     11.02.15 
            ✎
    12:53 
 | 
         
        (23) самый простой пример: Нужно в списке номенклатуры/(обычные формы) видеть свойства(2-3 штуки) из РС ЗначенияСвойствОбъектов.
 
        аналогичное может требоваться в ТЧдокументов, списках документов итд, вместо этого РС может быть другая связанная информация. варианты "переходите на 8.7.125, там это реализовано" не предлагать  | 
|||
| 
    30
    
        РеализоВано    
     11.02.15 
            ✎
    12:54 
 | 
         
        Моё мнение все можно сделать в запросах и не делать лишних циклодвижений особенно для какой-то выборки по условия, а если нельзя, значит не удачная реализация структуры БД. Зачем напрягать приложение если СУБД сама все может сделать?     
         | 
|||
| 
    31
    
        Управление торговлей    
     11.02.15 
            ✎
    12:54 
 | 
         
        когда результаты запроса уже есть, зачем их выгружать или обходить? можно сразу к ним сделать еще запрос     
         | 
|||
| 
    32
    
        palpetrovich    
     11.02.15 
            ✎
    12:55 
 | 
         
        (0) а это:
 
        3. ТЗ в ВТ и запросом к ней?  | 
|||
| 
    33
    
        H A D G E H O G s    
     11.02.15 
            ✎
    12:56 
 | 
         
        (30) СУБД может кончиться.     
         | 
|||
| 
    34
    
        ShoGUN    
     11.02.15 
            ✎
    13:01 
 | 
         
        (30) Можно, вопрос как лучше. Мне решение с запихиванием ТЗ в ВТ не представляется лучшим. По сути ты вместо выборки данных и поиска в памяти - сначала пишешь в базу, потом начинаешь из этой же базы выковыривать. Причем либо генеришь индекс(что тоже - время), либо ищешь в куче, без индекса. Офигенно оптимальное решение. Зато сервер приложения не напрягается.     
         | 
|||
| 
    35
    
        РеализоВано    
     11.02.15 
            ✎
    13:02 
 | 
         
        (29)И в чем проблема?     
         | 
|||
| 
    36
    
        РеализоВано    
     11.02.15 
            ✎
    13:02 
 | 
         
        (34) Ну крутите в циклах     
         | 
|||
| 
    37
    
        ShoGUN    
     11.02.15 
            ✎
    13:03 
 | 
         
        (36) Не, ну циклы - это "бред", как мы узнали из (15).     
         | 
|||
| 
    38
    
        РеализоВано    
     11.02.15 
            ✎
    13:04 
 | 
         
        Сделайте какую нить массовую начислялку, покрутите и сколько это время у вас расчет     
         | 
|||
| 
    39
    
        РеализоВано    
     11.02.15 
            ✎
    13:04 
 | 
         
        займет     
         | 
|||
| 
    40
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:05 
 | 
         
        Сервер СУБД нужно холить и лелеять - он один и больше не предвидется. Серверов 1С может быть побольше одного (хоть это и плохо из за синхронизации) - можно их озадачить. Но вот клиентов - дозвизды, как правило на относительно мощных машинах - вот их стегать и надо. Особенно если эти поиски вне транзакции.     
         | 
|||
| 
    41
    
        РеализоВано    
     11.02.15 
            ✎
    13:08 
 | 
         
        (40) А нафига сервер тогда нужен? Зачем клиент сервеная аритектура??     
         | 
|||
| 
    42
    
        ShoGUN    
     11.02.15 
            ✎
    13:09 
 | 
         
        (41) Она трёхзвенная, вообще-то. Вот СУБД нефиг делать, только всякий мусор во временных таблицах сохранять по 100 раз на дню.     
         | 
|||
| 
    43
    
        Бубка Гоп    
     11.02.15 
            ✎
    13:14 
 | 
         
        так кого же лучше напрягать, сервер 1с, субд или клиентов?     
         | 
|||
| 
    44
    
        РеализоВано    
     11.02.15 
            ✎
    13:16 
 | 
         
        Ещё раз повторюсь МОЁ, сугубо скромное, пройденное опытным путем в массовых начислений и оптимизации их, мнение все можно сделать и нужно на запросах, особенно всякие условия отбора!!! Приложение только для отображение полученных данных в формочках.     
         | 
|||
| 
    45
    
        Maxus43    
     11.02.15 
            ✎
    13:17 
 | 
         
        (43) клиентов, если возможно     
         | 
|||
| 
    46
    
        ShoGUN    
     11.02.15 
            ✎
    13:17 
 | 
         
        (43) Думаю, в каждом конкретном случае надо думать. Зависит от условий поиска и количества данных, а также от описанного в (40) соотношения. Может у тебя клиенты дохлые совсем.
 
        (44) СЛОЖНЫЕ условия - согласен, проще запросами. Простые - нет.  | 
|||
| 
    47
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:17 
 | 
         
        (43) Клиента. Правда очень редко его напрягешь, так как чистых вычислений и нет толком - все завязано на работу с данными.     
         | 
|||
| 
    48
    
        Ненавижу 1С    
     гуру 
    11.02.15 
            ✎
    13:20 
 | 
         
        жесть жестяная
 
        давайте и документы на клиентах проводить, чего уж  | 
|||
| 
    49
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:21 
 | 
         
        (48) Ты, походу, многого не знаешь о трехзвенке :-).     
         | 
|||
| 
    50
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:28 
 | 
         
        (48) В типовой УПП документы проводятся на клиенте.
 
        Да, есть серверные блоки проведения. Но есть и клиентские. Учите 1С должным образом...  | 
|||
| 
    51
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:31 
 | 
         
        Предупреждая буквоедов:
 
        1) да, есть Управляемый режим. 2) да, проведение документа можно вызвать из серверной процедуры в Обычном режиме.  | 
|||
| 
    52
    
        Maxus43    
     11.02.15 
            ✎
    13:35 
 | 
         
        (48) в обычном приложении толстого клиента и так на клиенте проведение)     
         | 
|||
| 
    53
    
        vhl    
     11.02.15 
            ✎
    13:37 
 | 
         
        (20) Индексировать есть смысл в любом случае. Случаев когда индексировать не нужно не существует.     
         | 
|||
| 
    54
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:38 
 | 
         
        (53) Продолжайте индексировать в любом случае.     
         | 
|||
| 
    55
    
        vhl    
     11.02.15 
            ✎
    13:39 
 | 
         
        (22) Да ты обкурился...     
         | 
|||
| 
    56
    
        Дункан Маклауд    
     11.02.15 
            ✎
    13:40 
 | 
         
        (50) горбатого лепишь, вся запись в регистры делается на сервере, а это 80% нагрузки на БД, сами вычисления копейки по нагрузке     
         | 
|||
| 
    57
    
        Дункан Маклауд    
     11.02.15 
            ✎
    13:41 
 | 
         
        (51) а что такое клиентские блоки проведения?     
         | 
|||
| 
    58
    
        Дункан Маклауд    
     11.02.15 
            ✎
    13:43 
 | 
         
        (0) посмотри как сделано в типовых     
         | 
|||
| 
    59
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:43 
 | 
         
        (57) Например, формирование проводок в процедуре
 
        ДвиженияПоРегистрамРегл() документа РТУ.  | 
|||
| 
    60
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:44 
 | 
         
        (57) systemstopper , ты, щтоле?
 
        Давай, досвиданья.  | 
|||
| 
    68
    
        Ненавижу 1С    
     гуру 
    11.02.15 
            ✎
    13:52 
 | 
         
        (50)(52) это временно, переходят на сервер     
         | 
|||
| 
    69
    
        H A D G E H O G s    
     11.02.15 
            ✎
    13:53 
 | 
         
        (68) Конечно в управляемом перейдут на Сервер.
 
        Но не потому что так быстрее. А потому что так "не медленнее", чем в Обычном. Почему? Потому что XDTO.  | 
|||
| 
    70
    
        Maxus43    
     11.02.15 
            ✎
    13:55 
 | 
         
        (68) сам процесс записи естественно через сервер 1с на субд идёт, но также идёт передача всего объёма информации с клиента на сервер 1с, уже готового. Само формирование этих записей - на клиенте     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |