Имя: Пароль:
1C
1С v8
СправочникМенеджер - это ведь не ссылочный тип? :)
,
0 Живой Ископаемый
 
25.04.17
18:11
1. Нет 75% (3)
2. Как ты задолбал! 25% (1)
3. Да 0% (0)
Всего мнений: 4

Это по сути контейнер, то есть структура(массив), включающая в себя ссылки на все элементы(ну и группы)-объекты Справочника.
Да?
1 Trotter
 
25.04.17
18:14
Ну да, коллекция вроде как )
2 Buster007
 
25.04.17
18:17
здесь мне кажется достаточно задать вопрос: есть у СправочникМенеджер поле ссылка?
3 Живой Ископаемый
 
25.04.17
18:19
(2) ну есть метод "пустаяссылка()", но правда ссылающаяся не на этот менеджер конечно.


Ну я тоже так себе думаю, но рефлексирую
4 lodger
 
25.04.17
18:25
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
Свойства:
<Имя предопределенного элемента справочника>

Методы:
Выбрать (Select)
ВыбратьИерархически (SelectHierarchically)
НайтиПоКоду (FindByCode)
НайтиПоНаименованию (FindByDescription)
НайтиПоРеквизиту (FindByAttribute)
ПолучитьИмяПредопределенного (GetPredefinedItemName)
ПолучитьМакет (GetTemplate)
ПолучитьСсылку (GetRef)
ПолучитьФорму (GetForm)
ПолучитьФормуВыбора (GetChoiceForm)
ПолучитьФормуВыбораГруппы (GetFolderChoiceForm)
ПолучитьФормуНовогоЭлемента (GetNewItemForm)
ПолучитьФормуНовойГруппы (GetNewFolderForm)
ПолучитьФормуСписка (GetListForm)
ПустаяСсылка (EmptyRef)
СоздатьГруппу (CreateFolder)
СоздатьЭлемент (CreateItem)

Описание:
Предназначен для управления справочником, как объектом конфигурации. С помощью этого объекта осуществляется поиск элементов, создание новых элементов и групп, работа с формами и макетами справочника. Доступ к объекту осуществляется через свойства объекта СправочникиМенеджер. Полное имя типа объекта определяется с учетом имени справочника конфигурации. Например, для справочника "Номенклатура" имя типа будет выглядеть СправочникМенеджер.Номенклатура.
Возможен обмен с сервером.

Как ты задолбал!
5 Живой Ископаемый
 
25.04.17
19:42
2(4) Если бы ты реинженирил в8 заново, в виде чего бы ты его сделал?
6 Волшебник
 
модератор
25.04.17
19:44
(0) Нет, конечно. Ссылочный тип — это СправочникСсылка, ДокументСсылка. Короче, у ссылки есть внутренний идентификатор, в просторечии называемый GUID
7 Живой Ископаемый
 
25.04.17
19:52
2(6) Секунду, с точки зрения того что это не ссылка на запись в бд - все понятно.
Я имею в виду, что на клиенте.... м....
ну вот короче СправочникМенеджер можно ведь передавать в функцию как  аргумент.
Так вот он в этом случае будет передаваться не как ссылка объект, на область памяти где этот объект есть - а как копия структуры?
8 jsmith82
 
25.04.17
19:55
>>Это по сути контейнер, то есть структура(массив)
Рука лицо

>>Так вот он в этом случае будет передаваться не как ссылка объект, на область памяти где этот объект есть - а как копия структуры?

какой ещё объект?!
9 jsmith82
 
25.04.17
19:56
СправочникМенеджер не привязан ни к каким объектам
Это обычный синглтон, который имеет методы для работы с конкретным справочником
10 jsmith82
 
25.04.17
19:57
Ссылочный тип имеет свою таблицу в БД
Остальные - это просто некие статические классы / синглтоны

Нет
11 Живой Ископаемый
 
25.04.17
19:58
2(9) а... синглтон к тому же...
ну может, щас подумаю.
12 Лефмихалыч
 
25.04.17
20:47
это такой же тип, как и любой другой менеджер, включая ВнешниеОбработкиМенеджер

Нет
13 Лефмихалыч
 
25.04.17
20:48
(11) у тебя горе от ума. Тебе надо меньше думать, а вместо этого чаще бывать на свежем воздухе.
14 Живой Ископаемый
 
25.04.17
21:26
2(12) мне просто нужно повторить то, к чему я привык в 1с в другой, голой ООП-среде. Ну как голой. по крайней мере менеджерсправочника там отстуствует.
Но вот выяснили, что это должен быть синглтон с приватной коллекцией (массивом элементов) внутри для реализации выборки.
15 Вафель
 
25.04.17
21:55
в java это все статические метды класса.
Доступны через ClassName.<...>
16 vde69
 
25.04.17
21:57
разумеется это объект конкретной БД, со всеми вытекающими

СправочникМенеджер - это самое близкое к объекту в ОПП.

то есть у него есть свойства и есть правила работы с этими свойствами... единственное чего нет - это возможности полноценного наследования (наследование есть, но очень ограниченое)...

часть методов и событий виртуальны (переопределяемы в модуле менеджера)

часть методов и событий наследуется в объектах Ссылка, объект, список и т.д.

Нет
17 Живой Ископаемый
 
25.04.17
22:09
2(15) Послушай, это всего лишь один из возможных способов (реализация статических методов и свойств в классе. и типа методы и свойства инстанса - это то что касается СправочникОбъект, а статические методы и свойства - это СправочникМенеджер). При чем не самый красивый, на самом деле.
По крайней мере в плане переиспользования кода.

И то, что в 1С СправочникОбъект и СправочникМенеджер два разных класса - косвенно подтверждает мое мнение. Конечно я не могу это утверждать со 100% уверенностью.

Но думаю, что действительно это синглтон. Сам класс - композитный, внутри у него должна быть коллекция. Хотя бы для той же самой выборки.

В других языках кроме того, есть возможность реализовать для всех справочник один менеджер благодаря наличию дженериков.
Например вот так:
https://www.dropbox.com/s/kt9h4f84rbm4i76/Screenshot%202017-04-25%2022.09.23.png?dl=0
18 Волшебник
 
модератор
25.04.17
22:15
(7) Нет, нельзя. Это просто локальная переменная.
19 Волшебник
 
модератор
25.04.17
22:16
(17) Каждая тварь должна получить свой собственный СправочникМенеджер в меру её ничтожества.
20 Живой Ископаемый
 
25.04.17
22:23
хотя конечно можно обойтись и статическими функциями и свойствами в самом классе...
а чтобы убрать дублирование кода, то дженерики использовать в самих этих функциях. так в общем-то тоже можно.
ладно, спасибо, я подумаю.
21 Волшебник
 
модератор
25.04.17
22:26
(20) Хорошо, что ты ещё можешь думать на такие темы. Если будет нужна еда, обращайся.
22 Asmody
 
25.04.17
23:32
Зачем коллекция? Делаешь интерфейс с методами менеджера, имплементируешь в своем классе, через рефлекшн собираешь все классы-потомки в кучу в метакласс или в di, как тебе угодно.
23 Живой Ископаемый
 
26.04.17
00:00
2(22) чтобы не имплементировать для каждого класса одни и теже методы - НайтиПоКоду, НайтиПоНаименованию, и т.д..
Но в общем ладно, я уже понял. Не класс с дженириков, так методы с дженериком.
24 Живой Ископаемый
 
26.04.17
00:01
коллекция просто, служебная. но Может и да, не нужна.
25 Злопчинский
 
26.04.17
00:50
СправочникМенеджер.Номенклатура
это то что в клюшках как
СпрН = СоздатьОбъект("Справочник.Номенклатура");

???
26 FIXXXL
 
26.04.17
08:30
(25) да
или ПолучитьОбъект, как он там в клюшках
27 FIXXXL
 
26.04.17
08:31
(0) убийца 1С грядёт? :)
28 Живой Ископаемый
 
26.04.17
09:00
2(27) господи, да при чем тут убийца. такие структуры данных восстребованы всюду.
29 Господин ПЖ
 
26.04.17
09:52
ыыы... еще и "синглтон" к статике припахали...
30 Вафель
 
26.04.17
10:01
(17) Это не синглтон, это просто глобальная переменная
AdBlock убивает бесплатный контент. 1Сергей