![]() |
![]() |
|
Вызов процедуры при записи элемента в списке справочника | ☑ | ||
---|---|---|---|---|
0
Tanya
28.10.04
✎
14:11
|
Здравствуйте! Помогите кто знает, в форме списка справочника, при записи элемента надо в другую процедуру передать ссылку на записанный элемент, при записи сущ. элемента все хорошо работает, при создании нового никак не хочет передавать ссылку, что у меня не так и как сделать так, чтобы заработало :)
Процедура ПриЗаписи() Если ПустоеЗначение(ТекущийЭлемент())=1 Тогда Записать(); КонецЕсли; ТекЭл = ТекущийЭлемент(); МояПроцедура(ТекЭл); КонецПроцедуры // ПриЗаписи() |
|||
1
NS
28.10.04
✎
14:13
|
Процедура ПриЗаписи()
Если Выбран()=0 Тогда Записать(); КонецЕсли; ТекЭл = ТекущийЭлемент(); МояПроцедура(ТекЭл); КонецПроцедуры // ПриЗаписи() |
|||
2
bsg
28.10.04
✎
14:13
|
Элемент создается в форме или в списке?
|
|||
3
Tanya
28.10.04
✎
14:21
|
(NS) Я так тоже пробовала, все равно как будто не записывает. В "Если" в любом случае заходить, но потом...:-(
|
|||
4
Tanya
28.10.04
✎
14:22
|
Элемент создается в списке, справочник простейщий, одно наименование и код
|
|||
5
bsg
28.10.04
✎
14:28
|
Собственно, причина понятна - пока ПриЗаписи() не закончилась объекта еще нет.
|
|||
6
Rovan
гуру
28.10.04
✎
14:29
|
(4) И чего ? (1) Не работает разве ?
|
|||
7
NS
28.10.04
✎
14:29
|
(bsg) А что-же тогда делает метод записать()?
|
|||
8
Tanya
28.10.04
✎
14:31
|
(5) Однако, если аналогично все сделать в форме справочника, то все отлично работает, записывает и возвращает готовую ссылку
|
|||
9
NS
28.10.04
✎
14:32
|
Только в форме элемента работает при записи...
Можно сделать по аналогии с этим http://www.sinor.ru/~my1c/knowhow/nogrspr.html |
|||
10
bsg
28.10.04
✎
14:32
|
+(5) Как вариант: редактировать в форме, в кнопку записи после Записать добавить вызов процедуры.
|
|||
11
NS
28.10.04
✎
14:33
|
(+9) В смысле Записать()
|
|||
12
Tanya
28.10.04
✎
14:34
|
(10) Увы, ползователям удобно редактировать именно в списке
|
|||
13
SKrin
28.10.04
✎
14:34
|
Перем ТекЭл,НеЗакр;
Процедура ПриЗаписи() ТекЭл=ТекущийЭлемент(); НеЗакр=1; Форма.Закрыть() КонецПроцедуры // ПриЗаписи() Процедура ПриЗакрыти() Если НеЗакр=1 Тогда СтатусВозврата(0); МояПоц(ТекЭл); НеЗакр=0; Возврат() КонецЕсли; КонецПроцедуры; |
|||
14
bsg
28.10.04
✎
14:38
|
(12) Тогда, надо порыться в других предопределенных процедурах формы списка.
|
|||
15
bsg
28.10.04
✎
14:43
|
(7) Я думаю, что в ваших вариантах оба условия не выполняются и до Записать() не доходит. А, если условия убрать - зациклится.
|
|||
16
bsg
28.10.04
✎
14:45
|
+(14) Или что-нибудь с извратом чудить.
|
|||
17
NS
28.10.04
✎
14:47
|
(15) см. 9,11.
Записать() не работает в форме списка. |
|||
18
NS
28.10.04
✎
14:48
|
(+15) Что зациклится??? Метод записать() не вызывает процедуру ПриЗаписи!!!
|
|||
19
GrayT
28.10.04
✎
14:48
|
13 - не работает
Работает Перем флПередать; //_____________________________________________________________________________ Функция Проба() Если флПередать=1 Тогда Если Выбран()=1 Тогда Предупреждение(ТекущийЭлемент()); КонецЕсли; флПередать=0; КонецЕсли; КонецФункции //Проба //_____________________________________________________________________________ Процедура ПриЗаписи() флПередать=1; КонецПроцедуры //ПриЗаписи флПередать=0; |
|||
20
Tanya
28.10.04
✎
14:50
|
(13) Работает однако... :-) Спасибо.
(14) Если исп. другие пред. проц, то из них может быть выход и без записи... |
|||
21
Оборотень
28.10.04
✎
14:51
|
Люди, а почему
... ТекЭл = ТекущийЭлемент(); МояПроцедура(ТекЭл); ... может лучше .. МояПроцедура(ТекущийЭлемент()); .. мне кажется в присваивании что-то не так происходит. 1С справочник, т.е. елемент нужный нам не позиционирует... |
|||
22
GrayT
28.10.04
✎
14:51
|
+19 На форме невидимый текст с Проба()
|
|||
23
NS
28.10.04
✎
14:54
|
(21.1) В третий раз - не работает метод записать() в форме списка.
|
|||
24
Оборотень
28.10.04
✎
14:56
|
+ (21)
или объект инициализировать нужно ТекЭл=СоздатьОбъект("Справочник.хххх"); ТекЭл.НайтиЭлемент(ТекущийЭлемент()); ... |
|||
25
NS
28.10.04
✎
14:57
|
(24) Классный ганджубас...
Тебе еще раз повторить, что записать() не работает? |
|||
26
bsg
28.10.04
✎
14:57
|
При записи отправляться немодально в обработку, там дождаться окончания записи и выполнить нужную процедуру.
|
|||
27
NS
28.10.04
✎
14:58
|
(26) Где сегодня траву такую раздают???
Ты хоть ветку прочитать в состоянии? |
|||
28
Tanya
28.10.04
✎
15:00
|
(GrayT) Спасибо. Но у меня таких справочников штук 15, и тут в друх местах копировать придется и в модуле и в форме, что-нибудь да пропущу... Так что мне чем меньше, тем лучше
|
|||
29
Guk
28.10.04
✎
15:01
|
Классно Танья всех развела...
|
|||
30
Оборотень
28.10.04
✎
15:04
|
(25) да понял я что не работает!!!
Ну было у меня временное умопомешательство ... ну извиняюсь :) :) :) |
|||
31
GrayT
28.10.04
✎
15:05
|
(28)Я где то накосячил а где не вижу - у меня 13 не работает :(((
|
|||
32
bsg
28.10.04
✎
15:07
|
(27) Всегда с запасом беру.
|
|||
33
Оборотень
28.10.04
✎
15:15
|
(31)
Похоже что пока ПриЗаписи() не отработает до элемента не дотянешься :( |
|||
34
Tanya
28.10.04
✎
15:19
|
13 вот в таком виде у меня работает:
Перем ТекЭл, НеЗакр; Процедура ПриЗаписи() Если Выбран() = 0 Тогда НеЗакр = 1; Форма.Закрыть(); Иначе НеЗакр = 0; МояПроцедура(ТекущийЭлемент()); КонецЕсли; КонецПроцедуры // ПриЗаписи() Процедура ПриЗакрытии() Если НеЗакр = 1 Тогда МояПроцедура(ТекущийЭлемент()); НеЗакр = 0; СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры // ПриЗакрытии() |
|||
35
GrayT
28.10.04
✎
15:20
|
Но 20 сказано что заработало - ни фига не понимаю
|
|||
36
GrayT
28.10.04
✎
15:28
|
34 - так работает. Потом еще посмотрю, что за прикол с 13
|
|||
37
bsg
28.10.04
✎
15:30
|
+ (27) Сама, то, читала?
В справочнике: Процедура ПриЗаписи() ОткрытьФорму("Обработка.ВыгрузкаПриЗаписи",Контекст); КонецПроцедуры // ПриЗаписи() В обработке ВыгрузкаПриЗаписи: Перем Что; Процедура ПриОткрытии() Что=Форма.Параметр; Форма.Закрыть(); КонецПроцедуры // ПриОткрытии() Процедура ПриЗакрытии() // К этому моменту ПриЗаписи() в справочнике уже закончится // и Что.Выбран() станет 1 ТанинаВыгрузка(Что); КонецПроцедуры // ПриЗакрытии() |
|||
38
SKrin
28.10.04
✎
15:47
|
(36) а ты после процедур добавил НеЗакр=0; ?
|
|||
39
GrayT
28.10.04
✎
15:54
|
38 - Добавил. Проблема в другом была. Before не есть After. Код в 34 существенно отличается
|
|||
40
Tanya
28.10.04
✎
16:09
|
(39)Главное же не код, главное чтобы идея была! :-) А идея верная, так же как и 19 и 37, в принципе то же самое, только разные реализации.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |