Заполнить реквизит ТЧ последующей строки на основании реквизита из предыдущей
Здравствуйте, уважаемые форумчане. Помогите, пожалуйста. Есть табличная часть ТЧПЛ. Мне нужно, чтобы в реквизит СпидометрВозвращения попадала сумма двух других реквизитов. Этого я, вроде бы, добился. Кроме того, в следующей строке реквизит СтрТЧ.СпидометрВыезда должен принять значение СтрТЧ.СпидометрВозвращения из предыдущей.
При попытке запустить мой пример выходит следующая ошибка (Получение элемента по индексу для значения не определено
{ВнешняяОбработка.ЗаполнитьПробегИТопливоПоСреднемуПоТопливу.Форма.Форма.Форма(330)}: СтрТЧ.СпидометрВыезда[Объект.ТЧПЛ.Индекс(СтрТЧ)+1] = СтрТЧ.СпидометрВозвращения;) Подскажите, пожалуйста, как мне реализовать заполнение реквизита последующей строки на основании реквизита из предыдущей?
Далее я попробовал сделать так:
Вышла аналогичная ошибка.
При попытке запустить мой пример выходит следующая ошибка (Получение элемента по индексу для значения не определено
{ВнешняяОбработка.ЗаполнитьПробегИТопливоПоСреднемуПоТопливу.Форма.Форма.Форма(330)}: СтрТЧ.СпидометрВыезда[Объект.ТЧПЛ.Индекс(СтрТЧ)+1] = СтрТЧ.СпидометрВозвращения;) Подскажите, пожалуйста, как мне реализовать заполнение реквизита последующей строки на основании реквизита из предыдущей?
Процедура ТЧПЛПробегПоGPSПриИзменении(Элемент)
Для Каждого СтрТЧ Из Объект.ТЧПЛ Цикл
СтрТЧ.СпидометрВозвращения = СтрТЧ.СпидометрВыезда + СтрТЧ.ПробегПоGPS;
СтрТЧ.СпидометрВыезда[Объект.ТЧПЛ.Индекс(СтрТЧ)+1] = СтрТЧ.СпидометрВозвращения;
КонецЦикла;
КонецПроцедуры
Далее я попробовал сделать так:
ТекСтрока = Элементы.ТЧПЛ.ТекущаяСтрока;
CтрокаТЧ = Элементы.ТЧПЛ.ТекущиеДанные;
ИндексТекСтроки = Объект.ТЧПЛ.Индекс(ТекСтрока);
ВсегоСтрок = Объект.ТЧПЛ.Количество();
Для ИндексТекСтроки=0 По ВсегоСтрок-1 Цикл
CтрокаТЧ.СпидометрВозвращения[ИндексТекСтроки] = CтрокаТЧ.СпидометрВыезда[ИндексТекСтроки] + CтрокаТЧ.ПробегПоGPS[ИндексТекСтроки];
CтрокаТЧ.СпидометрВыезда[ИндексТекСтроки+1] = CтрокаТЧ.СпидометрВозвращения[ИндексТекСтроки];
КонецЦикла;
ПоказатьВышла аналогичная ошибка.
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Загрузка всех онлайн-чеков с сервиса проверки чеков ФНС (налоговой) – обработка для получения данных о покупках по чекам онлайн-касс с загрузкой в Авансовый отчет
- Путевой лист легкового автомобиля 1С:Бухгалтерия 3.0
- Путевой лист грузового автомобиля в 1С:Бухгалтерия 3.0
- Загрузка чеков в 1С из ФНС в документы БП, УНФ, ERP, КА и УТ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Исправил на:
Теперь ошибка следующая: Индекс находится за границами массива
{ВнешняяОбработка.ЗаполнитьПробегИТопливоПоСреднемуПоТопливу.Форма.Форма.Форма(334)}: Объект.ТЧПЛ[ИндексТекСтроки+1].СпидометрВыезда = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения;
ТекСтрока = Элементы.ТЧПЛ.ТекущаяСтрока;
CтрокаТЧ = Элементы.ТЧПЛ.ТекущиеДанные;
ИндексТекСтроки = Объект.ТЧПЛ.Индекс(ТекСтрока);
ВсегоСтрок = Объект.ТЧПЛ.Количество();
Для ИндексТекСтроки=0 По ВсегоСтрок-1 Цикл
Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВыезда + Объект.ТЧПЛ[ИндексТекСтроки].ПробегПоGPS;
Объект.ТЧПЛ[ИндексТекСтроки+1].СпидометрВыезда = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения;
КонецЦикла;
ПоказатьТеперь ошибка следующая: Индекс находится за границами массива
{ВнешняяОбработка.ЗаполнитьПробегИТопливоПоСреднемуПоТопливу.Форма.Форма.Форма(334)}: Объект.ТЧПЛ[ИндексТекСтроки+1].СпидометрВыезда = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения;
(5)
Скажите, пожалуйста, так должно быть?
ТекСтрока = Элементы.ТЧПЛ.ТекущаяСтрока;
ИндексТекСтроки = Объект.ТЧПЛ.Индекс(ТекСтрока);
ВсегоСтрок = Объект.ТЧПЛ.Количество();
ПредыдущаяСтрока = Неопределено;
Для ИндексТекСтроки=0 По ВсегоСтрок-1 Цикл
Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВыезда + Объект.ТЧПЛ[ИндексТекСтроки].ПробегПоGPS;
ПредыдущаяСтрока = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения;
Если ИндексТекСтроки > 0 Тогда
Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВыезда = ПредыдущаяСтрока;
КонецЕсли;
КонецЦикла;
ПоказатьИндексТекСтроки = Объект.ТЧПЛ.Индекс(ТекСтрока);
ВсегоСтрок = Объект.ТЧПЛ.Количество();
ПредыдущаяСтрока = Неопределено;
Для ИндексТекСтроки=0 По ВсегоСтрок-1 Цикл
Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВыезда + Объект.ТЧПЛ[ИндексТекСтроки].ПробегПоGPS;
ПредыдущаяСтрока = Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВозвращения;
Если ИндексТекСтроки > 0 Тогда
Объект.ТЧПЛ[ИндексТекСтроки].СпидометрВыезда = ПредыдущаяСтрока;
КонецЕсли;
КонецЦикла;
Скажите, пожалуйста, так должно быть?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот