1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Базы данных и администрирование", создана пользователем KiR, 30 апр 2008.

  1. KiR

    KiR НЕ шибка опытный програмер)

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

    binx Гость

    Репутация:
    0
    А почему бы не удалить найденную строку с совпадением в ТЗ2 и продолжить поиск, если этот поиск оформить в процедуру и передать ТЗ2 по Значению, то и дополнит. ТаблицЗначений создавать не придется.
     
  3. Zab

    Zab Well-Known Member

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

    binx Гость

    Репутация:
    0
    маленькое уточнение, если удалить строку то указатель текущей строки автоматически перемещается на следующую строку, поэтому если захочешь делать методом перебора вместо поиска, необходимо проверить строку сразу после удаления.
     
  5. Zab

    Zab Well-Known Member

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Упс, не внимательно читаю, платформа восьмая. А покажи код, где ты получаешь результат поиска.
     
  6. Zab

    Zab Well-Known Member

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

Поделиться этой страницей