Имя: Пароль:
1C
1С v8
Индекс находится за границами массива, как исправить?
0 Босечка
 
08.11.12
10:33
Нужнго вывести 2 строку табл знач.

Если Т.Количество()>0 тогда    
 Для НомерСтроки = 0 По Т.Количество() - 1 Цикл
     Стр1=Т[1].ДатаН;
 КонецЦикла;    
Конецесли;  

 Возврат Стр1;

Выдает сообщение
Индекс находится за границами массива!
1 salvator
 
08.11.12
10:34
А зачем цикл?
2 cw014
 
08.11.12
10:34
Стр1=Т[1].ДатаН;

Тут ошибка
3 Maxus43
 
08.11.12
10:36
Т[НомерСтроки].ДатаН
4 Wobland
 
08.11.12
10:36
(0) это называется вывести ДатуН из первой строки (которой нет) несколько раз
5 salvator
 
08.11.12
10:36
Если Т.Количество()>2 Тогда      
  Возврат Т[1].ДатаН;
Иначе
  Возврат Неопределено;
Конецесли;
6 salvator
 
08.11.12
10:37
+(5) Только не > а >=
7 Wobland
 
08.11.12
10:37
(5) на Т.Количество()=2 сломается
8 drcrasher
 
08.11.12
10:37
(0) чо вообще хочешь то?
9 CaMoJleT
 
08.11.12
10:39
Голосую за правильность ответа (3).
10 Wobland
 
08.11.12
10:40
(2) тоже верный
11 cw014
 
08.11.12
10:40
(9) Правильность в (5)
12 Wobland
 
08.11.12
10:40
и даже (5) с оговоркой (6)
13 Aprobator
 
08.11.12
10:40
(0) в массиве только один элемент. А тут обращение ко второму.
14 cw014
 
08.11.12
10:41
(12) Ну меня поняли
15 salvator
 
08.11.12
10:42
Ну если именно 2-ю строку - то (5)+(6)
Если вообще все - то (2)
16 salvator
 
08.11.12
10:42
Мля, (3)
17 cw014
 
08.11.12
10:43
(16) Прочитайте еще и текст сообщения, а не только код. Тогда поймете почему именно так правильно
18 НЕА123
 
08.11.12
10:45
без циклов
Т[Т.Количество() - 1].ДатаН
19 Fenrik
 
08.11.12
10:46
Постановка задача корявая, ошибка может быть и в ней.

(18) Наркоман, чтоле?
20 НЕА123
 
08.11.12
10:46
(18)
эээ... ну да. (5)(6) то что надо.
21 cw014
 
08.11.12
10:46
(19) + 1
22 НЕА123
 
08.11.12
10:47
(19)
не, только учусь.
23 salvator
 
08.11.12
10:47
(17) Так задача стоит вывести только 2-ю строку, не?
24 Босечка
 
08.11.12
10:48
Все равно не работает.
Делала так:

Если Т.Количество()>=2 Тогда      
  Возврат Т[1].ДатаН;
Иначе
  Возврат Неопределено;
Конецесли;    

Это в функции.


                  НачРабот=ПолучитьНачалоРабот(текСтрокаСпискаДат.Ссылка);                
               
               ОбластьМакета.Параметры.НачРаб = НачРабот;
               
               
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
                 |    РАЗНОСТЬДАТ(&Дата1, &Дата2, ЧАС) КАК РазностьДат";
Запрос.УстановитьПараметр("Дата1", НачРабот);
Запрос.УстановитьПараметр("Дата2", текСтрокаСпискаДат.Ссылка.ДатаОТК);
РазностьДат = Запрос.Выполнить().Выгрузить()[0].РазностьДат;
25 salvator
 
08.11.12
10:50
(24) Телепатирую: у вас в ТЗ нет второй строки.
26 Босечка
 
08.11.12
10:50
на запросе ругается. Неверные параметры РАЗНОСТЬДАТ
27 Босечка
 
08.11.12
10:51
Наверное.
28 salvator
 
08.11.12
10:52
Что в НачДат получается? Неопределено?
Да и вообще нафига эту кашу с запросом, не понимаю.
29 Aprobator
 
08.11.12
10:59
интересный метод программирования у ТС. И ведь народ то ведется.
30 Wobland
 
08.11.12
11:04
(29) ТС не знает, что такое программирование
31 Aprobator
 
08.11.12
11:05
(30) но из положения неплохо выходит.
32 cw014
 
08.11.12
11:06
Босечка, тебе из второй строки нужно дату выбрать или из последней?
33 Босечка
 
08.11.12
11:20
Спасибо, все получилось!
34 Wobland
 
08.11.12
11:22
(33) покажи хоть