|
Заполнение реквизита ТЧ последующей строки на основании реквизита из предыдущей | ☑ | ||
---|---|---|---|---|
0
Max57
12.09.23
✎
18:46
|
Здравствуйте, уважаемые форумчане. Помогите, пожалуйста. Есть табличная часть ТЧПЛ. Мне нужно, чтобы в реквизит СпидометрВозвращения попадала сумма двух других реквизитов. Этого я, вроде бы, добился. Кроме того, в следующей строке реквизит СтрТЧ.СпидометрВыезда должен принять значение СтрТЧ.СпидометрВозвращения из предыдущей.
При попытке запустить мой пример выходит следующая ошибка (Получение элемента по индексу для значения не определено {ВнешняяОбработка.ЗаполнитьПробегИТопливоПоСреднемуПоТопливу.Форма.Форма.Форма(330)}: СтрТЧ.СпидометрВыезда[Объект.ТЧПЛ.Индекс(СтрТЧ)+1] = СтрТЧ.СпидометрВозвращения;) Подскажите, пожалуйста, как мне реализовать заполнение реквизита последующей строки на основании реквизита из предыдущей? Процедура ТЧПЛПробегПоGPSПриИзменении(Элемент) Для Каждого СтрТЧ Из Объект.ТЧПЛ Цикл СтрТЧ.СпидометрВозвращения = СтрТЧ.СпидометрВыезда + СтрТЧ.ПробегПоGPS; СтрТЧ.СпидометрВыезда[Объект.ТЧПЛ.Индекс(СтрТЧ)+1] = СтрТЧ.СпидометрВозвращения; КонецЦикла; КонецПроцедуры |
|||
1
vicof
12.09.23
✎
19:17
|
Циклы еще бывают со счетчиком.
А ошибка в том, что строки нет с таким индексом. |
|||
2
Max57
12.09.23
✎
20:45
|
(1) Спасибо, посмотрите, пожалуйста https://imgur.com/myb3ypu. Что-то похожее надо сделать? Почему у меня ошибка выходит, что переменная не определена?
|
|||
3
Max57
12.09.23
✎
20:48
|
(2) https://disk.yandex.ru/i/WFMTMainamoDgw Вот скрин.
|
|||
4
H A D G E H O G s
13.09.23
✎
02:53
|
Храни предыдыдущую строку в отдельной переменной
|
|||
5
vicof
13.09.23
✎
09:06
|
(3) А ТЧПЛ у тебя на форме есть? И имеет тип ТаблицаЗначений?
|
|||
6
Max57
13.09.23
✎
09:23
|
(5) На форме есть. Тип вот такой (ВнешняяОбработкаТабличнаяЧасть.ЗаполнитьПробегИТопливоПоСреднемуПоТопливу.ТЧПЛ).
|
|||
7
Saari
13.09.23
✎
10:57
|
ПредыдущаяСтрока = Неопределено;
Для Каждого СтрТЧ Из Объект.ТЧПЛ Цикл Если НЕ ПредыдущаяСтрока = Неопределено Тогда СтрТЧ.СпидометрВыезда = ПредыдущаяСтрока.СпидометрВозвращения; КонецЕсли; СтрТЧ.СпидометрВозвращения = СтрТЧ.СпидометрВыезда + СтрТЧ.ПробегПоGPS; ПредыдущаяСтрока = СтрТЧ; КонецЦикла; |
|||
8
Max57
13.09.23
✎
11:08
|
(7) Спасибо
|
|||
9
AlexeyKh
13.09.23
✎
11:13
|
или так попробуйте
Для Каждого СтрТЧ Из Объект.ТЧПЛ Цикл Если СтрТЧ.НомерСтроки > 1 Тогда СтрТЧ.СпидометрВыезда = Объект.ТЧПЛ[СтрТЧ.НомерСтроки - 1].СпидометрВозвращения; Иначе СтрТЧ.СпидометрВыезда = 0; КонецЕсли; СтрТЧ.СпидометрВозвращения = СтрТЧ.СпидометрВыезда + СтрТЧ.ПробегПоGPS; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |