|
Индекс находится за границами массива (внешний отчет) |
☑ |
0
Arturec05
26.12.20
✎
12:01
|
Добрый день. Разрабатывал отчет для просмотра продаж с отображением цен по накладной и по прайсу, чтоб увидеть разницу.
Возникла ошибка в следующем куске кода:
РезультатЗапроса = Запрос.Выполнить();
ТабЦен = РезультатЗапроса.Выгрузить();
ТабЦен.Сортировать("Цена ВОЗР");
СтаршийИндекс = ТабЦен.Количество() - 1;
Если ЦенаТовара >= ТабЦен[СтаршийИндекс].Цена Тогда
НужныйТипЦен = ТабЦен[СтаршийИндекс].ТипЦен;
НужнаяЦена = ТабЦен[СтаршийИндекс].Цена;
Отклонение = ТабЦен[СтаршийИндекс].Цена - ЦенаТовара;
Иначе ...
При отладке получил следующие значения:
ТабЦен.Количество() - 7
СтаршийИндекс - 6
ТабЦен[СтаршийИндекс].Цена - 8 000
ЦенаТовара - 7 500
Вроде бы все правильно, не могу понять на что ругается.
Конфигурация 1с управление торговлей 10.3.28.1
Платформа 1С:Предприятие 8.3 (8.3.13.1865)
|
|
1
PR
26.12.20
✎
12:05
|
Держи нас в курсе
|
|
2
Kassern
26.12.20
✎
12:06
|
А в запросе все сделать не судьба?
|
|
3
Kassern
26.12.20
✎
12:09
|
(0) Вроде и в ошибке все по русски расписано, из-за чего происходит. Значит у тебя в каком то случае идет обращение к индексу за гранью массива. Например при ТабЦен.Количество()=0 ты получишь такую ошибку 100%
|
|
4
Arturec05
26.12.20
✎
12:17
|
(3) в шапке показал результаты которые были прям перед появлением ошибки, за границы массива не выхожу
|
|
5
Arturec05
26.12.20
✎
12:18
|
оишбка выходит в строке Если ЦенаТовара >= ТабЦен[СтаршийИндекс].Цена Тогда
|
|
6
Kassern
26.12.20
✎
12:31
|
(5) чудес не бывает, прям в отладке напиши ТабЦен[6], где ТабЦен имеет 7 элементов и посмотри, что тебе напишет
|
|
7
Галахад
гуру
26.12.20
✎
12:38
|
(0) Отсортируй по убыванию, и вычисляй "Младший индекс". :)
|
|
8
Arturec05
26.12.20
✎
12:45
|
(3) Проблему нашел, оказалось в товаре у которого на указанную дату не было цен. Спасибо за наводку
|
|