• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

1c8 поиск значения в Таблице значений

  • Автор темы KiR
  • Дата начала
K

KiR

Есть две таблицы значений ТЗ1 и ТЗ2.
Обхожу в цикле Для каждого СТЗ из ТЗ1 - получаю Код = СТЗ.Код
Далее мне нужно этот код найти в ТЗ2. Добиваюсь этого так - СтрокаТЗ = ТЗ2.Найти(Код,"КодЦБ");
Но дело в том, что строк с таким кодом может быть несколько, а мне почему-то возвращается только первый найденный.
Подскажите пожалуйста как правильнее организовать поиск. Задача такая - получить все строки из ТЗ2, если значения поля КодЦБ = Код
 
B

binx

Есть две таблицы значений ТЗ1 и ТЗ2.
Обхожу в цикле Для каждого СТЗ из ТЗ1 - получаю Код = СТЗ.Код
Далее мне нужно этот код найти в ТЗ2. Добиваюсь этого так - СтрокаТЗ = ТЗ2.Найти(Код,"КодЦБ");
Но дело в том, что строк с таким кодом может быть несколько, а мне почему-то возвращается только первый найденный.
Подскажите пожалуйста как правильнее организовать поиск. Задача такая - получить все строки из ТЗ2, если значения поля КодЦБ = Код
А почему бы не удалить найденную строку с совпадением в ТЗ2 и продолжить поиск, если этот поиск оформить в процедуру и передать ТЗ2 по Значению, то и дополнит. ТаблицЗначений создавать не придется.
 
Z

Zab

А я бы предварительно отсортировал ТЗ2 по полю код (методом ТЗ Сортировать(), не надо вспоминать метод пузырька) и после СтрокаТЗ = ТЗ2.Найти(Код,"КодЦБ"); перебирал бы цикле (Например: Пока КодЦБ = Код Цикл) строки до тех пор, пока код не изменится. К сожалению, седьмая платформа на самом деле ищет только первое вхождение...
 
B

binx

Есть две таблицы значений ТЗ1 и ТЗ2.
Обхожу в цикле Для каждого СТЗ из ТЗ1 - получаю Код = СТЗ.Код
Далее мне нужно этот код найти в ТЗ2. Добиваюсь этого так - СтрокаТЗ = ТЗ2.Найти(Код,"КодЦБ");
Но дело в том, что строк с таким кодом может быть несколько, а мне почему-то возвращается только первый найденный.
Подскажите пожалуйста как правильнее организовать поиск. Задача такая - получить все строки из ТЗ2, если значения поля КодЦБ = Код
маленькое уточнение, если удалить строку то указатель текущей строки автоматически перемещается на следующую строку, поэтому если захочешь делать методом перебора вместо поиска, необходимо проверить строку сразу после удаления.
 
Z

Zab

Упс, не внимательно читаю, платформа восьмая. А покажи код, где ты получаешь результат поиска.
 
Z

Zab

Должно быть что-то типа:
Код:
Отбор = Новый Структура();
Отбор.Вставить("КодЦБ",Код);
Строки = тз.НайтиСтроки(Отбор);
Для ж=0 По Строки.Количество()-1 Цикл
// Строки[ж] - тут по очереди будут все строки
КонецЦикла;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!