|
|
|
Почему в 1С нет наследования? | ☑ | ||
|---|---|---|---|---|
|
0
Moriarti
16.01.09
✎
12:17
|
Возник тут у нас с коллегами нехилый диспут на тему "почему в 1С нет наследования".
Это сложно с технической стороны реализации или не сделано по каким-то политическим причинам? |
|||
|
1
butterbean
16.01.09
✎
12:18
|
а должно быть??
|
|||
|
2
i-rek
16.01.09
✎
12:18
|
по политическим
|
|||
|
3
Moriarti
16.01.09
✎
12:21
|
(1) Сложный вопрос, в тех системах, с которыми работал (Аксапта, Lexema) было.
(2) Ну вот мы в диспуте тоже к этому выводу пришли. |
|||
|
4
Сергей-ХХХ
16.01.09
✎
12:25
|
Наследование и полиморфизм - часть стандартов ООП. Если 1С свой язык позиционируют, как ООП, то эти средства обязаны быть на нем реализованы, т.к. упрощают работу. Другое дело - это к чему может привести динамическое изменение объектов, когда они статически описаны в СУБД? Ведь 1С должна держать в памяти все уже существующие объекты, созданные статически (а их и так там нехило), а потом еще и динамические объекты. Мне кажется, что она при таком раскладе умрет совсем...
|
|||
|
5
Черный всадник
16.01.09
✎
12:44
|
(4) Если рассматривать обработки, как классы, то: наследование включение реализовано; полиморфизм реализован - просто отсутствует типизация; Частично реализована инкапсуляция, т.к. не полностью реализовано наследование. Собственно 1С приближается к ООП, версии в 10 будет думаю полноценной.
|
|||
|
6
Сергей-ХХХ
16.01.09
✎
12:49
|
(5) Вообще, в самом синтаксисе языка отсутствует определение новых классов и подклассов. Но для статических объектов это нормально. Другое дело, что было бы неплохо использовать ООП в структуре модулей. С другой стороны, практической необходимости в этом я не вижу.
|
|||
|
7
eddy_n
16.01.09
✎
12:51
|
(0) Настоящее наследование - это сложно. Даже в Java нет множественного наследования.
|
|||
|
8
Япошка
16.01.09
✎
12:52
|
Почему в 1С не беременных? ;)
|
|||
|
9
Господин ПЖ
16.01.09
✎
12:53
|
опять...
без наследования пишут что попало... |
|||
|
10
Torquader
16.01.09
✎
13:02
|
В 1С нет объектов пользователя!
Все объекты создаются системой на этапе её проектирования. Некое подобие объектно-ориентированного подхода всё-таки есть - работа с объектами 1С и возможность получения конкретного объекта из класса. Создали "Документ" сделали выборку, а при выборке получаем "Документ.Счет". Есть также функция "УстановитьВид". Нету наследования на этапе конфигурирования - но при наличии наследование фразу "конфигурирование" пришлось бы заменить на "программирование". |
|||
|
11
Odin1C
16.01.09
✎
13:03
|
В 1С реализовано какое-то "техническое наследование" и "технический полиморфизм". В пофигураторе можно указать скажем документобъект или справочникобъект например в подписках. То есть система понимает объекты на уровне видов метаданных. А вот программный доступ только на уровне конкретных видов документов и справочников. А жаль.
|
|||
|
12
у лю 427
16.01.09
✎
13:04
|
при наличии наследования в 1С пришлось бы искать квалифицированный персонал (все методы "промышленного" программирования от 1С в ж.пе). А где же взять столько недятлов?
|
|||
|
13
Adept
16.01.09
✎
13:05
|
Появится наследование, будут спрашивать почему есть.
|
|||
|
14
dimoff
16.01.09
✎
13:06
|
Потому что одинэсники тупые, какое им наследование, они простой запрос написать не в состоянии чтобы он отработал оптимально.
|
|||
|
15
Torquader
16.01.09
✎
13:07
|
Зато не надо будет выносить процедуры в глобальный модуль.
|
|||
|
16
ado
16.01.09
✎
13:07
|
(0) Напишите 1С++ для 8-ки ;-)
|
|||
|
17
Рэйв
16.01.09
✎
13:07
|
(0)Имхо наследование, полиморфизм и иже- вещи полезные, но помоему это сделано для большей совместимости. И так ВК развелось выше крыши, а если еще каждый прогер будет свои хедеры клепать, то вообще все в раздрай пойдет
|
|||
|
18
i-rek
16.01.09
✎
13:08
|
(10) подобие объектов есть, но большинство всё же понимает их по другому:
класс=объект метаданных "обработка" экземпляр класса - экземпляр обработки публичные методы - процедуры и функции модуля обработки со словом Экспорт приватные методы - процедуры и функции модуля обработки без слова Экспорт публичные переменные - переменные модуля обработки или реквизиты Конструктор класса - код, помещённый внизу модуля обработки Классический пример такого объекта от 1С - бухгалтерские итоги |
|||
|
19
Odin1C
16.01.09
✎
13:08
|
А представьте например дерево метаданных где можно было бы прям в пункте Документы открыть модуль как бы любого документа и описать процедуры общие для всех документов. А потом отпочковывать от него другие документы и переопределять в их модулях какие-нить функции или добавлять новые. Прикинь те бы как сократился код типовых кофигураций.
|
|||
|
20
Fragster
гуру
16.01.09
✎
13:08
|
наследование есть, но только "одноуровневое" - от стандартных объектов типа "справочник", "документ" и т.д...
|
|||
|
21
i-rek
16.01.09
✎
13:09
|
(19) однако в 8.2 появились модули узлов метаданных Документы и Справочники ))
правда кажись ничего полезного сделать там низя |
|||
|
22
Torquader
16.01.09
✎
13:15
|
(19) тогда можно сказать, что есть объекты и есть наследование.
(У документа могут быть общие реквизиты). Но, так как объекты заданы, то заданы и пути наследования. Будет наследование - захотят ещё и приведение типов (Например, один документ в другой). И вообще, была такая объектно-ориентированная база данных Jasmine называлась. (Книжка была очень толстой и увесистой, а вот понять, для чего это было нужно, было очень сложно). |
|||
|
23
dimoff
16.01.09
✎
13:16
|
В восьмерке кстати типовые отчеты написаны так, что их наследовать элементарно.
|
|||
|
24
i-rek
16.01.09
✎
13:17
|
Вообще 1С правильно всё сделали, ООП это отмирающая ветка развития отмирающего программирования.
Сейчас модно - сервисориентированная архитектура. Теперь, в разгаре 21 века уже нелепо сиделть и писать каки-то там модули, с ООП или без неё Сейчас надо лишь найти подходящие модули и придумать как их состыковать. |
|||
|
25
Рэйв
16.01.09
✎
13:18
|
(24)Делфист наверное?:)
|
|||
|
26
i-rek
16.01.09
✎
13:21
|
(25) почему ? потому что слово "модули" ?
ну я не знаю как ещё назвать эти кубики. "возьмём УПП, поставим сверху Инталева, снизу УС, слева УАТ, справа УР" и вот после этого весь программёж будет заключаться только в настройке обменов, подпиливания конф под местные особенности и дописывании отчётов. Только так и должна строиться работа. При этом ООП здесь вообще нафик не сдался |
|||
|
27
DimG
16.01.09
✎
13:24
|
(24) Сервисы тоже кому то писать надо. А так вообще баян из баянов. Каждый наверн кто приходит в 1с из другого языка на форум подобную тему пишет. Неинтересно уже.
|
|||
|
28
Рэйв
16.01.09
✎
13:24
|
(26)>"возьмём УПП, поставим сверху Инталева, снизу УС, слева УАТ, справа УР"
Если тебе интересно их собирать как кубики, то оно конечно... Но кто-то должен и писать эти самые УПП,Инталева,УС,УАТ и УР. Лично мне это интереснее. |
|||
|
29
i-rek
16.01.09
✎
13:25
|
(28) они достаточно маленькие, чтоб их можно было без проблем написать процедурно
|
|||
|
30
Рэйв
16.01.09
✎
13:27
|
(29)Не суть маленькие или большие. Важно что без чужих кубиков- ты как без рук. И своих писать не сможешь.
|
|||
|
31
Torquader
16.01.09
✎
13:29
|
Кубики-шарики.
Спрашивается, почему тогда Java никто не любит. Там всё из кубиков. А слово "Модуль" широко используется в 1С! |
|||
|
32
i-rek
16.01.09
✎
13:29
|
кстати, говоря о рарусовских продуктах, тех же УАТ и УР - они написаны в стремлении максимально приблизиться к стилю ООП.
Ну там примерно в таком стиле: вместо того чтоб сделать проводку в модуле дока - создаётся высокоабстрактный объект-обёртка, заполняется, вызываются какие-то методы, в какой момент происходит реальная запись проводок - хрен поймёшь И вообще хрен поймёшь, без изучения ихних "классов" и после УПП - смотреть просто тошно |
|||
|
33
Рэйв
16.01.09
✎
13:30
|
(31)Имхо зависит от величины кубиков:)
В конце концов асм - тоже из кубиков..только ооооочень маленьких:) |
|||
|
34
Torquader
16.01.09
✎
13:31
|
Так кто говорит, что надо писать сразу на языке 1С.
Пишешь на чём угодно, а потом написанное конвертишь в язык 1С - иногда оказывается, что куча кода вырождается в несколько строк - а всё остальное за вас напишет компьютер - и отлаживать не надо. |
|||
|
35
eddy_n
16.01.09
✎
13:31
|
(31) Почему это Java никто не любит? Весь нормальный мир на нём сидит.
|
|||
|
36
Черный всадник
16.01.09
✎
13:32
|
(32) Ты в УПП то видел как движения формируються. Вот уж действительно хрен поймешь после рарусовских продуктов!
|
|||
|
37
i-rek
16.01.09
✎
13:32
|
(31) Java никто не любит - ложное утверждение. Это у нас никто не любит, потому что не по русски и потому что для РСБУ кубики плохие :)
|
|||
|
38
i-rek
16.01.09
✎
13:33
|
(36) вопрос привычки. Лучше всё же привыкать к мэйнстриму, чем к разным маргиналам
|
|||
|
39
AlexSSSS
16.01.09
✎
13:35
|
(0) а зачем? что бы все гламурно было?
Какие конкретно задачи было бы удобнее решать с ООП? |
|||
|
40
Torquader
16.01.09
✎
13:36
|
А "быстрота" Java даже кривые реализации 1С переплюнет, но зато Unix+Windows+MacOs совместимо.
|
|||
|
41
AlexSSSS
16.01.09
✎
13:36
|
(4) это где 1С свой язык как ООП выставляло???
|
|||
|
42
Черный всадник
16.01.09
✎
13:39
|
(39) Сокращение числа трудно уловимых ошибок.
|
|||
|
43
i-rek
16.01.09
✎
13:40
|
(42) за счёт некоторого увеличения числа просто чертовски трудноуловимых ? :)
|
|||
|
44
i-rek
16.01.09
✎
13:41
|
Хотя вообще не думаю что количество ошибок сильно связано с наличием ООП
А вот с наличием системы автоматического тестирования - здорово связана, и 1С выпустила такую систему ! Вот этим стоило заниматься |
|||
|
45
MaxS
16.01.09
✎
13:47
|
(0) Зачем стандарты ООП нужно переносить в 1С 8?
Вероятно при разработке этого языка высокого уровня уже использован ООП в языке низкого уровня. На чем 1С сделана? На С? Нам предоставлен предметноориентированный механизм и все ООП уже реализованы во внутренней работе платформы. !? imho |
|||
|
46
Черный всадник
16.01.09
✎
13:58
|
(44) Исправление ошибки на стадии тестирования дороже, чем исправление на стадии кодировки. Думаю программист 1С должен быть более квалифицированным, чем программист C# чтоб писать код с тем же процентом ляпов
|
|||
|
47
TM
16.01.09
✎
14:02
|
(0) Ты же работал с аксой. Там и так с документацией и описаниями на классы бардак, иногда, чтобы понять, что же оно делает, приходится чуть ли не до главного папы лезть и смотреть.
А теперь представь, как всё это реализует средней адинэснег 86-го года рождения и почём это всё поддерживать стоить будет? |
|||
|
48
i-rek
16.01.09
✎
14:03
|
(46) а я думаю наоборот
1С заставляет держаться в русле, в шарпе же полная свобода и вероятность плохого дизайна куда больше |
|||
|
49
Черный всадник
16.01.09
✎
14:07
|
(48) Архитектор ПО действительно может сделать что угодно, а вот программсит загнан в более жестские рамки. В 1С же наоборот.
|
|||
|
50
i-rek
16.01.09
✎
14:11
|
(49) ты видел живые системы на шарпе, к которым приложил руку Архитектор ?
На сколько я знаю, вот уже сколько лет - только небольшие поделки. Если нет - назови мне ERP на шарпе |
|||
|
51
Черный всадник
16.01.09
✎
14:29
|
(50) Непонятно какое отношение имеет "лично видел или нет" к обсуждению концепций систем. Но все же MS SQL 2008.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |