|
Ошибка при ЭтоНовый() ? | ☑ | ||
---|---|---|---|---|
0
ЭЦ
15.08.12
✎
12:22
|
ГОСПОДА !
Имеется объект Задача в модуле объекта имеется текст Если ЭтотОбъект.ЭтоНовый() Тогда ЭтотОбъект.Ответственный = ПараметрыСеанса.ТекущийПользователь; КонецЕсли; При загрузке объекта вылетает ошибка {Задача.ЗадачаИсполнителя.МодульОбъекта(736)}: Ошибка при вызове метода контекста (ЭтоНовый) по причине: Задача не выбрана ----------------------------------------- Причем в отладчике все реквизиты объекта на момент вызова ЭтоНовый() заполнены. Прошу подсказать в чем причина ошибки и как понять новый ли это объект или созданный ранее. |
|||
1
Лоботряс
15.08.12
✎
12:31
|
А точно модуль объекта и точно на эту строчку ругается?
|
|||
2
Лоботряс
15.08.12
✎
12:31
|
Побожись...
|
|||
3
ЭЦ
15.08.12
✎
12:33
|
(1-2) Мамой клянусь
|
|||
4
Птах
15.08.12
✎
12:33
|
(0) если на форме - Параметры.Ключ.Пустая()
|
|||
5
aleks-id
15.08.12
✎
12:34
|
Если ЭтоНовый() Тогда
|
|||
6
PuhUfa
15.08.12
✎
12:38
|
(0) согласно СП и учитывая (3) должно работать -)
|
|||
7
ЭЦ
15.08.12
✎
12:38
|
(5) Тоже самое
Ошибка при вызове метода контекста (ЭтоНовый) - Задача не выбрана |
|||
8
aleks-id
15.08.12
✎
12:40
|
Если Объект.ЭтоНовый() Тогда ?
а вообще весь код надо УФ или как? |
|||
9
organizm
15.08.12
✎
12:41
|
НЕ ЗначениеЗаполнено(Объект.ссылка) не подойдет?
|
|||
10
ЭЦ
15.08.12
✎
12:41
|
(8) А это собственно и есть весь код.
Выше только функции и процедуры |
|||
11
UnAmerican
15.08.12
✎
12:42
|
Че та там сверху явно косячное.
|
|||
12
Fragster
гуру
15.08.12
✎
12:45
|
пля. компиляция не проходит? ну кто ж ЭтоНовый вне контекста выполняет?
|
|||
13
Fragster
гуру
15.08.12
✎
12:46
|
вообще пихать вне процедур какие-либо вещи не следует, ибо можно получить лулзы
|
|||
14
Fragster
гуру
15.08.12
✎
12:46
|
делай перед открытием или там присозданиинасервере. а лучше - перед записью.
|
|||
15
aleks-id
15.08.12
✎
12:47
|
фак.. а ведь (12) прав
|
|||
16
ЭЦ
15.08.12
✎
12:52
|
(12) Не надо грязи - компиляция проходит
Почему Вне контекста - он в контексте модуля объекта задачи |
|||
17
Mafoni
15.08.12
✎
12:53
|
В какой функции или процедуре данный кусок находится ? Если вне процедур и функций - то фигня будет !!!
|
|||
18
Mafoni
15.08.12
✎
12:54
|
(0) Засунь сей кусок в процедуру ПередЗаписью и будет тебе счастье !
|
|||
19
ЭЦ
15.08.12
✎
12:56
|
(18) Мне надо до записи понять новый он или нет, а записи может и вообще не будет
|
|||
20
Лоботряс
15.08.12
✎
12:58
|
(19) Это не отменяет (18)
|
|||
21
ЭЦ
15.08.12
✎
13:00
|
(20) Событие Запись - может и не быть -соответесвенно не будет и ПередЗаписью()
а ответсвенного определить надо в любом случае |
|||
22
motkot
15.08.12
✎
13:02
|
а чем "ОбработкаЗаполнения" не подходит?
|
|||
23
ЭЦ
15.08.12
✎
13:04
|
(22) при копировании данный обработчик не вызывается
|
|||
24
Птах
15.08.12
✎
13:05
|
(23) Написали ж в (14) - присозданиинасервере
|
|||
25
SUA
15.08.12
✎
13:07
|
а накуа в модуле объекта заполнять если "не пойми для чего"?
а так да, обработка заполнения, при копировании - 2 обработчика, если именно в модуле надо |
|||
26
Лоботряс
15.08.12
✎
13:08
|
Зачем устанавливать объекту Ответственного, если объект и не будет записываться? Если где то в процедурах тебе нужно использовать текущего пользователя то создай глобальную переменную как все нормальные люди делают
|
|||
27
ЭЦ
15.08.12
✎
13:12
|
(25-26) Задача создается бизнес процессом - программно.
Требуется определить (записать в реквизит) какой пользователь ее создал. Открываться форма задачи будет уже другим пользователем - он должен увидеть кто ее создал. |
|||
28
Птах
15.08.12
✎
13:13
|
(27) Передавай в процедуру создания задачи пользователя параметром.
|
|||
29
ЭЦ
15.08.12
✎
13:15
|
(28) Это понятно но геморойно
- странно что при инициализированных параметрах в модуле объекта ЭтоНовый() не отрабатывает |
|||
30
Anastasiy
15.08.12
✎
13:15
|
Если Объект.ЭтоНовый() Тогда
Объект.Наименование = "Новая задача"; КонецЕсли; |
|||
31
Азазелло
15.08.12
✎
13:16
|
(27) При программном создании заполняй отвественного, не? Или в обработке заполнения + пропиши явно вызов метода Заполнить()...
|
|||
32
Лоботряс
15.08.12
✎
13:17
|
<<Открываться форма задачи будет уже другим пользователем>> - как он может это сделать если задача не была записана?
|
|||
33
Anastasiy
15.08.12
✎
13:19
|
И
Если Исполнитель.Пустая() Тогда Исполнитель = глЗначениеПеременной("глТекущийПользователь"); КонецЕсли; |
|||
34
ЭЦ
15.08.12
✎
13:20
|
(32) Никак - но есть желание обработать этот реквизит еще и перед записью -наверное от этого придется отказаться.
|
|||
35
Птах
15.08.12
✎
13:20
|
(33) Спасибо вам Настенька, за вашу доброту!
|
|||
36
ЭЦ
15.08.12
✎
13:21
|
(33) Таже ошибка - задача не выбрана
|
|||
37
666 Devil
15.08.12
✎
13:22
|
(23) а чем ПриКопировании() не устривает?
|
|||
38
Anastasiy
15.08.12
✎
13:22
|
Да сказали же))) в процедуру упакуй: скажем так:
Процедура ПриОткрытии() УстановитьТипОбъектаЗадачи(Ложь); УточнитьОбъектЗадачиПоВидуЗадачи(); Если ЭтоНовый() Тогда Исполнитель = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"ОсновнойОтветственный"); КонецЕсли; КонецПроцедуры |
|||
39
Птах
15.08.12
✎
13:23
|
(36) Не страдай херней, чем тебе не нравится передавать параметр?
|
|||
40
Anastasiy
15.08.12
✎
13:23
|
(35) Жуй с маслом))
|
|||
41
Лоботряс
15.08.12
✎
13:23
|
(38) в модуле объекта нет события при открытии
|
|||
42
Anastasiy
15.08.12
✎
13:24
|
Значит в форме есть.
|
|||
43
Азазелло
15.08.12
✎
13:25
|
(38) Это если интерактив предусмотрен
|
|||
44
Anastasiy
15.08.12
✎
13:25
|
Если есть задача, то есть и ФормаЗадачи
|
|||
45
Лоботряс
15.08.12
✎
13:25
|
Все же интересно чем закончится...
|
|||
46
Азазелло
15.08.12
✎
13:26
|
(44) да ну!!!
|
|||
47
ЭЦ
15.08.12
✎
13:26
|
(39) В бизнес процесс ПриСозданииЗадач - это метод точки маршрута. Точек дофигище - в каждую надо будет добавлять обработчик и передачу параметра - геморойно
|
|||
48
Птах
15.08.12
✎
13:29
|
(47) а (37)?
|
|||
49
Лоботряс
15.08.12
✎
13:29
|
(47) ПараметрыСеанса.ТекущийПользователь доступен из любой процедуры, даже передавать ничего не надо
|
|||
50
ЭЦ
15.08.12
✎
13:29
|
А копирование тем более может и не вызываться
|
|||
51
Птах
15.08.12
✎
13:30
|
(50) Ну и вставь в обработку заполнения и при копировании, в чем проблема?
|
|||
52
Лоботряс
15.08.12
✎
13:31
|
(49)+ это глобальнй контекст
|
|||
53
666 Devil
15.08.12
✎
13:32
|
(50) ну тогда озвучь полностью свою задачу
|
|||
54
Азазелло
15.08.12
✎
13:32
|
Имхо, перез записью проверять и устанавливать. Этот метод работает на все случаи жизни. И при интерактивной работе, и при программном создании.
Заполнять Ответственного если не планируется запись - это уже какая-то хрень. |
|||
55
Птах
15.08.12
✎
13:33
|
(54) +100, нафиг его заполнять, если не записывать?
|
|||
56
Fragster
гуру
15.08.12
✎
13:36
|
(21) а зачем тогда жить?
|
|||
57
Fragster
гуру
15.08.12
✎
13:36
|
зачем ответственный несуществующего объекта?
|
|||
58
Fragster
гуру
15.08.12
✎
13:37
|
ну, кстати, в проверку заполнения еще можно... да мало ли событий...
|
|||
59
ЭЦ
15.08.12
✎
13:37
|
(54) имеются функции использующие этот параметр - хотелось бы их использовать
------------------------- Ну я так понял что ЭтоНовый() в модуле объекта вне процедур и функций и не должен работать? Все согласны? |
|||
60
Fragster
гуру
15.08.12
✎
13:37
|
(59) он не будет работать не по той причине, что "не должен"
|
|||
61
Ursus maritimus
15.08.12
✎
13:38
|
(0) Ветку не читал. Нахрена в данном контексте ЭтотОбъект почему не просто ЭтоНовый()?
Кто знает чему там у тебя ЭтотОбъект равен... |
|||
62
Fragster
гуру
15.08.12
✎
13:38
|
(61) автор типа заполнение делает при программном создании объекта...
|
|||
63
ЭЦ
15.08.12
✎
13:38
|
(61) и то и другое - выдает одну и туже ошибку
|
|||
64
Fragster
гуру
15.08.12
✎
13:39
|
спагетти-вестерн (заеркнуто) -код рулит...
|
|||
65
Лоботряс
15.08.12
✎
13:39
|
(61) прочитай (12)
|
|||
66
Азазелло
15.08.12
✎
13:39
|
(59) "имеются функции использующие этот параметр - хотелось бы их использовать "
А откуда вызываются функции, использующие Этот Параметр у незаписанного объекта? Жуткая жуть какая-то |
|||
67
ЭЦ
15.08.12
✎
13:47
|
(60) А по какой?
|
|||
68
666 Devil
15.08.12
✎
14:03
|
в ПриКопировании() вызови Обработку заполнения() а в ней проверяй и проствляй что хочешь
|
|||
69
Anastasiy
15.08.12
✎
14:05
|
В модуле объекта есть подобный код, но опять-таки упакованый вот в такую процедуру:
Процедура ПередВыполнением(Отказ) |
|||
70
Anastasiy
15.08.12
✎
14:05
|
Работает, пользуемся)
|
|||
71
Anastasiy
15.08.12
✎
14:09
|
Из синтаксПомощника сюда же:
ЗадачаОбъект.<Имя задачи> (TaskObject.<Имя задачи>) ПередВыполнением (BeforeExecute) Синтаксис: ПередВыполнением(<Отказ>) Параметры: <Отказ> Тип: Булево. Признак отказа от выполнения действия. Значение по умолчанию: Ложь Описание: Возникает при выполнении метода ВыполнитьЗадачу и до аналогичного события у соответствующей точки маршрута. Выполняется в транзакции записи при выполнении задачи. |
|||
72
Лоботряс
15.08.12
✎
14:10
|
(71) ты понимаешь разницу между записью объекта и выполнением задачи?
|
|||
73
Лоботряс
15.08.12
✎
14:11
|
(72) Если он ее записывать не хочет, то о каком выполнении может идти речь?
|
|||
74
Птах
15.08.12
✎
14:13
|
Забейте, это тролль ))
|
|||
75
Anastasiy
15.08.12
✎
14:17
|
Читай (0), я так понимаю, он хочет, чтобы не вылетало с ошибкой, кстати, у тролей - не вылетает ошибок)))
|
|||
76
Anastasiy
15.08.12
✎
14:18
|
И бизнес-процесс не один работает)
|
|||
77
Anastasiy
15.08.12
✎
14:20
|
Задача-то в контексте бизнес-процесса?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |