|   |   | 
| 
 | v7: Выбор строк в ТЗ | ☑ | ||
|---|---|---|---|---|
| 0
    
        rain65 14.07.15✎ 14:18 | 
        Имеется заполненная таблица значений. Одна из колонок - сотрудники. Причем количество строк порядка 5000, сотрудники часто повторяются. Как организовать отбор, чтобы спозиционировав курсор, например на Петрова Сергея Викторовича, вызвать процедуру и Все Петровы Сергеи Викторовичи сгруппировались в видимой части таблицы. Метод сортировка работает быстро, но после сортировки приходится опять скакать по таблице, т.е. отсортированные элементы попадают либо вниз , либо вверх таблицы . Мне же нужно, чтобы все они сразу были видны. Метод удаления строк, не удовлетворяющих условиям отбора, работает слишком медленно.     | |||
| 1
    
        Дмитрий 14.07.15✎ 14:20 | 
        (0) Сделать еще одну таблицу, где сотрудники не повторяются, ходить по ней, а в связанную таблицу выводить только строки по текущему сотруднику     | |||
| 2
    
        palpetrovich 14.07.15✎ 14:21 | 
        спозиционироваться гршь :)
 текСотр = получитьЗначение(текстр) сортировать( стр = 0 найтиЗначение(текстр, стр, "сотр") текущаяСтрока(стр) | |||
| 3
    
        rain65 14.07.15✎ 14:56 | 
        (2) Спасибо за отзывчивость, Петрович:)
 Только можно чуть подробнее, для деревянных? ) | |||
| 4
    
        HawkEye 14.07.15✎ 15:13 | 
        (3) вешаешь на формочку кнопку, на нее процедуру с кодом из (2) 
 встаешь курсором в ТЗ на нужную фамилию жмешь кнопку.. профит. второй вариант: рядом с первой ТЗ, помещаешь вторую ТЗ свернутую по сотрудникам. ставишь курсорсор во второй ТЗ на нужного сотрудника - первая сортируется по этому сотруднику - код примерно такой-же как и в первом случае... 3-4 вариант то-же самое, только не сортируешь а показываешь только те строчки где есть выбранный сотрудник... для этого - еще одну таблицу в памяти, и не удаляешь записи а добавляешь... третий вариант: | |||
| 5
    
        palpetrovich 14.07.15✎ 15:18 | 
        (3) чуть подробнее:
 Сотрудник = ТЗ.ПолучитьЗначение(ТЗ.ТекущаяСтрока(), "Сотрудник"); ТЗ.Сортировать(Сотрудник); стр = 0; ТЗ.НайтиЗначение(Сотрудник, стр, "Сотрудник"); ТЗ.ТекущаяСтрока(стр); | |||
| 6
    
        palpetrovich 14.07.15✎ 15:21 | 
        +(5) ТЗ.Сортировать(Сотрудник); читать как ТЗ.Сортировать("Сотрудник");
 ну и формулу в ТЗ на форме КликПоТЗ() в модуле: Процедура КликПоТЗ() Сотрудник = ТЗ.ПолучитьЗначение(ТЗ.ТекущаяСтрока(), "Сотрудник"); ТЗ.Сортировать("Сотрудник"); стр = 0; ТЗ.НайтиЗначение(Сотрудник, стр, "Сотрудник"); ТЗ.ТекущаяСтрока(стр); КонецПроцедуры | |||
| 7
    
        rain65 14.07.15✎ 15:31 | 
        Всем большое спасибо. Вроде получается.     | |||
| 8
    
        rain65 17.07.15✎ 16:17 | 
        Петрович, попробовал тебе на почту сообщение послать - адрес не корректный.     | |||
| 9
    
        Garykom гуру 17.07.15✎ 16:20 | 
        а если сделать шо ТЗ со всеми данными "невидимо" и показывать на форме только то шо надо... наверно будет лучше?     | |||
| 10
    
        rain65 17.07.15✎ 16:22 | 
        Не...не будет лучше. Специфика задачи....     | |||
| 11
    
        Garykom гуру 17.07.15✎ 16:28 | 
        (10) вообще то говорил именно про реализацию "Все Петровы Сергеи Викторовичи сгруппировались в видимой части таблицы"
 а все остальные остались в невидимой | |||
| 12
    
        Garykom гуру 17.07.15✎ 16:29 | 
        (11) удаление строк очень медленно (особенно неправильное) в отличие от переноса/копирования
 и да... если много записей делаются с фТЗ на форме, то сначала сделать ее невидимой... потом крутить/вертеть/добавлять/удалять и потом обратно сделать видимой | |||
| 13
    
        rain65 17.07.15✎ 16:30 | 
        А...если так, тогда интересно. И каким образом это можно провернуть?     | |||
| 14
    
        palpetrovich 17.07.15✎ 16:38 | 
        (8) ага, там старый был, ломаный. поправил     | |||
| 15
    
        Garykom гуру 17.07.15✎ 16:40 | 
        (13) объяснил же уже... свои 5 тыщ держишь в "Перем гтзДанные;"
 кнопочки "показать всех" и "показать тока похожих" "показать всех" переносит все из гтзДанные в фТЗ на форму "показать тока похожих" берет фио из тек строки, отбирает похожих из гтзДанные, чистит фТЗ на форме и выводит туда тока похожих | |||
| 16
    
        rain65 17.07.15✎ 16:45 | 
        Да я понял, просто не увидел предыдущего поста.     | |||
| 17
    
        Serginio1 17.07.15✎ 16:57 | ||||
| 18
    
        Serginio1 17.07.15✎ 17:03 | ||||
| 19
    
        rain65 20.07.15✎ 11:50 | 
        (14) Петрович, глянь пож-ста почту.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |