Имя: Пароль:
1C
 
Как вызвать процедуру менеджера объекта из обработчика команды объекта?
0 mikecool
 
24.08.10
11:00
Чета не выходит каменный цветок
в модуле менеджера документа есть процедура
Процедура ПечатьРеестраОтгрузок(Объект) Экспорт

из команды этого документа она не доступна, как быть и чяднт?
1 mikecool
 
24.08.10
11:00
+0 из обработчика команды*
2 butterbean
 
24.08.10
11:01
неправильно вызываешь видимо
3 Defender aka LINN
 
24.08.10
11:01
"из команды этого документа она не доступна" - это ты как понял? Посмотрел в модуль команды и сказал "кля, да она недоступна!"?
4 Amiralnar
 
24.08.10
11:02
Документы.<ВидДокумента>.ПечатьРеестраОтгрузок(Объект)
5 mikecool
 
24.08.10
11:03
(4) гм, думал через Объект или еще что...
6 mikecool
 
24.08.10
11:03
щас попробую, спс
7 Ненавижу 1С
 
гуру
24.08.10
11:03
а зачем сделан статический метод, в который передается аргументом сам объект?
8 Ненавижу 1С
 
гуру
24.08.10
11:04
(5) это просто ты (да и 1С) не в курсе слова "статический"
9 mikecool
 
24.08.10
11:05
(7) заколовок процедуры - копипаста из 8.1
10 mikecool
 
24.08.10
11:05
заголовок*
12 Amiralnar
 
24.08.10
11:06
(7) А потому, что это не статический метод (я читал infostart), а метод менеджера объекта.
13 Ненавижу 1С
 
гуру
24.08.10
11:07
(12) ну и в чем отличия?
14 Amiralnar
 
24.08.10
11:14
(13) Даже не знаю, как ответить... тут скорее... а в чем сходство? О_о
15 Ненавижу 1С
 
гуру
24.08.10
11:16
(14) в том что это одно и тоже, имхо, просто название другое
16 Рэйв
 
24.08.10
11:23
(15) Объект документ- не есть объект класса менеджер документов. Поэтому static метод менеджера(даже если б такой был) все равно для объекта докуент не вызовешь.
17 Amiralnar
 
24.08.10
11:24
По (7) передается экземпляр объекта. Классический статический метод не связан с экземпляром объекта. Как, в вашем понимании необходимо реализовать метод, работа которого зависит от состояния конкретного экземпляра объекта?

Класс менеджера объекта и класс объекта - это разные классы. Отсюда и отличия.
Отсюда, наверное, и недоступность метода менеджера в простанстве имен объекта.
18 Amiralnar
 
24.08.10
11:27
Обратите внимание, что к статическим переменным и методам мы всегда получаем доступ через имя класса, а к нестатическим – через экземпляр класса.
19 Ненавижу 1С
 
гуру
24.08.10
11:28
(16) static методы и не вызываются для объектов никогда
(17) вместо модуля менджера:
Процедура ПечатьРеестраОтгрузок(Объект) Экспорт
нужно было юзать модуль объекта:
Процедура ПечатьРеестраОтгрузок() Экспорт
20 Ненавижу 1С
 
гуру
24.08.10
11:29
(18) тоже самое и в 1С, только название поменяли со static на методы модуля менеджера
21 Amiralnar
 
24.08.10
11:30
(19) В данном коде нет необходимости в объекте, автор написал это в (9)
22 Ненавижу 1С
 
гуру
24.08.10
11:31
(21) может быть и копипаста, но лучше через метод объекта, а я вообще отвечал на ваше (17) "как реализовать?"
23 Amiralnar
 
24.08.10
11:35
(22) Метод объекта недоступен без объекта.
Печать реестра хочестя делать из любого мееста, без создания объекта.
А еще хочестя реализовать ВыбратьПодчиненные(Ссылка), наподобие Выбрать(). Это куда положить? Тоже в модуль объекта? Нет? А как тогда не передавать ссылку?
24 Ненавижу 1С
 
гуру
24.08.10
11:41
(23) все же в (0) по-моему объект передается, судя по имени, насчет ссылок согласен
скоро возможно будет модуль ссылок ))
25 Ненавижу 1С
 
гуру
24.08.10
11:46
так и непонятно почему придумали новый модуль вместо описание методов с директивой static
26 Defender aka LINN
 
24.08.10
11:49
(24) Можно ссылку передавать, если процедура правильно сделана.
Кроме того, в управляемой форме объекта нет. Точнее есть, но не тот :)
27 butterbean
 
24.08.10
11:50
(25) и где бы ты их описывал??
28 Amiralnar
 
24.08.10
11:51
(27) В модуле.
29 butterbean
 
24.08.10
11:54
(28) в каком модуле??
30 Ненавижу 1С
 
гуру
24.08.10
11:54
(27) в модуле объекта, а что? как то по другому это делается в C#, C++, Java или Delphi?
31 butterbean
 
24.08.10
11:55
(30) ну "объект" в 1С и в C#, C++, Java или Delphi э то все-таки немного разные вещи
32 Amiralnar
 
24.08.10
11:56
(31) Я бы даже сказал - много разные вещи =)
33 Ненавижу 1С
 
гуру
24.08.10
11:57
(31) ну смотри на них ширше и глубжей
34 Рэйв
 
24.08.10
11:57
(19)Ну да. А менеджер документов по твоему что? Описание класса? Все отличие что менеджер уже готовый объект и его получать не надо.
35 Рэйв
 
24.08.10
11:57
+(34)Так что static там так же применимо как и к объекту документа
36 Ненавижу 1С
 
гуру
24.08.10
12:01
(34) готовый объект, который можно рассматривать и как тип
37 Ненавижу 1С
 
гуру
24.08.10
12:02
+(36) посмотри как реализованы например в Delphi виртуальные конструкторы и class-методы
38 Рэйв
 
24.08.10
12:02
(36)Имхо нельзя. Второй экземпляр не сделаешь.
39 Рэйв
 
24.08.10
12:02
(37)то Делфи, а то 1С:)
40 Ненавижу 1С
 
гуру
24.08.10
12:03
(38) так потому и нельзя, что это как бы (с натяжкой) тип
41 Ненавижу 1С
 
гуру
24.08.10
12:03
(39) аргументировано слил
42 Amiralnar
 
24.08.10
12:06
(40) Что за тип? Какой тип?

Тип("Документы.ДокументСсылка")
Тип("Документы.ДокументОбъект")

Или Тип(Объект) бывает Документы.Документ?
43 butterbean
 
24.08.10
12:09
модуль объекта - это все таки для описания событий и прочего относящегося именно к объекту (типа ДокументОбъект), а вот модуль менеджера - это для описания общих для документа методов (типа печати, какого-нибудь экзотического поиска и т.п.)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший