Имя: Пароль:
1C
 
Как вызвать функцию модуля объекта, не создавая объект?
0 Гений 1С
 
гуру
22.11.07
12:23
Сабж.
1 Рэйв
 
22.11.07
12:28
имхо никак.
Модуль есть член класса объекта и доступ к нему помоему возможет только через экземпляр
2 Майкопчанин
 
22.11.07
12:28
это все-равно что позвонить без телефона
3 DK_L
 
22.11.07
12:30
(0) получить форму, передать параметр, перед открытием  анализировать параметр и вызывать функцию модуля и делать отказ
4 Гений 1С
 
гуру
22.11.07
12:30
(1)(2) Тогда как грамотно реализовать функционал, связанный с определенным типом, но не работающий непосредственно с объектом.
Использовать глобальные функции с префиксом?
Например, у меня для каждого объекта есть функции по управлению отбором, но это не касается отдельно этого элемента, а касается всех элементов данного типа.
5 Гений 1С
 
гуру
22.11.07
12:31
(3) Какую нафиг форму???? Бредите батенька, тогда уж проще объект создать....
6 DK_L
 
22.11.07
12:31
+3 после получить форм у еще открыть
7 DK_L
 
22.11.07
12:33
(5)Я не брежу, ты спросил как ? я тебе ответил - причем правильно, я же не виноват ,что ты едешь на северный полюс через южный :)
8 Рэйв
 
22.11.07
12:33
(4)Если функция касается всех элементов данного типа, то и распологаться она должна выше по иерархии, а не в модуле конкретного объекта.
9 Гений 1С
 
гуру
22.11.07
14:19
(8) Наверное я неудачно объяснил, это функция работы со списокм элементов данного типа, т.е. например со списком товаров, или со списком валют... ;-)

(6) Использовать формы для юзания методов объекта - это маразм, видел я пару раз такой код, повбивал автора, благо он рядом сидел...
10 Гений 1С
 
гуру
22.11.07
14:20
т.е. альтернатива - это создание модуля с функциями:
Номенклатура_УправлениеОтбором()
Валюты_УправлениеОтбором()
Контрагенты_УправлениеОтбором()
Подразделения_УправлениеОтбором()

Вместо объявления такой функции в модуле каждого объекта?
11 Рэйв
 
22.11.07
14:22
(10)Ну, скорее всего что-то вроде этого.
12 Гений 1С
 
гуру
22.11.07
14:22
(11) Мдя...
13 nop
 
22.11.07
14:49
(0) Вы, батенька, постоянно ищете магнитолу в тракторе, мне кажеться
14 PR
 
22.11.07
14:50
(4) Очень просто.
В общем модуле делается процедура, которая делает что-то с переданным в качестве параметра объектом.
15 Гений 1С
 
гуру
22.11.07
15:03
(14) Чем ваше решение отличается от (10)?
А, я понял, вы хотите:
Если Вид="Номенклатура" Тогда
...
ИначеЕсли Вид="Валюты" Тогда
...

Увольте-с, мы от этого еще в 77 избавились
16 Mort
 
22.11.07
15:08
Статические методы классов гений вспомнил.
Просто назови общий неглобальный модуль по имени справочника и обращайся :

Номенклатура.СделатьЧонить();
17 PR
 
22.11.07
15:08
(15) Да ничем :))
И не надо свои грязные мысли пихать в мою светлую голову :)) (c)
18 Ненавижу 1С
 
гуру
22.11.07
15:25
Имхо, Гению не хватает статических методов
19 Гений 1С
 
гуру
22.11.07
16:25
(16) Слишком много модулей получится, тебе не кажется - по одному на каждый справочник, учитывая что процедура долнжа быть в каждом справочнике
20 TormozIT
 
гуру
22.11.07
16:45
Ходят слухи, что в 8.2 дадут таки модули видов объектов (статических методов)
21 yalex
 
22.11.07
17:19
(9) А какие функции для списка планируются если не секрет?
22 Гений 1С
 
гуру
22.11.07
17:37
(21) я делаю альтернативу 1с-му отбору. Функция содержит описание дополнительных отборов, которых можно производить над объектом.
Например, задачи можно фильтровать по признаку "Завершена" или "Дата актуальности", эти реквизиты не хранятся в справочнике "Задача", а хранятся в связанных регистрах сведений.
23 TormozIT
 
гуру
22.11.07
18:48
(22) Многие делают подобные отборы. Они очень нужны )
24 Asmody
 
модератор
22.11.07
19:09
(22, 23) мдя... а если бы построитель запроса можно было бы напрямую связать с табличным полем... (мечтательно...)
25 Drock
 
22.11.07
20:47
гений как обычно делает никому не нужные задачи
26 BabySG
 
23.11.07
00:31
(22) Тем более не понимаю, зачем статик-функция в модуле объекта. Объект-то тут причём? Как правильно сказано в (8) - это должен быть менеджер.

ЗЫ. После уточнения в (9) вообще не понял, причём тут методы объекта.
Нарисуй, как ты планируешь использовать в виде кода...
27 TormozIT
 
гуру
23.11.07
07:46
Да. Вроде как в 8.2 будет можно например Справочники.Номенклатура.ПолучитьСписокОбязательныхРеквзитов() создать.
28 Гений 1С
 
гуру
23.11.07
09:16
(26) почитай пост (27) и поймешь. Не нужно выдавать свой недостаток воображения за достоинство
29 BabySG
 
23.11.07
12:20
(28) Прочитай ещё раз (27) и пойми разницу с тем, что ты хочешь. Причём тут объект?
30 Гений 1С
 
гуру
23.11.07
12:27
(29) Как по-твоему я должен получить список обязательных реквизитов каждого объекта, приведи пример архитектурного решения...
31 BabySG
 
23.11.07
12:39
Справочники.Номенклатура являются МЕНЕДЖЕРОМ объектов, про что тебе раньше говорили...
Иначе пришлось бы писать так (по твоему :):
<Какая-то номенклатура>.ПолучитьСписокОбязательныхПараметров()
Чувствуешь разницу?
В первом случае это платформенное решение, основанное на прикладном объекте
Справочники и конкретно менеджера справочника. Но никак не объекта.
32 Гений 1С
 
гуру
23.11.07
13:14
(31) Не разводи демагогию, ответь как сделать (30)
О том и речь, что я хочу обращаться к модулю объекта без конкретного объекта. Этот метод относится ко всем объектам данного типа. На ООП статические методы класса проспал?
33 BabySG
 
23.11.07
13:32
(32) Дык тебе про что и говорят уже с самого начала:
Статический метод класса будет в Справочники.Номенклатура реализован. Смотри (27
А ты хочешь по сабжу получить статический метод непонятной чего :)
Ты так и не привёл образец кода, как использовать "по твоему" - поэтому демагогию разводишь ты.
34 Гений 1С
 
гуру
23.11.07
13:43
(33) мне не нужно про будет, мне нужно, как это сейчас.
И демагогией ты тут занимаешься - статические методы описываются в модуле класса, между прочим...
35 BabySG
 
23.11.07
14:02
(34) 1С стала описывать статические методы ужО?
Не смеши: не надо прикручивать ООП сюда - здесь им и не пахнет.

ЗЫ. Да и в случае применения ООП - какой смысл реализовывать именно сабж в самом объекте Номенклатура?
ЗЗЫ. Пока ты так и не написал, как ты предлагаешь использовать сие - пожтому низачОт. Откуда объекту знать про какие-то отборы непонятно где?
36 BabySG
 
23.11.07
14:25
Мда,а тут обратное говорят... http://www.sql.ru/forum/actualthread.aspx?tid=442161
37 Гений 1С
 
гуру
23.11.07
14:39
(35) Это ты меня не смеши - речь идет о С++ например.
Далее по сабжу - видишь ли, некая обработка может рассматривать все объекты как однородные объекты, например у всех справочников есть код и наименование.
Допустим, нужно разделить справочник на два класса - одни могут быть обработаны хитроключиковой обработкой, другие нет...
38 BabySG
 
23.11.07
14:56
(37) Сорри, не по сабжу, а по "Например, у меня для каждого объекта есть функции по управлению отбором, но это не касается отдельно этого элемента, а касается всех элементов данного типа."
Зы. Запутался в темах :)
39 Гений 1С
 
гуру
23.11.07
15:46
(38) Ладно, спор перешел в маразматическую фазу. На практике понятно, что юзать модуль не получтся...
40 Лефмихалыч
 
23.11.07
15:49
(0) зачем? Кроме того, откуда такая идея пришла-то? Объект не создан, знаит и модуль не инициализирован, а следовательно метода ШТО? Метода нет
41 Гений 1С
 
гуру
23.11.07
15:53
(40) На переэкзаменовку по ООП, двоечник...
42 Гений 1С
 
гуру
23.11.07
15:54
(40) Да буде тебе известно, что статические методы класса можно вызывать даже не имея созданного класса, чтобы вызвать этот метод нужно написать имя класса :: имя статического метода...