|
v7: Можно ли выполнить процедуру ПриЗаписи() элемента справочника из обработки? | ☑ | ||
---|---|---|---|---|
0
2scrdoc
21.09.11
✎
02:20
|
Есть справочник. У него есть текстовый реквизит большой длины, который зависит от множества комбинаций нескольких реквизитов. Проще говоря, это как бы типизированное полное наименование. Когда происходит запись элемента происходит всяческие анализы и проверки и вообщем-то этот реквизит заполняется.
Есть обработка, которая создает элементы этого справочника. Но чтобы этот текстовый реквизит заполнился необходимо зайти в форму элемента и нажать кнопку ОК. Для объода этой ситуации обработка просто открывает форму вновь созданного элемента справочника, а там уже нажимается кнопка ОК. Вопрос такой, можно ли каким-нибудь образом выполнить процедура ПриЗаписи() записанного элемента справочника из обработки? |
|||
1
sapphire
21.09.11
✎
02:25
|
Можно, но не нужно.
|
|||
2
2scrdoc
21.09.11
✎
02:29
|
(1) А как можно.
|
|||
3
NS
21.09.11
✎
02:30
|
ОткрытьФорму() с параметром. По параметру -
ПриЗаписи(); Записать(); СтатусВозврата(0); Возврат; |
|||
4
NS
21.09.11
✎
02:31
|
Но если у кого-то элемент справочника открыт - то не взлетит.
Проще переписать проверку в обработке, а вообще еще лучше вынести в глобальный модуль. |
|||
5
sapphire
21.09.11
✎
02:38
|
(2)(3)(4) Так делать не стОит по-логике, ИМХО.
Необходимо код, формирующий этот реквизит тупо перенести в глобальный модуль и всё. Хошь функцией, хощь процедурой, абы с экспортом было. А ли я не прав? |
|||
6
NS
21.09.11
✎
02:41
|
(5) А что написано в (4)???
|
|||
7
sapphire
21.09.11
✎
02:44
|
(6) Извини, я уже почти на автомате пишу - фоном сакля данные неудобоваримые лопатит и будет еще лопатить дня два :)))
|
|||
8
2scrdoc
21.09.11
✎
03:27
|
(3) Не получается
Записать(); {Справочник.Модели.Форма.Модуль(910)}: Данная команда не может выполняться в формуле элемента диалога! |
|||
9
sapphire
21.09.11
✎
03:31
|
(8) недума
|
|||
10
NS
21.09.11
✎
11:04
|
(8) Ты же говорил что из обработки это запускаешь...
Или обработку ты запускаешь из самого элемента?! |
|||
11
2scrdoc
21.09.11
✎
18:48
|
(10) Обработка создала новый элемент справочника, заполнила его реквизиты, записала.
После этого делаю ОткрытьФорму(Спр,"СразуЗаписать") Вот после этого и вылазит эта ошибка. |
|||
12
Semargl
21.09.11
✎
18:52
|
Нужно в глобальнике обрабатывать ссылку - найти с ее помощью и спозиционироваться на конкретном элементе записи, а потом уже его проверять/записывать
|
|||
13
NS
21.09.11
✎
19:26
|
(11) И что написано в ПриОткрытии()?
Такой ошибки быть не должно, такая ошибка если из функции на форме вызывается метод. |
|||
14
Cthulhu
21.09.11
✎
19:36
|
ОткрытьФорму(тЭлемент,тКонтекст);
тКонтекст.Форма.ОбработкаОжидания("ПриЗаписи",1); |
|||
15
2scrdoc
22.09.11
✎
01:42
|
Вообщем ничего не получалось.
Потом загрузил Formex и сделал вызов Записать() в процедуре ПослеОткрытия(). Все сразу заработало. Получается, что ПриОткрытии() еще нет формы и Записать() нельзя скорее всего потому, что нет еще реквизитов на форме? Я правильно понимаю что без Formex и использования процедуры в глобальном модуле этого сделать было невозможно? |
|||
16
NS
22.09.11
✎
02:56
|
(15) открывать форму нужно записанного элемента справочника.
|
|||
17
NS
22.09.11
✎
02:57
|
спр.новый();
спр.Записать(); конт="ПриЗаписи"; Открытьформумодально(спр.текущийэлемент,конт); |
|||
18
NS
22.09.11
✎
02:58
|
(15) ну и открывать, если создаешь в цикле - естественно модально.
|
|||
19
NS
22.09.11
✎
03:03
|
спр.новый();
спр.установитьновыйкод(""); спр.наименование="блабла"; спр.Записать(); конт="ПриЗаписи"; Открытьформумодально(спр.Текущийэлемент(),конт); // //В справочнике, Процедура приоткрытии() Если пустоеЗначение(Форма.параметр)=0 тогда Если типЗначениястр(форма.параметр)="Строка" тогда Если форма.параметр="ПриЗаписи" тогда ПриЗаписи(); Записать(); статусвозврата(0); возврат; КонецЕсли; КонецЕсли; КонецЕсли; .... |
|||
20
2scrdoc
23.09.11
✎
01:08
|
(19)
Не идет в модуле ПриОткрытии() Записать(); Данная команда не может выполняться в формуле элемента диалога! |
|||
21
NS
23.09.11
✎
10:39
|
(20) Странно...
|
|||
22
Ёпрст
23.09.11
✎
10:41
|
(15) всё можно и формекс для этого не нужен.
|
|||
23
2scrdoc
23.09.11
✎
18:36
|
(15) как можно без Formex? У меня без него никак не получается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |