Имя: Пароль:
1C
1С v8
Как загрузить в табличную часть одного документа табличную часть другого документа?
0 safym
 
16.04.21
02:37
Помогите пожалуйста: У меня есть таблица ОказаниеУслуги с табличной частью Тираж(Номенклатура, НаборСвойств,Количество, Цена, Сумма) и документ Доставка с табличной частью Тираж (Номенклатура, НаборСвойств,Количество, Цена, Сумма - тоже самое то есть), хочу в ТЧ на форме документа Доставка передать ТЧ определенного документа ОказаниеУслуги, номер которого указывается на форме Доставка

Типы данных в ТЧ первого и второго документа - СправочникСсылка.Номенклатура, СправочникСсылка.ВариантыНоменклатуры, Число, Число,Число

Вот что я пыталась использовать:

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

    Пока Результат.Следующий() Цикл
        НоваяСтрока = Объект.Тираж.Добавить();
        
        НоваяСтрока.Номенклатура = Результат;
    КонецЦикла;

//    Результат = Запрос.Выполнить();
//    Выборка = Результат.Выбрать();
//    Объект.Тираж.Очистить();
//    Результат = Запрос.Выполнить().Выгрузить();
//    

//    Товары.Загрузить(РезультатЗапроса);
////    //Пока Выборка.() Цикл
//    
//      НовСтр = Объект.Тираж.Добавить();
//     НовСтр.Номенклатура = Выборка.Количество();
//;
//         //ЗаполнитьЗначенияСвойств(НовСтр, ВыборкаДетальныеЗаписи); //при условии что имена полей ТЧ и выборки совпадают
//    //КонецЦикла;
    
    КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
     ЗаполнитьТабличнуюЧасть();
КонецПроцедуры

В Тираж документа Доставки вставляется одна строка с пустыми значениями (когда записей в первой ТЧ  несколько)
Я находила решения в том числе здесь, но это были случаи передачи реквизитов документов а не реквизитов табличных частей... Немного затрудняюсь как быть
1 Chameleon1980
 
16.04.21
04:30
Почитайте про запросы азы
Очень много информации
На примере ваших задач
2 Chameleon1980
 
16.04.21
04:33
Выбирайте из таблицы тч
2. ЗаполнитьЗначенияСвойств(новая строка, выборка)
Или вообще обход запроса не нужен
Тч. Загрузить(результат. Выгрузить())
3 Chameleon1980
 
16.04.21
04:34
Блин
Даже есть правильные варианты в комментариях
4 Chameleon1980
 
16.04.21
04:35
Ну и откройте для себя отладчик
Быстрее все поймете и научитесь
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс