Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Заполнение ТЧ обработки на основании данных другой ТЧ обработки          
Constantus Подменю пользователя
сообщение 26.09.19, 12:25
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

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

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

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

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

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

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

КонецЦикла;


Показать

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

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

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

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


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

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

Constantus @ Сегодня, 16:17 * ,

Ответ:

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



Сообщение отредактировал Vofka - 26.09.19, 12:25

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 1:31
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!