|
Почему значение ссылки на перечисление пустое? | ☑ | ||
---|---|---|---|---|
0
yujiriwc
26.01.15
✎
10:47
|
Проект учебный, контрольная работа в университете.
У меня есть справочник "Проекты", есть перечисление "СтатусыПроектов", у последнего есть два значения "Закрыт" и "Прогресс" Есть документ "ОтчетОРаботе", у него есть табличная часть "Проекты", в свою очередь содержащие ссылку на "Справочник.Проекты" и числовое поле "ЗатраченноеВремя" В модуле документа есть "ОбработчикПроведения", из него я обращаюсь в цикле к каждой строке табличной части и хочу проверить статус проекта. В отладчике смотрю статус - он показывает пустоту. Делаю "Строка(статус)" - выдает пустую строку? Что я делаю не так? |
|||
1
cw014
26.01.15
✎
10:48
|
Наверное ты не заполняешь в табличной части реквизит "Статус" значением из справочника?
|
|||
2
Господин ПЖ
26.01.15
✎
10:49
|
(0) дело было не в бобине...
|
|||
3
salvator
26.01.15
✎
10:50
|
Делаю "Строка(статус)"
А может быть лучше Строка.Статус? Раз построчно проходишь ТЧ |
|||
4
polosov
26.01.15
✎
10:50
|
(0) Так статусы проектов у тебя к чему привязаны?
|
|||
5
yujiriwc
26.01.15
✎
10:52
|
(1)
Да, статусы проектов я напрямую не заполняю. (4) В справочнике проектов есть ссылка на статус, я не могу взять ее от туда? Если нет - скиньте ссылку где прочитать, почему. |
|||
6
palladyi
26.01.15
✎
10:54
|
(5) Если есть реквизит - можешь. Для этого делаешь так:
Для Каждого строка ИЗ Проекты Цикл Статус = Строка.Проект.Статус; КонецЦикла; |
|||
7
palladyi
26.01.15
✎
10:54
|
+ (6) а вообще, скинь код. Тут телепаты все, конечно, но ленивые очень.
|
|||
8
polosov
26.01.15
✎
10:54
|
(0) Для Каждого СтрокаПроекты Из Проекты Цикл
Если Проекты.Статус = Перечисления.СтатусыПроектов.Закрыт Тогда //Блабла Иначе //Блабла КонецЕсли; КонецЦикла; |
|||
9
yujiriwc
26.01.15
✎
10:57
|
сейчас скину код.
|
|||
10
palladyi
26.01.15
✎
10:57
|
(8) а где у тебя обращение к строке? Ты же к табличной части обращаешься)
|
|||
11
polosov
26.01.15
✎
10:58
|
(10) А, да:
Если СтрокаПроекты.Статус = Перечисления.СтатусыПроектов.Закрыт Тогда |
|||
12
palladyi
26.01.15
✎
10:59
|
(11) у него нет статуса в табличной части, он из справочника берет. А ссылку на справочник из табличной части) То есть: Если СтрокаПроекты.Проект.Статус = Перечисления.СтатусыПроектов.Закрыт Тогда
|
|||
13
yujiriwc
26.01.15
✎
11:01
|
[code]
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Для Каждого Проект Из Проекты Цикл Если Проект.Статус = Перечисления.СтатусыПроектов.Закрыт Тогда ЕстьЗакрытыеПроекты = Истина; Сообщить("В строке № " + Строка(Проект.НомерСтроки) + " проект уже закрыт"); КонецЕсли; КонецЦикла; КонецПроцедуры [/code] |
|||
14
polosov
26.01.15
✎
11:01
|
(12) Хм, статусы хранить в элементе справочника для которого сделан статус...
Это не правильно. |
|||
15
yujiriwc
26.01.15
✎
11:02
|
А как правильно?
|
|||
16
palladyi
26.01.15
✎
11:03
|
(13) Так у тебя в табличной части поле статус есть или нет?
|
|||
17
polosov
26.01.15
✎
11:03
|
(14) Хотя... Почему нет.
|
|||
18
polosov
26.01.15
✎
11:05
|
(15) Если ты оперируешь статусом с помощью документов, то не очень хорошо из документа изменять справочник (хотя и не критично). Можно завести РС для хранения статусов, периодический. Так ты сможешь отслеживать историю по одному объекту.
|
|||
19
yujiriwc
26.01.15
✎
11:07
|
Я нехочу менять статус, я хочу узнать, проект закрыт или нет перед тем как провести документ.
|
|||
20
yujiriwc
26.01.15
✎
11:08
|
(16) нет, статуса в табл части нет
|
|||
21
polosov
26.01.15
✎
11:08
|
(19) А где есть статус? Где он выставляется?
|
|||
22
yujiriwc
26.01.15
✎
11:08
|
я не понимаю - зачем он там нужен. И просил объяснить - для чего он там (5)
|
|||
23
yujiriwc
26.01.15
✎
11:09
|
(21)Статус есть в справочнике у Проекта. И он является ссылкой на Перечисление. Это не обязательно, что бы так было, я не знаю как это должно быть правильно.
Перед проведением я хочу узнать какой статус у проекта. |
|||
24
yujiriwc
26.01.15
✎
11:14
|
||||
25
yujiriwc
26.01.15
✎
11:17
|
Народ!!! Всем огромное спасибо!!!
Это я пропарился нужно было обращаться через: Проект.Проект.Статус Как я этого раньше не заметил - ума не приложу... |
|||
26
yujiriwc
26.01.15
✎
11:18
|
Спасибо всем огромное. Как закрыть тему?
|
|||
27
polosov
26.01.15
✎
11:19
|
(25) Это запрос в цикле у тебя получается. Некошерно.
|
|||
28
Крошка Ру
26.01.15
✎
11:19
|
(24)Ты сам себя запутал с этими проектами
ТЧ документа по-другому назови |
|||
29
yujiriwc
26.01.15
✎
11:20
|
(28) Спасибо! Ты однозначно прав.
(27) Это учебное задание, мне не критично. |
|||
30
Крошка Ру
26.01.15
✎
11:21
|
(24) А вообще, пользуйся отладчиком - сразу многое понятным станет
(27) А где там запрос в цикле? |
|||
31
yujiriwc
26.01.15
✎
11:23
|
(30)
Отладчиком пользуюсь(я 4 года комерчески работаю с web) но в 1с отладчик слабенький... Впрочем решение нашел именно с помощью него;) Походу обращаясь через ссылку Проект.Проект.Статус - последний вызов(Статус) будет обращением к БД, тобишь запросом. |
|||
32
polosov
26.01.15
✎
11:24
|
(31) Совершенно верно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |