Имя: Пароль:
1C
 
Найти несколько одинаковых значений в ТЗ
0 sanches2
 
08.01.10
18:02
Пробую воспользоваться методом АЛьФа из ветки
Таблица значений: НайтиЗначение ()

стр =0;
слб =0;
Пока ТЗ.НайтиЗначение ( НекЗначение, стр, слб) = 1 цикл
   ТЗ.ПолучитьСтрокуПоНомеру (стр);
   //некоторые действия....
 
 ТЗ.УстановитьЗначение(стр, слб, КакоеТоДругоеЗначение);
 стр =0;
 слб =0;
КонецЦикла;

Вот мой пример

Пока  ТаблПродаж.НайтиЗначение(ЗначениеГруппировки,Строчка,"Группировка"+Ин)=1 Цикл
                   
                   ТаблПродаж.ПолучитьСтрокуПоНомеру(Строчка);
                   Если ВсегоПериод.МесяцСтр<>ТаблПродаж.Период Тогда
                       Продолжить;
                   КонецЕсли;    
                   Т.УстановитьЗначение(Т.НомерСтроки,"Сумма_П_"+ВсегоПериод.НомерСтроки,ТаблПродаж.Сумма_П);
                   Строчка = 0;
                   
               КонецЦикла;
У меня одно значение в самой первой строке, второе в 6. В первом цикле все верно находит значение из первой строки, во втором почему-то опять находит значение из первой строки. Что не так?
1 Aleksey_3
 
08.01.10
18:07
А что найти строки не кошерно?
2 Aleksey_3
 
08.01.10
18:09
ТаблицаЗначений.НайтиСтроки (ValueTable.FindRows)
ТаблицаЗначений (ValueTable)
НайтиСтроки (FindRows)
Синтаксис:
НайтиСтроки(<Параметры отбора>)
Параметры:
<Параметры отбора> (обязательный)
Тип: Структура. Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:
Тип: Массив. Массив строк таблицы значений, соответствующих условиям поиска.
Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным.
Описание:
Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска.
Примечание:
Метод эффективно использовать для выборки неуникальных значений.
Пример:
// СписокРаботников - реквизит формы для представления информации
// о работниках (тип ТаблицаЗначений).
// В форме расположено табличное поле СписокРаботников, в котором
// показываются данные СписокРаботников.
// С помощью запроса выбирается информация о работниках.
Запрос = Новый Запрос;
ТекстЗапроса =
   "ВЫБРАТЬ
   // текст запроса
   // ...
   ";
Запрос.Текст = ТекстЗапроса;
СписокРаботников = Запрос.Выполнить().Выгрузить();
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Строки = СписокРаботников.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
   ЭлементыФормы.СписокРаботников.ТекущаяСтрока = Строки[0];
КонецЕсли;
3 sanches2
 
08.01.10
18:10
Сори. Это 7-ка
4 sanches2
 
08.01.10
18:11
Он вообще зацикливается при таком методе.
5 sanches2
 
08.01.10
18:19
Понял. У меня нет затирания занчения найденного
ТЗ.УстановитьЗначение(стр, слб, КакоеТоДругоеЗначение);
6 Aleksey_3
 
08.01.10
19:01
Юзай ИндексированнуюТаблицу из 1С++
7 AcaGost
 
08.01.10
19:49
Отсортируй свою ТЗ по твоей колонке.
Найди твое значение
И далее пройдись по строкам, начиная от твоего значения