Имя: Пароль:
1C
 
Значение индекса выходит за границы диапазона
0 1ctube
 
28.04.18
09:05
День добрый. Есть такой код:

ПоследняяСтрока = ТабДокумент.ВысотаТаблицы;
    ПоследняяКолонка = ТабДокумент.ШиринаТаблицы;
    ОбластьЯчеек = ТабДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);
    
    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);
        
    ПостроительОтчета = Новый ПостроительОтчета;    
    ПостроительОтчета.ИсточникДанных = ИсточникДанных;
    ПостроительОтчета.Выполнить();
    
    // Результат выгружаем в таблицу значений.
    ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
    
    
    Для Каждого ТЗ Из ТабЗначений Цикл
        
        
            КодОС = Справочники.ОсновныеСредства.НайтиПоКоду(ТЗ.Получить("1"));
                        
            Сообщить(КодОС);
                
        КонецЦикла;
        
    Возврат ТабЗначений

В табличный документ вставляю данные из экселя в первую колонку, и при выполнении пишет "Значение индекса выходит за границы диапазона", как это исправить? Может в коде допустил ошибку? И может ли это из-за того, что в колонке в экселе указан тип "Общий"
1 catena
 
28.04.18
09:08
Почему "1"-то?
2 1ctube
 
28.04.18
09:10
(1) потому что я вставляю в первую колонку и в первую ячейку
3 catena
 
28.04.18
09:12
А с каких пор у нас строки символами нумеруются?
4 1ctube
 
28.04.18
09:17
(3) ааа, спасибо огромное за наводку, нужно с нуля искать)
5 1ctube
 
28.04.18
09:31
А еще вопрос: если я вставляю в другую колонку данные, например в 5, то пишет снова ошибка  "Значение индекса выходит за границы диапазона",
Вот код:
КодОС = Справочники.ОсновныеСредства.НайтиПоКоду(ТЗ.Получить("0"));
            КодПоОКОФ = Справочники.ОбщероссийскийКлассификаторОсновныхФондов.НайтиПоКоду(ТЗ.Получить("4"));            
            Сообщить(КодОС);
            Сообщить(КодПоОКОФ);
6 Ненавижу 1С
 
гуру
28.04.18
10:02
нах... символы в индекс совать?
7 catena
 
28.04.18
10:49
(4)Видимо не понятно. Разницу между "5" и 5 не видишь?
8 DrZombi
 
гуру
28.04.18
10:55
(0) Что такое .Получить("1")?
9 DrZombi
 
гуру
28.04.18
10:56
(5) Как самое правильное, воспользуйся отладкой.
10 АнализДанных
 
28.04.18
11:11
(5) Есть строка "5", есть число 5. Убери кавычки.
11 Сияющий в темноте
 
28.04.18
11:48
Самое печальное,что написанную строку с числом внутри 1с резво переведет в число и даже не вякнет
12 Valkyrie
 
28.04.18
11:55
А область разве не так получается?

ПрямоугольнаяОбластьЯчеек = ТабДок.Область("R2C2:R3C5");

(с) СП
13 Михаил Козлов
 
28.04.18
12:18
(12) Можно и по номерам строк и столбцов
14 hhhh
 
28.04.18
12:21
(12) можно так ТабДок.Область(2, 2, 3, 5)

покошернее