|
v8: Как обратиться к процедурам на формы? | ☑ | ||
---|---|---|---|---|
0
Nextor257
29.06.14
✎
17:37
|
Платформа 8.3.4.482
конфигурация УТ 11.1.2.25 Типовая Документы.ЗаказКлиента. На ФормеДокумента есть процедура "РасчитатьСтатусДокумента(команда)". Нужно вызвать эту процедуру из всех документов, чтобы пересчитать все статусы в автоматическом режиме. Создаю общий модуль, в нем пишу: Док=Документы.ЗаказКлиента.Выбрать(); Пока Док.Следующий() Цикл Док.ФормаДокумента.РассчитатьСтатусДокумента() КонецЦикла; При запуске выдает ошибку: {ОбщийМодуль.АтлантДоработки.Модуль(88)}: Поле объекта не обнаружено (ФормаДокумента) Как правильно обращаться к процедурам на форме документа? |
|||
1
Wobland
29.06.14
✎
17:41
|
получить бы форму..
|
|||
2
Wobland
29.06.14
✎
17:42
|
но лучше, конечно, повторить алгоритм без привязки к форме
|
|||
3
Отладчик
29.06.14
✎
17:44
|
(0) А регистры уже отменили? Вам сюда http://govnokod.ru/
|
|||
4
Отладчик
29.06.14
✎
17:45
|
Как можно так опечататься в сабже, (0)?! На формЫ. Вы чукча?
|
|||
5
Отладчик
29.06.14
✎
17:47
|
ПРо бензопилу было. - Её что, еще и запрвалять нужны??
(там в документации было написано что ресурс бензопилы 150 деревьев. А чукча 200 спилил.) |
|||
6
Nextor257
29.06.14
✎
17:51
|
Отладчик уйди из темы.
Wobland, пишу: Форма=ПолучитьФорму("Документ.ЗаказКлиента.Форма.ФормаДокумента"); Док=Документы.ЗаказКлиента.Выбрать(); Пока Док.Следующий() Цикл КонецЦикла; Что в цикле теперь писать? |
|||
7
Wobland
29.06.14
✎
17:58
|
я за повторить алгоритм в своём модуле без привязки к форме
|
|||
8
Бешеная Нога
29.06.14
✎
18:01
|
Обычно процедуры в формах рассчитывают только реквизиты формы. Процедуры которые рассчитывают значения документа обычно хранятся в модуле документа. Обращаясь к процедурам формы из вне формы - автор допускает логическую ошибку.
|
|||
9
Wobland
29.06.14
✎
18:02
|
(8) во. только их лучше в модуле менеджера держать
|
|||
10
Nextor257
29.06.14
✎
18:12
|
тогда такой вопрос, как обратиться к процедуре в модуле документа?
|
|||
11
Wobland
29.06.14
✎
18:13
|
(10) через точку
|
|||
12
Бешеная Нога
29.06.14
✎
18:15
|
Док=Документы.ЗаказКлиента.Выбрать();
Пока Док.Следующий() Цикл ДокОбъект = док.ПолучитьОбъект(); ДокОбьект.ТвояПроцедураМодуля(); КонецЦикла; |
|||
13
Nextor257
29.06.14
✎
18:20
|
Wobland, Бешеная Нога спасибо, щас попробую.
|
|||
14
Wobland
29.06.14
✎
18:25
|
ждём сообщения "метод объекта не обнаружен" или как его там
|
|||
15
Отладчик
29.06.14
✎
18:43
|
(6) А почему сразу - уйди из темы? Понаехали тут неучи - русский языг даже не знают. Зато в программерство все лезут.
|
|||
16
Nextor257
29.06.14
✎
18:55
|
Потому что говоришь фигню.
|
|||
17
Отладчик
29.06.14
✎
18:56
|
(16) Как обратиться к процедурам на формАХ? - ?
|
|||
18
Отладчик
29.06.14
✎
18:57
|
На формЕ.
|
|||
19
Отладчик
29.06.14
✎
18:57
|
На формЫ не обращаются, туда ложат что нибудь.
|
|||
20
Отладчик
29.06.14
✎
18:58
|
В контексте сабжа ессно
|
|||
21
Nextor257
29.06.14
✎
19:03
|
слушай, ты обращаешь внимание на такую фигню, что я даже обсуждать это не хочу. Меня бесят люди, которые стебуться над тему, кто слабее их. Я таких ненавижу и плачу им тем же всегда. Я слабее тебя в 1С. Я только с марта начал его изучать. Я стараюсь пипец как, работаю без выходных, пишу этот гребанный код и днем и ночью, читаю книги, советуюсь в офисе, все выходные просидел за компом, никуда не ходил, а завтра начало рабочей недели, ну подумаешь что описался, устал я. И меня вот бесят такие, как ты. Сидишь там, стебешься, чувак описался, ха ха ха!!! у тебя видать бабы нету, заняться тебе ничем на выходных, иди подрочи! увидел бы тебя щас, лицо об пол разбил бы! Засунь свои замечания себе в одно место!
|
|||
22
Отладчик
29.06.14
✎
19:07
|
(21) Всё не осилил, лень, мнение о тебе у меня уже сложилось. Усугулбять не охота - добрый я.
А так, меня бесят люди, которые допускают идиотские ошиьки ни к селу, ни к городу. Да еще и ЧСВ машут своим. ЗЫ Увянь. |
|||
23
Nextor257
29.06.14
✎
19:12
|
Ну вот иди тогда из темы, иди постебись над кем нить другим))) Я уже посмотрел какой ты добрый, видать поэтому у тебя бабы нету, ты маленько не адекватный, раз на такие вещи внимание обращаешь, неудачник! ха ха ха!
|
|||
24
Отладчик
29.06.14
✎
19:14
|
(23) Пиши уже программу. Завтра проверю.
А то меня уже совесть начинает мучать что я тебя разозлил праведными своими речами. |
|||
25
kumena
29.06.14
✎
19:40
|
>> туда ложат что нибудь
тогда уж не ложат а кладут |
|||
26
nufnufcheg
29.06.14
✎
22:29
|
(21) МУЖИК!
|
|||
27
1с-кин
29.06.14
✎
23:21
|
(1) давно ли в 1С форма объекта получается путем "Документ.ФормаДокумента"???
Уже ООП внедрили? |
|||
28
1с-кин
29.06.14
✎
23:24
|
(0)>>Как правильно обращаться к процедурам на форме документа?
1С тебе правильно пишет - такого поля нет. С чего ты придумал, что обращаешься "к форме" и к "процедуре на форме" - неизвестно. Кстати, к процедурам формы обращаться в 1С также нельзя. Ниоткуда. Для этого и придумали "модуль менеджера" - чтобы хоть процедуры "объекта" были извне доступны (из того же общего модуля). Процедуры же даже модуля объекта - максимум доступны из модуля формы. |
|||
29
GROOVY
29.06.14
✎
23:29
|
Как много профисионалов собралось...
1. Процедуры модуля формы можно вызывать, если имеем саму форму. 2. Вызывать процедуры формы для изменения объекта, это, как бы, совсем неправильно. 3. Ложат, кладут, стебаться (это шедевр), и пр не главное, главное не быть идиотом и прислушиватЬся к тому, что тебе говорят. |
|||
30
GROOVY
29.06.14
✎
23:30
|
(28) Процедуры модуля объекта доступны из любого серверного контекста, был бы объект.
|
|||
31
1с-кин
29.06.14
✎
23:36
|
(30) в УФ вернулись к концепции 7.7 и контекста формы?
|
|||
32
1с-кин
29.06.14
✎
23:40
|
(29)>>Процедуры модуля формы можно вызывать, если имеем саму форму
даже если мы имеем сам объект формы, в ОФ форма никак не привязана к объекту, которому якобы принадлежит. И её абсолютно никак нельзя идентифицировать (по объекту), разве что в частном случае вызова со списка документов - владельцем будет ДокументСписок данного вида документов. И никак никакие процедуры формы (даже помеченные Экспорт) не доступны при получени объекта формы. Разве в УФ что-то изменилось? |
|||
33
GROOVY
29.06.14
✎
23:43
|
Я могу вызвать процедуру формы из другого модуля который выполняется на клиенте. И из управляемой и из обычной и из таксишной.
|
|||
34
GROOVY
29.06.14
✎
23:44
|
(32) Не въехал, при чем тут объект формы...
|
|||
35
1с-кин
29.06.14
✎
23:50
|
(33)>>из другого модуля который выполняется на клиенте
Это УФ. Т.е. клиент и есть сама форма, пока она "активна". Прыгаем с процедуры на процедуру в пределах самой формы, т.е. никуда в итоге не уходим с формы. Как только исчезает "контекст" формы ("уходим" с формы) - ничего не доступно. >>И из управляемой и из обычной и из таксишной. УФ и Такси - это одно и то же ) (34)>>при чем тут объект формы в 1С можно получить новый "экземпляр" формы этого вида документа, либо передать "объект" формы (текущий экземпляр", который активен в данный момент. |
|||
36
1с-кин
29.06.14
✎
23:56
|
(30)>>Процедуры модуля объекта доступны из любого серверного контекста
как раз для этого и ввели модуль менеджера ) Не может быть, чтобы в УФ 8.3 что-то придумали другое ) |
|||
37
GROOVY
29.06.14
✎
23:58
|
(35) А что форму я не могу передать как владельцы другой формы? Есть Владалец.ИмяПроцедуры()
А форму я не могу получить перебрав открытые формы? Да ладно! |
|||
38
GROOVY
29.06.14
✎
23:59
|
Посмотри как подбор организован на УФ.
|
|||
39
1с-кин
30.06.14
✎
00:03
|
(38) на УФ, конечно, возможны "чудесатые чудеса" (или вещи, в первом приближении кажущиеся такими :) ), но я все-таки видел одно - максимум, что с "клиента"-формы никуда не уходим. Как только прерыввается "связь времен" (форма закрыта) - ничего не доступно.
|
|||
40
GROOVY
30.06.14
✎
00:04
|
(39) С обычными формами еще проще все. Там нет различия контекста сервера и клиента.
|
|||
41
1с-кин
30.06.14
✎
00:29
|
(40)>>Там нет различия контекста сервера и клиента.
почему и подозреваю, что "чедес не произошло", и в УФ все по-прежнему. В ОФ: передаем форму целиком в общий модуль "как объект" (да хоть ПриОткрытии), форма - доступна, данные формы - доступны. Процедуры и события формы - нет. |
|||
42
1с-кин
30.06.14
✎
00:30
|
*чудес
|
|||
43
1с-кин
30.06.14
✎
00:49
|
(33)>>Я могу вызвать процедуру формы из другого модуля
это невозможно даже в теории, т.к. "объект" формы и модуль формы - две разные сущности в 1С, не связанные "единым пространством и подчинением" как в ООП. Поэтому в 1С нельзя: - обратится извне к процедурам формы - переопределить события формы и ЭУ на ней - создать программно реквизиты формы - обработать события программно созданных ЭУ, не вписывая в модуль формы сами обработчики |
|||
44
1с-кин
30.06.14
✎
00:52
|
+ 43
кстати, ОМ и были введены в 1С для того, чтобы использовать общий с объектами код, т.к. иное недоступно за пределами модулей форм или модулей объектов (кроме как процедуры "Экспорт" Модуля объекта - видны в модулях формы этого объекта, да и то вроде было введено позже). |
|||
45
1с-кин
30.06.14
✎
01:01
|
(21)>>Я только с марта начал его изучать.
остынь, в 1С много проблем и подводных "коряг", и в ней много что "не так" как в других языках. За 3 месяца не "привыкнешь" к особенностям, и тем более не узнаешь всех нюансов. Здесь только собственный опыт будет 100% доказательством. |
|||
46
GROOVY
30.06.14
✎
01:44
|
(43) Гонишь.
|
|||
47
GROOVY
30.06.14
✎
01:45
|
(44) Гонишь №2
|
|||
48
alexexe
30.06.14
✎
03:32
|
(0)
В Документе ЗаказКлиента - открой модуль менеджера, там есть процедура - РассчитатьСтатусДокументаСервер(Объект, КоличествоОбработанных) В своем цикле получи объект и передавай в менеджер документа... |
|||
49
alexexe
30.06.14
✎
03:45
|
(48) +
Обрати внимание на общий модуль ОбщегоНазначенияУТ, разберись как работает функция РассчитатьСтатусыДокументовАвтоматически ключевые моменты: здесь ты получаешь запрос, который сформирует список Запрос = МенеджерДокументов.СформироватьЗапросПроверкиПриАвтоматическомРасчетеСтатуса(МассивСсылок, ДополнительныеПараметры); Обход результата запроса возьми здесь же |
|||
50
oslokot
30.06.14
✎
09:05
|
(46) >Гонишь.
Чой-то?) Обоснуй первый и последний пункт из (43): - обратится извне к НЕ экспортным процедурам формы (ОбычныеФормы) - обработать события программно созданных ЭУ, не вписывая в модуль формы сами обработчики |
|||
51
FoxFox
30.06.14
✎
09:42
|
(43) >>- переопределить события формы и ЭУ на ней
>>- создать программно реквизиты формы Почему нельзя? В доработанной типовой для легкости обновления выносила добавление дополнительных ЭУ и переопределение действий в общий модуль и всё ОК. А вот последний пункт действительно, к сожалению, нельзя... |
|||
52
FoxFox
30.06.14
✎
09:43
|
(51) Тьфу, про реквизиты зря скопировала цитату.
|
|||
53
РенеДекарт
30.06.14
✎
11:12
|
(51) правильно пишет, события ГОТОВЫХ ЭУ нельзя переопределить. И События формы.
Только если к ним "подстроится". Так что ничего вы не переопределяли :) |
|||
54
РенеДекарт
30.06.14
✎
11:13
|
(50) а как к ЭКСПОРТНЫМ процедурам формы обратится?
|
|||
55
Господин ПЖ
30.06.14
✎
11:14
|
>На ФормеДокумента есть процедура "РасчитатьСтатусДокумента(команда)".
за такие штуки принято бить тяжелыми предметами (43) горячечный бред |
|||
56
РенеДекарт
30.06.14
✎
11:16
|
(55) как сделать-то?
>- обратится извне к процедурам формы - переопределить события формы и ЭУ на ней - создать программно реквизиты формы - обработать события программно созданных ЭУ, не вписывая в модуль формы сами обработчики ???? |
|||
57
Джинн
30.06.14
✎
11:21
|
1цы-доступно и всерьез (с) pit
:( |
|||
58
РенеДекарт
30.06.14
✎
11:21
|
(46) Павел, как это сделать????
|
|||
59
РенеДекарт
30.06.14
✎
11:22
|
(57) это мне? :)
|
|||
60
Джинн
30.06.14
✎
11:32
|
(59) Нет, это всему сообществу тупых и жадных.
В основной массе полное непонимание даже базовых принципов продукта, с которым они работают. |
|||
61
РенеДекарт
30.06.14
✎
11:36
|
(60)"В основной массе полное непонимание даже базовых принципов продукта"
ну не знаю, может Павел обладает какимим-то секретными разработками. Или знает, в какой правильной последовательности ударить в бубен )) У меня не получается )) |
|||
62
13_Mult
30.06.14
✎
11:48
|
(46) Не стоило с ним спорить, пусть живет в своих убеждениях
|
|||
63
oslokot
30.06.14
✎
13:14
|
(54) Напрямую, вот так:
Форма = Обработки.РедактированиеКонтактнойИнформации.ПолучитьФорму(); Форма.ЗаполнитьНачальныеДанные(); Форма.Открыть(); |
|||
64
РенеДекарт
30.06.14
✎
13:23
|
(63) это форму заново получаешь.
У ТС в (0) уже существует: Пока Док.Следующий() Цикл Док.ФормаДокумента |
|||
65
oslokot
30.06.14
✎
13:26
|
(64) а где в (0) форма?
|
|||
66
oslokot
30.06.14
✎
13:27
|
+Форму то надо получить сначала, а уж потом юзать ее экспортные процедуры
|
|||
67
РенеДекарт
30.06.14
✎
13:57
|
(65) ну типа он её получил )
(63) так получает совершенно чистую форму и чистый объект, там не заполнено ничего, и даже не сформированы элементы, которые в ПриОткрытии. (41)"В ОФ: передаем форму целиком в общий модуль "как объект" (да хоть ПриОткрытии)" так тоже доступен текущий объект по переданной текущей форме и экспортные процедуры. Но в первом случае подписывает, какие процедуры доступны, во втором - нет. |
|||
68
Rebelx
30.06.14
✎
14:12
|
(21) И что ты хотел этим сказать? Что то, что ты упорно учишься 1С, это дает тебе право не обращать внимание на то что ты пишешь по-русски?
Или ты считаешь, что все остальные выучили что-то моментально? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |