Имя: Пароль:
1C
1С v8
Найти строку в тз по ряду параметров.
0 Adecvator
 
26.03.14
14:58
В 1С++ была замечательная тз, в которой можно было производить поиск по ряду параметров, т.е. не только НайтиПоНаименование. В 8-ке это можно только через запрос?
1 Maxus43
 
26.03.14
14:59
через запрос, или в коде при обходе ТЗ построчно
2 elCust
 
26.03.14
15:00
(0) НайтиСтроки(). Поиск по ряду параметров.
3 Heckfy
 
26.03.14
15:02
ПОДОБНО %ТвояСтрока%
Найти
НайтиСтроки


Тебе в помощь.
4 Maxus43
 
26.03.14
15:02
а, я думал что именно типа "Строка" в колонке и по нему искать, мол начинается на "х" кончается на "й"...
А так конечно (2), по разным колонкам, структура отбора
5 Мимохожий Однако
 
26.03.14
15:02
ТаблицаЗначений (ValueTable)
НайтиСтроки (FindRows)
Синтаксис:

НайтиСтроки(<ПараметрыОтбора>)
Параметры:

<ПараметрыОтбора> (обязательный)

Тип: Структура.
Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:

Тип: Массив.
Массив строк таблицы значений, соответствующих условиям поиска.
Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным.
Описание:

Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Метод эффективно использовать для выборки неуникальных значений.
Пример:

// СписокРаботников - реквизит формы для представления информации
// о работниках (тип ТаблицаЗначений).
// В форме расположено табличное поле СписокРаботников, в котором
// показываются данные СписокРаботников.
// С помощью запроса выбирается информация о работниках.
Запрос = Новый Запрос;
ТекстЗапроса =
    "ВЫБРАТЬ
    // текст запроса
    // ...
    ";
Запрос.Текст = ТекстЗапроса;
СписокРаботников = Запрос.Выполнить().Выгрузить();
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Строки = СписокРаботников.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
    ЭлементыФормы.СписокРаботников.ТекущаяСтрока = Строки[0];
КонецЕсли;


--------------------------------------------------------------------------------

     Методическая информация
6 Serginio1
 
26.03.14
15:24
7 МихаилМ
 
26.03.14
15:33
если тз типизированна 1 типом
то построитель запроса умеет фильтровать

правда есть неприятное ограничение: запрос возвращает тз типизированную 2 типами тип поля+ NULL
8 Adecvator
 
26.03.14
18:49
Сделал через Найти строки:
    Для Каждого СтрТаб из тзРегВалюта Цикл
            
            //Сообщить(СтрТаб.Субконто1);
            
            ПараметрыОтбора = Новый Структура;
            ПараметрыОтбора.Вставить("БухСчет", СтрТаб.Счет);
            ПараметрыОтбора.Вставить("Субконто1", СтрТаб.Субконто1);
            ПараметрыОтбора.Вставить("Субконто2", СтрТаб.Субконто2);
            ПараметрыОтбора.Вставить("Субконто3", СтрТаб.Субконто3);
                        
            НайденныеСтроки = ТаблицаДвижений.НайтиСтроки(ПараметрыОтбора);
            КоличествоЭлементов = НайденныеСтроки.Количество();
            
            Если КоличествоЭлементов > 0 Тогда
                НайденныеСтрТаб = НайденныеСтроки[0];
    
                НайденныеСтрТаб.СуммаДт     = НайденныеСтрТаб.СуммаДт + СтрТаб.СуммаОстатокДт;
                НайденныеСтрТаб.СуммаКт     = НайденныеСтрТаб.СуммаКт + СтрТаб.СуммаОстатокКт;

            КонецЕсли;
                        
        КонецЦикла;