|   |   | 
| 
 | Поиск по 4 столбцам одновременно | ☑ | ||
|---|---|---|---|---|
| 0
    
        VSpicy naïve 11.07.19✎ 15:20 | 
        Привет всем!
 Есть такая (http://prntscr.com/odlie7)табличная часть. Нужно чтоб в поле ввода "Поиск по водителю" можно было одновременно осуществлять поиск водителей по 4 столбцам одновременно. Так мы находим только по столбцу "Водитель №1": Процедура ПоискПоВодителюПриИзменении(Элемент) СписокСтрокНаФорме = ЭтаФорма.Элементы.СоставПлана; Если ЗначениеЗаполнено(ПоискПоВодителю) Тогда СписокСтрокНаФорме.ОтборСтрок = Новый ФиксированнаяСтруктура("Водитель_1", ПоискПоВодителю); Иначе СписокСтрокНаФорме.ОтборСтрок = Неопределено; КонецЕсли; КонецПроцедуры Подскажите пожалуйста как правильно написать поиск по 4 столбцам? Заранее спасибо!!! | |||
| 1
    
        arsik гуру 11.07.19✎ 15:22 | 
        Динамический список     | |||
| 2
    
        VSpicy naïve 11.07.19✎ 15:25 | 
        (1) Да.     | |||
| 3
    
        VSpicy naïve 11.07.19✎ 15:30 | 
        Пример: "Иванов" может быть в 1,2,3 или 4 столбце, причем на разных строчках и не один раз, поэтому тут получается больше как фильтр работать должно...     | |||
| 4
    
        Garykom гуру 11.07.19✎ 15:40 | 
        Меняйте свою таблицу на более вменяемую.
 Например 4-е поле "№ водителя" добавить и линейно вместо этих дурацких столбцов. | |||
| 5
    
        Garykom гуру 11.07.19✎ 15:42 | 
        Если все же хочется такой изврат, то параметром в запрос для дин.списка, чтобы все столбцы перестраивало     | |||
| 6
    
        arsik гуру 11.07.19✎ 15:47 | 
        (3) Я конечно не секу в УФ и динамических списках, но сходу вот такой вариант возможен.
 https://i.imgur.com/jJYNgiD.png https://i.imgur.com/zffjID4.png дСписок.Параметры.УстановитьЗначениеПараметра("Страна", Справочники.СтраныМира.Россия);
 | |||
| 7
    
        VSpicy naïve 11.07.19✎ 15:48 | 
        (4) К сожалению это уже давно рабочий вариант, просто встал вопрос о поиске (фильтрации) по водителям.     | |||
| 8
    
        Garykom гуру 11.07.19✎ 15:59 | 
        (7) Сама подумай вот тебе надо отбором показать только Иванова, скрыв прочих.
 Иванов только во 2-й колонке, значит в ней будет одно значение а другие все надо удалить. А что делать с другими "колонками"? Удалять или оставлять "не Ивановых"? А учитывая что одна строка это сразу 4 колонки это легкий белый пушистый полярный | |||
| 9
    
        Garykom гуру 11.07.19✎ 16:00 | 
        (8) *Сам     | |||
| 10
    
        ptiz 11.07.19✎ 16:26 | 
        (0) Формируй сводное поле-строку из наименований всех четырех водителей. Поиск привязывай к ней.     | |||
| 11
    
        VSpicy naïve 11.07.19✎ 16:29 | 
        (8) Работать должно по методу "ОтборСтрок".
 Выбрал "Иванова" - только его и показывать во всех столбцах где он прописан. | |||
| 12
    
        VSpicy naïve 11.07.19✎ 16:33 | 
        Мне  посоветовали сделать 4 поиска отдельно по каждому полю Водитель, а результат вывести в единый массив строк.
 Но так как я начинающий кодер, не особо понимаю как это реализовать и что прописать в "Процедуре ПоискПоВодителюПриИзменении"? | |||
| 13
    
        VSpicy naïve 11.07.19✎ 17:00 | 
        (10) А можно код, для примера?     | |||
| 14
    
        ptiz 11.07.19✎ 17:31 | 
        (13) В запросе сделай поле вида: "ЕСТЬNULL(Водитель1.наименование, "") + ЕСТЬNULL(Водитель2.Наименование, "") ... КАК ВодительДляПоискаНаименование"     | |||
| 15
    
        VSpicy naïve 12.07.19✎ 11:06 | 
        (11) Значит таким образом не получится...?
 Путем отбора строк...? | |||
| 16
    
        catena 12.07.19✎ 11:18 | 
        (15)Почему?
 ОтборСтрок (RowFilter) Примечание: При программном изменении табличной части отбор нужно переустанавливать, чтобы для измененных строк отбор отработал. Отбор выполняется по условию вхождения значения. Например, если в колонке есть ячейки со значением "Строка 1", "Строка 2", ... "Строка 10", "Строка 11", ... и устанавливается отбор по значению "Строка 1", то в таблицу будут отобраны строки со значениями "Строка 1", "Строка 10", "Строка 11" и т.д. " | |||
| 17
    
        VSpicy naïve 12.07.19✎ 12:22 | 
        (16) Это я в курсе - видел в справочнике...
 А можно маленький пример: отбор строк через поле "Поиск по водителю" http://prntscr.com/odlie7 | |||
| 18
    
        arsik гуру 12.07.19✎ 12:26 | 
        (17) Создаешь в отборе группу "ИЛИ". Добавляешь подчиненные Водитель1 = Ссылка, Водитель2 = Ссылка и тд.     | |||
| 19
    
        VSpicy naïve 12.07.19✎ 12:27 | 
        (18) Это в конфигураторе или режиме предприятие?     | |||
| 20
    
        VSpicy naïve 12.07.19✎ 12:28 | 
        (18) У меня УФ.     | |||
| 21
    
        VSpicy naïve 12.07.19✎ 13:12 | 
        (18) Для одного столбца так:  СписокСтрокНаФорме.ОтборСтрок = Новый ФиксированнаяСтруктура("Водитель_1", ПоискПоВодителю); 
 а для 4 столбцов тогда как? | |||
| 22
    
        catena 12.07.19✎ 13:22 | ||||
| 23
    
        VSpicy naïve 12.07.19✎ 13:37 | 
        (22) Спасибо большое!!!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |