Оптимизация работы с ТЗ

Тема в разделе "1C и всё что с ней связано", создана пользователем Hryv, 22 сен 2009.

Статус темы:
Закрыта.
  1. Hryv

    Hryv Гость

    Есть две ТЗ
    Они, можно сказать, связаны один-к-многим
    При формировании печатной формы идет перебор строк ТЗ1 и для каждой ее строки надо получить все строки ТЗ2 совпадающие по этому реквизиту.

    Можно, конечно каждый раз перебирать все строки ТЗ2 и выполнять сравнение, но это как-то некрасиво и будет тормозить при больших таблицах

    Как это можно оптимизировать?

    PS путем сортировки нельзя
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Если совпадающих строк больше одной - то кроме перебора ничего нету. Тз.Найти() находит тебе первый и на этом усё.
     
  3. KiR

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

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    А по НайтиЗначение() тоже не катит?
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    а нафиг две ТЗ, может лучше один запрос? ;-)

    или если так уж приперло, внешняя функция в запросе.
     
  5. Hryv

    Hryv Гость

    Вот в соседней ветке пытаюсь решить этот вопрос
    Сейчас ТЗ1 формируется запросом, а ТЗ2 через
    Рег.ВыбратьДвижения();
    Пока Рег.ПолучитьДвижение() = 1 Цикл
    ...
     
  6. KiR

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

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а зачем ты результаты запроса выгружаешь в ТЗ? ведь сразу в цикле можно обрабатывать их...
     
  7. Hryv

    Hryv Гость

    KiR, долго объяснять и к сути вопроса это значения не имеет, так как не повлияет на число проходов по втрой таблице
     
  8. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Объясни идею что надо - что за структура регистра, какие данные нужно вытащить, есть ли обращения к другим регистрам. Покажи тот запрос что у тебя есть.
     
  9. Hryv

    Hryv Гость

    Сейчас напишу в ветке про запрос
     
  10. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Тогда может быть так :
    Выгрузить ТЗ32 в ТЗ33, последнюю отсортировать по необходимой колонке, найти в ней первое нужное значение и перебирать ее, пока оно совпадает
     
  11. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Да - так катит! надо только колонки привестив соответствие и будет работать.
     
  12. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    после ТЗ32.Выгрузить(ТЗ33) сами встанут, как надо
     
  13. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Ааа - а я подумал объеденить две таблицы и уже их мучать.
     
Загрузка...
Статус темы:
Закрыта.

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