Имя: Пароль:
1C
1С v8
Как путем перебора строк табличной части документа заполнить данными строк таблицы значени
,
0 alpha78
 
21.07.22
12:44
Здравствуйте, такой вопросик - есть таблица значений, полученная из запроса.
Нукжно ее данными заполнить табличную часть документа. Вот код - ничего не заполняется:


Запрос = Новый Запрос ;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ТаблицаВодителиВодители.Ссылка,
                   |    ТаблицаВодителиВодители.Ссылка.Дата,
                   |    ТаблицаВодителиВодители.Маршрут КАК Маршрут,
                   |    ТаблицаВодителиВодители.Автомобиль КАК Автомобиль,
                   |    ТаблицаВодителиВодители.Водитель КАК Водитель,
                   |    ЕСТЬNULL(ТаблицаВодителиВодители.ПробегЗаДень, 0) КАК КМ,
                   |    ТаблицаВодителиВодители.ТемператураВХолодильнике КАК Температура,
                   |    ЕСТЬNULL(ТаблицаВодителиВодители.ТопливоГрн, 0) КАК Топливо,
                   |    ЕСТЬNULL(ТаблицаВодителиВодители.СкоростьГрн, 0) КАК Скорость,
                   |    ЕСТЬNULL(ТаблицаВодителиВодители.Штраф, """") КАК Штраф
                   |ИЗ
                   |    Документ.ТаблицаВодители.Водители КАК ТаблицаВодителиВодители
                   |ГДЕ
                   |    ТаблицаВодителиВодители.Ссылка = &СсылкаТВ" ;
                  
    Запрос.УстановитьПараметр("СсылкаТВ", СсылкаТВ);
    Т = Запрос.Выполнить().Выгрузить() ;
     Для Каждого Стр Из Маршруты Цикл
             Стр.Маршрут = Т.Маршрут ;
            Стр.Машины = Т.Автомобиль ;
            Стр.Водитель = Т.Водитель;  
            Стр.КМ = Т.КМ ;
            Стр.Топливо = Т.Топливо ;
            Стр.Скорость = Т.Скорость ;
            Стр.Температура = Т.Температура ;
            Стр.Штраф = Т.Штраф ;
            Стр.Стоимость = Стр.ЗарплатаВодителю + Стр.ЗарплатаГрузчику + Стр.Скорость + Стр.Топливо ;
    КонецЦикла ;
1 Галахад
 
гуру
21.07.22
12:46
Прикольный код. :-)
2 Мультук
 
гуру
21.07.22
12:46
(0) Ты этот код хотя бы запускал ?
3 mgreat
 
21.07.22
12:48
Нужно в таблице Т искать строчку с нужными данными. Например так:
Отбор = Новый Структура("Маршрут", Стр.Маршрут);
НайденныеСтроки = Т.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество()=0 Тогда
//ничего не нашли
     Продолжить;
КонецЕсли;

Стр.Машины = НайденныеСтроки[0].Автомобиль ;

А если в Т несколько нужных строк - тогда еще один цикл внутри цикла по перебору этих строк и в основную таблицу нужно будет добавлять строчки
4 ZDenis
 
21.07.22
13:03
5 arsik
 
гуру
21.07.22
13:13
(0) Стаж: 7 лет 3 месяца 3 дня
Сознавайся, зачем аккаунт у человека увел.
6 Прохожий
 
21.07.22
13:26
Тоже к вам хочу. Скока плотят?
7 Fish
 
21.07.22
15:25
(5) Судя по темам ТС, он раньше 7.7. пилил.
8 Kassern
 
21.07.22
15:28
(0) Объект.Маршруты.Загрузить(ТЗ)
9 Lama12
 
21.07.22
15:34
А почему нет желания "Стр.Стоимость = Стр.ЗарплатаВодителю + Стр.ЗарплатаГрузчику + Стр.Скорость + Стр.Топливо" запихнуть в запрос, а потом сделать как в (8)?
Ну и вопрос. Почему денежные единицы складываете со скоростью и объемом/весом?
На всякий случай. Есть езе такая штука как "ЗаполнитьЗначениеСвойств".
10 sitex
 
naïve
21.07.22
15:42
(9) ттссссс, человек СП не открывал ))), лучше сразу туда направить
11 sitex
 
naïve
21.07.22
15:47
(3) Можно и ПостроительЗапроса сделать причем не городить циклы