Имя: Пароль:
1C
1С v8
индекс находится за пределами массива ( при формировании ОСВ)
0 Данил Сергеевич
 
29.07.13
14:22
Конфигурация: Бухгалтерия 3.0 (3.0.23.7).Только вручную внесли остатки. При формировании Оборотно-сальдовой ведомости пишет ошибку "индекс находится за пределами массива". В отладчике останавливается на ОтчетОСВ-Модуль менеджера( на строке: ИмяПараметра = Строка(Ячейка.Элементы[0].Значение);).

Процедура ПередВыводомЭлементаРезультата(ПараметрыОтчета, МакетКомпоновки, ДанныеРасшифровки, ЭлементРезультата, Отказ = Ложь) Экспорт
    
    // Отсекаем валютные группировки на счетах, по которым не ведется
    // валютный учет
    Если ЭлементРезультата.ЗначенияПараметров.Количество() > 0
        И ЭлементРезультата.ЗначенияПараметров.Найти("П1") <> Неопределено
        И ЗначениеЗаполнено(ЭлементРезультата.Макет)
        И ПараметрыОтчета.ВременныеДанныеОтчета.МакетВалюта.Найти(ЭлементРезультата.Макет) <> Неопределено
        И ЭлементРезультата.ЗначенияПараметров.П1.Значение = Null Тогда
        Отказ = Истина;
        Возврат;
    КонецЕсли;
    
    Если ПараметрыОтчета.ПоказательВалютнаяСумма
        И ПараметрыОтчета.ВременныеДанныеОтчета.КоличествоПоказателей > 1 Тогда
        КоличествоПоказателей = ПараметрыОтчета.ВременныеДанныеОтчета.КоличествоПоказателей - 1;
    Иначе
        КоличествоПоказателей = ПараметрыОтчета.ВременныеДанныеОтчета.КоличествоПоказателей;
    КонецЕсли;
    
    // Обрабатываем элементы, содержащие корневые счета
    Если ЭлементРезультата.ЗначенияПараметров.Количество() > 0
        И ЭлементРезультата.ЗначенияПараметров.Найти("П1") <> Неопределено
        И ЗначениеЗаполнено(ЭлементРезультата.Макет)
        И ПараметрыОтчета.ВременныеДанныеОтчета.МакетШапкиОтчета <> ЭлементРезультата.Макет
        И ПараметрыОтчета.ВременныеДанныеОтчета.МакетПодвал <> ЭлементРезультата.Макет Тогда
        
        //Накапливаем суммы по корневым счетам
        Если ПараметрыОтчета.ВременныеДанныеОтчета.МакетСчет.Найти(ЭлементРезультата.Макет) <> Неопределено Тогда
            ИдентификаторРасшифровки = ЭлементРезультата.ЗначенияПараметров.П2.Значение;
            ЗначениеСчет = ДанныеРасшифровки.Элементы[ИдентификаторРасшифровки].ПолучитьПоля()[0].Значение;
            Если Не ЗначениеЗаполнено(ЗначениеСчет.Родитель) И Не ЗначениеСчет.Забалансовый Тогда
                Для Индекс = 0 По КоличествоПоказателей - 1 Цикл
                    Для ПодИндекс = 1 По 6 Цикл
                        СтрокаМакета = МакетКомпоновки.Макеты[ЭлементРезультата.Макет].Макет[Индекс];
                        Ячейка = СтрокаМакета.Ячейки[ПодИндекс + ПараметрыОтчета.ВременныеДанныеОтчета.СмещениеПоСтроке];
                        ИмяПараметра = Строка(Ячейка.Элементы[0].Значение);
                        
                        Значение = ЭлементРезультата.ЗначенияПараметров[ИмяПараметра].Значение;
                        Если Не ЗначениеСчет.НалоговыйУчет И Индекс = (КоличествоПоказателей - 1)
                            И ПараметрыОтчета.ПоказательКонтроль Тогда
                            Значение = 0;
                        КонецЕсли;
                        ПараметрыОтчета.ВременныеДанныеОтчета.ЗначенияПоказателей[ПодИндекс - 1][Индекс] = ПараметрыОтчета.ВременныеДанныеОтчета.ЗначенияПоказателей[ПодИндекс - 1][Индекс] + Значение;
                    КонецЦикла;
                КонецЦикла;
            КонецЕсли;
        КонецЕсли;
        
        // Проставляем накопленные суммы в подвал отчета
    ИначеЕсли ЭлементРезультата.Макет = ПараметрыОтчета.ВременныеДанныеОтчета.МакетПодвал Тогда
        Для Индекс = 0 По КоличествоПоказателей - 1 Цикл
            Для ПодИндекс = 1 По 6 Цикл
                СтрокаМакета = МакетКомпоновки.Макеты[ПараметрыОтчета.ВременныеДанныеОтчета.МакетПодвал].Макет[Индекс];
                Ячейка = СтрокаМакета.Ячейки[ПодИндекс + ПараметрыОтчета.ВременныеДанныеОтчета.СмещениеПоСтроке];
                ИмяПараметра = Строка(Ячейка.Элементы[0].Значение);
                
                ЭлементРезультата.ЗначенияПараметров[ИмяПараметра].Значение = ПараметрыОтчета.ВременныеДанныеОтчета.ЗначенияПоказателей[ПодИндекс - 1][Индекс];
            КонецЦикла;
        КонецЦикла;
    КонецЕсли;
        
КонецПроцедуры

Скажите куда глядеть? Где что не заполнено? Спасибо!
1 Данил Сергеевич
 
29.07.13
14:33
Перед этим ещё говорит "Ошибка времени выполнения ..." http://savepic.org/4239448.png
2 a_alenkin
 
29.07.13
14:59
что мешает в отлатчике на строке 592 поставить точку останова?
3 Данил Сергеевич
 
29.07.13
15:04
ИмяПараметра = Строка(Ячейка.Элементы[0].Значение);
Вот это она и есть, но на что она мне намекает не могу понять...
4 a_alenkin
 
29.07.13
15:07
Ячейка.Элементы - пустой массив
5 piter3
 
29.07.13
15:08
(3) Ячейка.Элементы не массив
6 Данил Сергеевич
 
29.07.13
15:23
Что сделать чтоб он был не пустой? (4)
7 Данил Сергеевич
 
29.07.13
15:29
(5) Или что сделать чтоб был массив?
8 Данил Сергеевич
 
29.07.13
15:35
Ребята, не проходим мимо! Советуем коллеге, завтра я помогу вам!
9 Данил Сергеевич
 
29.07.13
15:38
5 SM перечислю, хотя бы за вектор в правильном направлении, но по уже чем уже было озвученно
10 hhhh
 
29.07.13
15:47
ну может                 Для ПодИндекс = 0 По 5 Цикл
11 Данил Сергеевич
 
29.07.13
15:55
Проблема решилась добавлением нового пользователя. Под ним отчет взлетел!!! Спасибо ни кому.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн