Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Индекс находится за границами массива (внешний отчет)

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.