Как в 8-ке обратиться к предыдущей строке в цикле?
Код 7.7:
код 8.2:
Код 7.7:
ВыбратьСтроки();
Пока ПолучитьСтроку()>0 Цикл
Если НомерСтроки=1 Тогда
ТекущееСальдо=СуммаРасход-СуммаПриход;
ТекущееСальдо_=ТекущееСальдо;
Дата_=ДатаДокумента;
Иначе
ТекущееСальдо=ТекущееСальдо_+СуммаРасход-СуммаПриход;
ТекущееСальдо_=ТекущееСальдо;
Кол_во_Дней[НомерСтроки-1]=ДатаДокумента-Дата_;
Дата_=ДатаДокумента;
КонецЕсли;
Показатькод 8.2:
Для каждого СтрокаТЧ Из ТЧ Цикл
Если СтрокаТЧ.НомерСтроки = 1 Тогда
СтрокаТЧ.ТекущееСальдо = СтрокаТЧ.СуммаРасход - СтрокаТЧ.СуммаПриход;
ТекущееСальдо_=СтрокаТЧ.ТекущееСальдо;
Дата_=СтрокаТЧ.ДатаДокумента;
Иначе
СтрокаТЧ.ТекущееСальдо=ТекущееСальдо_+СтрокаТЧ.СуммаРасход-СтрокаТЧ.СуммаПриход;
ТекущееСальдо_=СтрокаТЧ.ТекущееСальдо;
СтрокаТЧ.Кол_во_Дней = (СтрокаТЧ.ДатаДокумента-Дата_)/(24*60*60);// ???????????????
Дата_=СтрокаТЧ.ДатаДокумента;
КонецЕсли;
ПоказатьПо теме из базы знаний
- Перебор всех строк дерева значений в глубину
- Поиск строки XML-файла, содержащей значение, не соответствующее типу свойства XDTO пакета
- Корректировка функции общего модуля "СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку()"
- О цикле обратном замолвите слово...
- Удаление строк из таблицы значений различными способами с замером производительности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В регламентированных отчета нужно так (ПТД.Области["***"].Значение):
Иначе будет ошибка:
Индексированное значение доступно только для чтения
ПТД_Транспорт.Области["П000010001001_2"].Значение = П000010001001_2_Пп_5_7_1;
Иначе будет ошибка:
Индексированное значение доступно только для чтения
(1) А если так:
ТекущееСальдо_= 0;
Дата_=Дата(1,1,1);
Для Каждого СтрокаТЧ Из ТЧ Цикл
ТекущееСальдо_=ТекущееСальдо+СтрокаТЧ.СуммаРасход-СтрокаТЧ.СуммаПриход;
СтрокаТЧ.ТекущееСальдо = ТекущееСальдо_;
СтрокаТЧ.Кол_во_Дней = ?(СтрокаТЧ.НомерСтроки = 1, 0, СтрокаТЧ.ДатаДокумента-Дата_)/(24*60*60);// ???????????????
Дата_=СтрокаТЧ.ДатаДокумента;
КонецЦикла;
ПоказатьДата_=Дата(1,1,1);
Для Каждого СтрокаТЧ Из ТЧ Цикл
ТекущееСальдо_=ТекущееСальдо+СтрокаТЧ.СуммаРасход-СтрокаТЧ.СуммаПриход;
СтрокаТЧ.ТекущееСальдо = ТекущееСальдо_;
СтрокаТЧ.Кол_во_Дней = ?(СтрокаТЧ.НомерСтроки = 1, 0, СтрокаТЧ.ДатаДокумента-Дата_)/(24*60*60);// ???????????????
Дата_=СтрокаТЧ.ДатаДокумента;
КонецЦикла;
(12)
В SQL запросе такая задача вообще просто решается. Есть же функции LEAD() и LAG(). Хочешь к следующей строке, хочешь к предыдущей.
В 1С такие задачи решаются только за счет соединения таблицы сама с собой и кучи кода.
А представьте, что это в запросе... =)
В SQL запросе такая задача вообще просто решается. Есть же функции LEAD() и LAG(). Хочешь к следующей строке, хочешь к предыдущей.
В 1С такие задачи решаются только за счет соединения таблицы сама с собой и кучи кода.
ПредСтрока = НЕОПРЕДЕЛЕНО;
Для каждого СтрокаТЧ Из ТЧ Цикл
Если ПредСтрока = НЕОПРЕДЕЛЕНО Тогда
СтрокаТЧ.ТекущееСальдо = СтрокаТЧ.СуммаРасход - СтрокаТЧ.СуммаПриход;
ТекущееСальдо_=СтрокаТЧ.ТекущееСальдо;
Дата_=СтрокаТЧ.ДатаДокумента;
Иначе
СтрокаТЧ.ТекущееСальдо=ТекущееСальдо_+СтрокаТЧ.СуммаРасход-СтрокаТЧ.СуммаПриход;
ТекущееСальдо_=СтрокаТЧ.ТекущееСальдо;
ПредСтрока.Кол_во_Дней = (СтрокаТЧ.ДатаДокумента-Дата_)/(24*60*60);// ???????????????
Дата_ = СтрокаТЧ.ДатаДокумента;
КонецЕсли;
ПредСтрока = СтрокаТЧ;
КонецЦикла;
Показать
(14) Ветка 2012 года. Зачем в (9) Светлый ум поднял её не понятно. И как он её нашел, тоже не понятно. Это надо было постараться.
Я даже не обратил внимание сначала что это ветка 2012 года, но в памяти как-то отметилось что код 8.2. Спасибо DENSKR подсказал, что ветка очень старая. :-)
Но это было уже после того как я написал. :-)
Я даже не обратил внимание сначала что это ветка 2012 года, но в памяти как-то отметилось что код 8.2. Спасибо DENSKR подсказал, что ветка очень старая. :-)
Но это было уже после того как я написал. :-)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот