Приветствую, Форумчане!
1с8.3.12, СП, самопис, УФ

Имеется обработка. Обраотка имеет 2-е ТЧ: ТЧ_Основная, ТЧ_Дополнительно

ТЧ_Основная заполняется по кнопке, основной Реквизит "Заказ".

Требуется на основании данных ТЧ_Основная заполнить данными Дополнительную ТЧ. Сейчас делаю обходом по всей ТЧ и далее запросом добиваю данные для другой ТЧ:

необходимо зарегистрироваться для просмотра ссылки
Для Каждого Заказы Из Объект.ТЧосновная Цикл

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ДоставкаТоваровВПодразделенияОстатки.Заказ,
        |    ДоставкаТоваровВПодразделенияОстатки.КлючСтрокиЗаказа,
        |    ДоставкаТоваровВПодразделенияОстатки.КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ДоставкаТоваровВПодразделения.Остатки КАК ДоставкаТоваровВПодразделенияОстатки
        |ГДЕ
        |    ДоставкаТоваровВПодразделенияОстатки.КоличествоОстаток > 0
        |    И ДоставкаТоваровВПодразделенияОстатки.Заказ = &Заказ
        |    И ДоставкаТоваровВПодразделенияОстатки.КлючСтрокиЗаказа = &КлючСтрокиЗаказа";
    
    Запрос.УстановитьПараметр("Заказ", Заказы.Заказ);
    Запрос.УстановитьПараметр("КлючСтрокиЗаказа", Заказы.КлючСтроки);
    
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        ТЧ = Объект.ТЧДополнительно.Добавить();
        ТЧ.Заказ = Выборка.Заказ;
        ТЧ.КлючСтроки     = Выборка.КлючСтрокиЗаказа;
        ТЧ.КлючСтрокиУИД  = Выборка.КлючСтрокиЗаказа;
    КонецЦикла;

КонецЦикла;


Показать

Заполнение идет естественно очень долго. Есть ли более оптимальный способ получения данных для второй ТЧ?
Типа в приведенный запрос вставить все данные из ТЧ_Основная и уже в самом запросе проверять соответствие через соединение?
Т.е. использовать в запросе на соединение ТЧ обработки как простую таблицу из других документов?

необходимо зарегистрироваться для просмотра ссылки
ТабЗнач = Новый ТаблицаЗначений;
    ТабЗнач = Объект.ТЧОсновная.Выгрузить(,);

    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВТ.Заказ,
        |    ВТ.КлючСтроки,
        |    ВТ.КлючСтрокиУИД
        |ПОМЕСТИТЬ ВТ_Заказы
        |ИЗ
        |    &ВТ КАК ВТ
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ДоставкаТоваровВПодразделенияОстатки.Заказ,
        |    ДоставкаТоваровВПодразделенияОстатки.КлючСтрокиЗаказа,
        |    ДоставкаТоваровВПодразделенияОстатки.КоличествоОстаток
        |ИЗ
        |    ВТ_Заказы КАК ВТ_Заказы
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДоставкаТоваровВПодразделения.Остатки КАК ДоставкаТоваровВПодразделенияОстатки
        |        ПО ВТ_Заказы.Заказ = ДоставкаТоваровВПодразделенияОстатки.Заказ
        |            И ВТ_Заказы.КлючСтроки = ДоставкаТоваровВПодразделенияОстатки.КлючСтрокиЗаказа
        |ГДЕ
        |    ДоставкаТоваровВПодразделенияОстатки.КоличествоОстаток > 0";
    Запрос.УстановитьПараметр("ВТ", ТабЗнач);

    НеДоставленныеЗаказы = Запрос.Выполнить().Выгрузить();


Отладчик показал правильные результаты в "НеДоставленныеЗаказы"

Как теперь одним махом разместить эти данные в другой таличной части обработки?

Constantus @ Сегодня, 16:17 необходимо зарегистрироваться для просмотра ссылки ,

Ответ:

Объект.НеДоставлены.Загрузить(НеДоставленныеЗаказы);