Имя: Пароль:
1C
 
Как правильно сделать условие?
0 AlexBor
 
naïve
25.01.15
10:09
Задача такая в ТЧ документа устанавивается статус этого документа (На регистрации, в работе и т.д.). Мне необходимо получить при закрытии документа последний статус т.е последнюю строку делаю так: СтатусРеквизит = Статус[Статус.Количество()-1].Статус;  Все хорошо но возникает проблема у документов в которых ТЧ не заполнено при закрытии появляется ошибка ... Индексы выходят за пределы и т.д. Дума л сделать такое условие но что то до конца не догоняю как сделать

Если Статус.Количество()>=0 Тогда
     СтатусРеквизит = Статус[Статус.Количество()-1].Статус;
     Иначе
????????????????  
КонецЕсли;
1 Lama12
 
25.01.15
10:14
Реши как должен вести себя документ без статусов и все.
Кстати. Номер строки в тч пользователь может поменять. :)
2 Мимохожий Однако
 
25.01.15
10:15
Если Статус.Количество()=0 Тогда
СтатусРевизит = Перечисления.Статусы.НеЗаполнен;
3 AlexBor
 
naïve
25.01.15
10:18
(1) Не может
4 AlexBor
 
naïve
25.01.15
10:19
(1) Документ без статусов ведет себе абсолютно так же как и со статусами.
5 Фокусник
 
25.01.15
10:29
(0) Чтобы написать что-то вместо "????????????????"  нужно определить, какой СтатусРеквизит следует установить в случае:
"но возникает проблема у документов в которых ТЧ не заполнено при закрытии появляется ошибка ...".
Из задачи в (0) это не понятно ;)
6 ShoGUN
 
25.01.15
10:31
(4) А что нужно видеть в статусе, если табличная часть не заполнена? (1) именно об этом.
7 AlexBor
 
naïve
25.01.15
10:34
(5) и (6)  Я вас понял  если ТЧ пустая  то СтатусРеквизита=СтаусРеквизита.ПустаяСсылка() так можно?
8 Мимохожий Однако
 
25.01.15
10:36
(7)Какой тип значения должен быть в реквизите СтатусРеквизита? Если он может оставаться пустым, то не смысла пустую ссылку присваивать.
9 Фокусник
 
25.01.15
10:36
(7) Скорее всего реквизит СтатусРеквизита не составной, значит можно просто:
СтатусРеквизита = Неопределено;
10 ShoGUN
 
25.01.15
10:38
(8) Имеет, вообще-то. Например, строки в ТЧ были и статус в шапке какой-то был, и их удалили, а статус в шапке останется, если ничего не присваивать.
11 ShoGUN
 
25.01.15
10:39
(9) Правильней Перечисление.Статусы.ПустаяСсылка(), но Неопределено тоже проканает.
12 AlexBor
 
naïve
25.01.15
10:41
Сделал так:

Если Статус.Количество()>=0 Тогда
     СтатусРеквизит = Статус[Статус.Количество()-1].Статус;
     Иначе
     СтатусРеквизит = Неопределено;
     КонецЕсли;

Все равно при закрытии документа Индекс за пределами и т.д. почему?
13 Фокусник
 
25.01.15
10:42
(12) "Если Статус.Количество()>=0 Тогда"

в условии ведь есть "="... оставь только ">".

PS исповедуешь "программирование методом тыка"? ;)
14 ShoGUN
 
25.01.15
10:42
(12) Условие неправильное. Не >= , а >
15 AlexBor
 
naïve
25.01.15
10:44
(13) Получилось спасибо
16 AlexBor
 
naïve
25.01.15
10:44
Всем спасибо вы мне очень помогли
17 EvgeniuXP
 
25.01.15
18:57
или занеси в реквизит самого документа статус - где будет храниться последний из табличной части.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс