|
Произошла исключительная ситуация: Значение индекса выходит за границы диапазона | ☑ | ||
---|---|---|---|---|
0
Frostik
25.09.12
✎
05:45
|
Есть Функция :
Функция КОМвТЗ(КОМ) Тз = новый ТаблицаЗначений; КЧ = Новый КвалификаторыЧисла(12,2); КС = Новый КвалификаторыСтроки(150); КД = Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя); Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ОС = Новый ОписаниеТипов(Массив, , КС); Массив.Очистить(); Массив.Добавить(Тип("Число")); ОЧ = Новый ОписаниеТипов(Массив, , ,КЧ); Массив.Очистить(); Массив.Добавить(Тип("Дата")); ОД = новый ОписаниеТипов(Массив, , ,КД); Массив.Очистить(); Массив.Добавить(Тип("Булево")); ОБ = Новый ОписаниеТипов(Массив); Массив.Очистить(); Массив.Добавить(Тип(Открытие.перечисления.СистемаОплаты)); Осс = Новый ОписаниеТипов(Массив); //цикл создает колонки в ТЗ с соответсвующими типами данных //данный цикл необходим для четкого определения типа значений в полях Тз //иначе возникает ошибка Для каждого тайтл Из КОМ.Columns Цикл имяКОМколонка = Тайтл.Title; КК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Строка"),КС, КК); ОК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Строка"),ОС, ОК); КК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Число"),Кч,КК); ОК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Число"),ОЧ, ОК); КК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Дата"),Кд,КК); ОК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Дата"),ОД, ОК); ОК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("БУлево"),ОБ,ОК); ОК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип(Открытие.перечисления.СистемаОплаты),Осс,ОК); ТЗ.Колонки.Добавить(имяКОМколонка,ОК); КонецЦикла; //двойной цикл проходящий по КОМ таблице,полученной из запрос внешней БД //и переносящий значений в ТЗ соответсвенно именам колонок Для каждого КОМстр Из КОМ Цикл ТЗстр = ТЗ.Добавить(); Для каждого тайтл Из КОМ.Columns Цикл имяКОМколонка = Тайтл.Title; ТЗстр[имяКОМколонка]= КОМстр[имяКОМколонка]; КонецЦикла; КонецЦикла; //возвращаемое значение отработанной функции Возврат ТЗ; КонецФункции |
|||
1
Frostik
25.09.12
✎
05:46
|
При выполнении выдает ошибку
Ошибка при вызове метода контекста (Получить): Произошла исключительная ситуация: Значение индекса выходит за границы диапазона КК = ?(ТипЗнч(КОМ.Получить(0)[имяКомколонка]) = Тип("Строка"),КС, КК); |
|||
2
Tymoha
25.09.12
✎
05:49
|
ты таблицу значений так копируешь чтоль?
|
|||
3
Frostik
25.09.12
✎
05:51
|
Создаю выходную таблицу
|
|||
4
Tymoha
25.09.12
✎
05:53
|
ну так а почему просто не скопировать ТЗ?
|
|||
5
Frostik
25.09.12
✎
05:58
|
Значения получаю по КОМ соединению из внешней БД, если просто скопировать не будет соответствовать поставленным задачам
|
|||
6
Рэйв
25.09.12
✎
06:03
|
Значит нет у тебя строк в КОМ вообще
|
|||
7
Frostik
25.09.12
✎
06:09
|
то есть нету таких строк во внешней БД откуда я получаю данные?
|
|||
8
Рэйв
25.09.12
✎
06:12
|
(6)Да, она пустая. Потому .Получить(0) выходит за границу. Нет у тебя там строки с индексом 0
|
|||
9
Рэйв
25.09.12
✎
06:13
|
Если хочешь, проверь в табло
КОМ.Количество() |
|||
10
Frostik
25.09.12
✎
06:14
|
Подскажите пж как решить проблему?
P.S я не столь давно начал разрабатывать прикладные решения на платформе 1с |
|||
11
Рэйв
25.09.12
✎
06:17
|
В начале функции вставь код
//--- Если КОМ.Количество()= Тогда Сообщить("Полученная по СОМ таблица пуста!"); Возврат; КонецЕсли; //----- И ошибку выдавать перестанет:-) а почему она пустая -- это уж сам смотри. |
|||
12
Рэйв
25.09.12
✎
06:17
|
КОМ.Количество()= 0
нумлок отрубился:-) |
|||
13
Рэйв
25.09.12
✎
06:19
|
+и раз уж функция , то не просто
Возврат; а Возврат КОМ; |
|||
14
Tymoha
25.09.12
✎
06:20
|
(11) если я правильно понял, КОМ в данной ситуации вообще не таблица значений ...
|
|||
15
Рэйв
25.09.12
✎
06:21
|
(14)Какая то коллекция точно. Иначе ругалось бы не на выход за границу индексов а на отстутствие методе .Получить();
Раз метод есть, значит коллекция |
|||
16
Tymoha
25.09.12
✎
06:25
|
(15) угу ... согласен ... уговорил )))
|
|||
17
Frostik
25.09.12
✎
06:27
|
Да Ком пуста...
|
|||
18
Прохожий
25.09.12
✎
06:28
|
До чего довел планету это фигляр ПэЖэ...
|
|||
19
Прохожий
25.09.12
✎
06:28
|
Пацаки чатланам на голову сели, метод Количество() курить не хотят...
|
|||
20
Frostik
25.09.12
✎
06:32
|
мда...
|
|||
21
Frostik
25.09.12
✎
06:40
|
Спасибо всем за помощь)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |