|   |   | 
| 
 | оптимизация поиска в табличной части | ☑ | ||
|---|---|---|---|---|
| 0
    
        prtx 31.08.15✎ 14:57 | 
        Добрый день уважаемые. Вот я и начал дорастать до того момента когда нужно не просто "навалять" код, но и оптимизировать его)))
 Есть у меня документ "РеализацияТоваро"(делает продажи), и вот там у меня нужно искать товар по штрихкоду. В этом документе у меня есть табличная часть в которую выводятся все товары на складе. и вот в этом тч мы и ищем штрих код. Было!: есть реквизит формы "Штрихкод", и вот при изменении этого реквизита, мы получаем штрих(отправляемся &НаСервере), делаем запрос к регистру сведений, находим там номенклатуру к которой привязан этот штрихкод, дальше ищем эту номенклатуру в тч, и после того как нашли устанавливаем текущую строку на эту самую номенклатуру. Стало!: сразу при заполнении тч достаем туда штрихкод, и при изменении реквизита штрихкод делаем поиск следующим образом: СтрокаТоварыНаСкладах = ТоварыНаСкладах.НайтиСтроки(Новый Структура("Штрихкод", ПоискШтрихкод)); Элементы.ТоварыНаСкладах.ТекущаяСтрока = СтрокаТоварыНаСкладах[0].ПолучитьИдентификатор(); В моем представлении так должно было бы быть быстрее, НО кассры начал жаловаться что стало все этот диво работать медленнее. Собственно вопрос: А ЧЕ ТАК-ТО!? (сервер не сильно мощный, даже на одной кассе системник мощнее...) Подскажите: кто тупит, я или кассиры? И может быть мне вообще пойти по другому путь(только не знаю по какому)? Как оптимизировать этот действие? 1с 8.3. уф Заранее всем спасибо! | |||
| 1
    
        Fragster гуру 31.08.15✎ 14:58 | 
        вариант 2 происходит на клиенте?     | |||
| 2
    
        prtx 31.08.15✎ 14:59 | 
        (1) да     | |||
| 3
    
        prtx 31.08.15✎ 15:01 | 
        (1) в этом то и была идея чтобы минимизировать вызовы сервера...     | |||
| 4
    
        Fragster гуру 31.08.15✎ 15:03 | 
        (3) Доступность: 
 Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). ___Вызов метода выполняет обращение к серверу. ___ (с) Синтакс помощник. ищи перебором. или половинного деления, если отсортировано по ШК. | |||
| 5
    
        magicSan 31.08.15✎ 15:04 | 
        Пусть пилит временую таблицу ищет в ней.     | |||
| 6
    
        prtx 31.08.15✎ 15:16 | 
        (5) спасибо за подсказку. должно быть быстрее...
 а если обращаться к самой тч, через запрос? или это не то пальто будет? | |||
| 7
    
        magicSan 31.08.15✎ 15:21 | 
        (6)Я так понял таблица грамадная и не изменяется. Пусть в менегереВТ будет. Теоритический при втором поиске она будет в темпах sql.     | |||
| 8
    
        prtx 31.08.15✎ 15:22 | 
        (4)
 Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). ___Вызов метода выполняет обращение к серверу. ___ (с) Синтакс помощник. Т.Е. ничего я не выгадал, так? а использовать перебор, типа циклом перебирать строки ТЧ, не уж то быстрее будет, если можно объясните, т.к. я аматор самоучка, и многого еще незнаю... отсортировано оно не по шк, а можно ссылку или что-то про этот метод, желательно где написано для "одаренных", сейчас еще сам поищу. спасибо | |||
| 9
    
        sash-ml 31.08.15✎ 15:24 | 
        (0) а реквизит в ТЧ индексированный?     | |||
| 10
    
        prtx 31.08.15✎ 15:24 | 
        (7) ну как громадная. пару тысяч строк(не знаю мерки громадность в 1с...). в процессе создания чека не меняется. заполняется при создании на сервер.     | |||
| 11
    
        magicSan 31.08.15✎ 15:26 | 
        (10) Чот меня понесло идея же была в поиске на стороне клиента ... тоже про (9) думал     | |||
| 12
    
        prtx 31.08.15✎ 15:27 | 
        (9) сори! забыл уточнить. ТЧ - является реквизитом формы, а не документа. так что не индексируются. решил сделать так потому, что считаю не целесообразным хранить такие тч вместе с документом(да и ненужны они). мне кажеться что от этого значительно увеличиться бд.     | |||
| 13
    
        Зеленый пень 31.08.15✎ 15:29 | 
        Использовать не ТЧ, а Соответствие. Может, полегче будет.     | |||
| 14
    
        prtx 31.08.15✎ 15:30 | 
        (11) (12)  если я не прав по тч, это вы мне скажите как это скажется на бд. переделать тч в реквизит документа не составит труда, главное что бы последствий в росте бд не было и ускорить поиск...     | |||
| 15
    
        prtx 31.08.15✎ 15:34 | 
        (13) т.е. при создании на сервер зафигачить соответствие, засунуть туда идентификатор строки и  штрихкод. и потом просто устонавливать текущую строку. вариант, спасибо. буду пробовать.     | |||
| 16
    
        magicSan 31.08.15✎ 15:36 | 
        (15) теже скорости неоткуда там приросту братся. 
 ТЧ в документе в итоге не хранится? | |||
| 17
    
        hhhh 31.08.15✎ 15:38 | 
        (14) а чем вас не устраивает рост БД? Ну докупите через 30 лет новый винт.     | |||
| 18
    
        H A D G E H O G s 31.08.15✎ 15:40 | 
        (15) не получится.     | |||
| 19
    
        prtx 31.08.15✎ 15:41 | 
        (16) неа.     | |||
| 20
    
        magicSan 31.08.15✎ 15:41 | 
        (17) Он походу в ТЧ всю номенклатуру базы сливает и потом иещет в ней. Хранить дубли справочника номенклатура в каждом документе не хочет. Я правильно понял?     | |||
| 21
    
        magicSan 31.08.15✎ 15:42 | 
        (19) Ну отчистит табличную часть перед записью.     | |||
| 22
    
        H A D G E H O G s 31.08.15✎ 15:43 | 
        А че, это все нельзя решить ДинамическимСписком, не?     | |||
| 23
    
        Гёдза 31.08.15✎ 15:45 | 
        поиск в ты на клиента - это ппц как медленно     | |||
| 24
    
        Гёдза 31.08.15✎ 15:45 | 
        *тч     | |||
| 25
    
        prtx 31.08.15✎ 15:46 | 
        (17) просто, я далековат от системного администрирования и от всех тонкостей 1с. и не знаю какой рост это за собой повлечет.
 я когда увлекался php, (боже какой я старый...) тогда каждый лишний килобайт был на счету))) огромноя просьба просветить что бы я мог и в дальнейшем использовать эти знания. допустим в этой тч будет около 2 тысяч строк, около 150-200 чеков в день, ну и пусть хотябы это все будет на трех аптеках. значит в строках получаеться примерно около 1 000 000 строк в день. ну как-то так это не сильно скажеться на бд? | |||
| 26
    
        hhhh 31.08.15✎ 15:49 | 
        (25) ну допустим, длина реквизита 50 байт. Тогда если у вас 1000 документов с этим реквизитом, база увеличится на 50 кбайт. Ну даже если на мегабайт база вырастет, стоит ли вам париться?     | |||
| 27
    
        magicSan 31.08.15✎ 15:49 | 
        (25) Нафига те их хранить если не надо??? Нафига те вообще этот реквизит если не надо?     | |||
| 28
    
        prtx 31.08.15✎ 15:50 | 
        (20) ну да. только не всю. а ту котарая на момент создания чека есть на складе, ну естественно в запросе при заполнении тч, достаю только ту номенклатуру котарае есть на данном складе(где создается документ продажи)     | |||
| 29
    
        magicSan 31.08.15✎ 15:52 | 
        (28) Теперь подумай логику и уменьши не количество вызовов сервера а количество передоваемой инфогрмации.     | |||
| 30
    
        magicSan 31.08.15✎ 15:54 | 
        (29) +1 после каждого пика товар должен уходить в резерв. А хотя навернео один пк один склад.     | |||
| 31
    
        prtx 31.08.15✎ 15:56 | 
        (27) твой вариант про очистку тч перед записью гениален, я чот туплю)))
 как нафига мне этот реквизит(ТЧ), в нем же отображаются доступные товары на складах в этой тч кассиры видят свои товары и продают... (29) инфа достаеться и так только та которая нужна, цены количество, номенклатура, срок. лишнего ничего нет. (30) да пока один склад один комп. над резервированием начал разбираться уже. скоро будет.. | |||
| 32
    
        DexterMorgan 31.08.15✎ 15:59 | 
        (31) почему не динамический список, а тз?     | |||
| 33
    
        DexterMorgan 31.08.15✎ 16:00 | 
        (31) Остатки же тем более меняются, кассир видит только то, что ты загрузил в эту тз, а список обновляется     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |