gifts2017

1C, ООП, DDD и дальше

Опубликовал Александр Лапшин (zfilin) в раздел Программирование - Теория программирования

Статья, вместе с которой можно помечтать о том, какой могла бы быть 1Cv9, почитать об ООП, DDD и всяком таком.

Сегодня я хочу пригласить вас немного помечтать. А то что это мы все за код да за код. Давайте о жизни. Ну и о коде, конечно, тоже. Потому что какая жизнь у программиста без кода?

Вот недавно я прочел (если честно, еще дочитываю) очень увлекательную книжку с умным названием "Приемы объектно-ориентированного проектирования" за авторством знаменитой "Gang of Four". В книге идет речь о шаблонах проектирования. Кстати, рекомендую от всей души, если кто еще не читал. Сложно представить себе, что ООП можно изучать без таких простых и наглядных примеров использования, какие приводятся в этой книге. Честное слово, я бы ввел ее в школьную программу, может, и не в школьную, но в университетскую точно. А пытливому уму везде найдется польза и применение. Хоть 1С и не поддерживает ООП в полной мере, но и нашему брату, 1С-нику, крупицу истины из нее почерпнуть не грех.

А теперь давайте про 1С и ООП. Когда-то (до 19 октября 2005) Википедия про язык 1С утверждала, что:

Данный язык является интерпретируемым объектно-ориентированным языком высокого уровня.

(На самом деле это, конечно же, не так, но об этом позже.)
И добавляла, что:

Платформой предоставляется фиксированный набор базовых классов, на основании которых можно создавать любое количество порожденных классов, наследующих их свойства и методы. Разработчик имеет возможность определять собственные дополнительные процедуры и функции, а также свойства порожденных классов (с некоторыми ограничениями). Допускается только одна ступень наследования классов. Не допускается переопределение процедур, описанных в базовых классах.

Если кто не понял, поясню: есть класс "Документы", от него можно создавать дочерние классы, вроде "Приходная накладная" или "Закрытие месяца", эти классы в свою очередь позволяют создавать конкретные экземпляры классов (объекты) - конкретные документы (ага, с номером и датой), которыми и управляет пользователь в режиме "Предприятие".
Не вполне ООП, но достаточно близко. Тут и один уровень наследования классов и разница между классом и экземпляром. Ну а про статические методы я уже недавно писал. Как говорили древние, "для умного достаточно", но недостаточно для программиста, у которого душа просится в полет, а руки тянутся к клавиатуре. Голова в этом всем никак не участвует, поэтому продолжаем мечтать.

А вот если бы!.. А вот если бы 1С была как Axapta или C++, например. Уж там-то наверняка полноценно поддерживается ООП, можно и шаблонов навертеть, объектную модель отгрохать - закачаешься. Только вот беда, у C++ порог вхождения выше. С 1С все просто: открыл конфигуратор - и ты уж программист. Сначала форму печатную поправил, потом расчет суммы подкорректировал, и пошло-поехало (ботинками не кидайтесь, пожалуйста, сам так начинал и еще кучу народа знаю такого же). А открой проект на C++ (сиплю-сиплю, а ничего не выходит) - чего-то не там переставил, и все - не компилируется в лучшем случае. Сложно и дорого. Потому-то 1С так мил сердцу мелкого бизнесмена, что не нужны заоблачные бюджеты на разработку, да и типовых конфигураций пруд пруди. Ну и нам, 1С-никам, заодно тепло и сухо. Но объектов хочется.

И вот недавно сама 1С подкинула интересную мысль. Помните релиз 8.2.14? Там, где общие реквизиты вернули. Так вот, что такое общие реквизиты с точки зрения ООП? Не что иное, как обычные свойства класса "Документы". Класс документы-то всеми подклассами наследуется, и свойства, стало быть, тоже. А что если разрешить не один уровень наследования от документов, а несколько? Вот это было бы здорово. Захожу я в конфигуратор (1Сv9, конечно же!), добавляю в документы группу "Товарные документы". Сразу в эту группу документов реквизиты добавляю, типа "Контрагент", "Отпустил", "Принял" и ТЧ "Товары" с такими реквизитами - "Номенклатура", "Количество", "Цена". И тут же в модуле группы документов пишу код, что, мол, если количество поменялось - сумму пересчитать, если сумма - цену. Ну, вы все эти процедуры обработки реквизитов и сами по сто раз писали, чего я рассказываю. А потом уже в группе документов "Товарные документы" создаю "Приходную накладную", "Расходную накладную", ну и все, что положено. И у них все эти реквизиты и ТЧ уже есть - унаследовались от товарных документов. Просто волшебство и сплошной "ахалай-махалай" получается. Конечно, кое-где добавляю особенностей для каждого класса, реквизитов специфичных, но каркас работает общий. Удобно, черт возьми. Надо разрядность цены в товарных документах поменять - р-р-р-раз! - и поменял одним махом. Реквизит-то один. И код по обработке один. Так, по мелочи, потом пройтись останется. Ну, естественно, кроме группы "Товарные документы" делаю группу "Кассовые документы" из общего корня - "Документы". Там свои особенности, но общего тоже много. И так далее, и так далее.
Про то, что похожие фокусы со справочниками и другими объектами работают, говорить не буду: сами спокойно дофантазируете, если хотите.
Тут же, кстати, и общие модули немного разгрузятся. Есть модуль группы документов, там и обработки для этой группы документов можно разместить. Например, всякие поиски цен, обработки подборов и прочее. Оно ж все, по логике, к товарным документам относится, верно ведь? Вот пусть в модуле группы "Товарные документы" и лежит, чтобы долго не искать.
И подсистемы тоже как-то оборачиваются в новом свете. Теперь те же документы объединяются в группы с иерархией намного лучше, чем это делали подсистемы. Вот есть группа "Кассовые документы", и все, что относится к кассе, находится в ней. И это обоснованно с точки зрения наследования и структуры кода. Хотя с отношением к нескольким подсистемам проблема получается, но, наверное, и тут какое-то решение есть.
Конечно, это еще не полноценное ООП, но хороший шаг вперед. Или назад?

Давайте посмотрим, что Википедия сейчас пишет про 1С:

Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня.

Ключевое слово тут "икра" предметно-ориентированным. На самом деле это очень важно. Именно предметно-ориентированность позволяет быть языку 1С "заумью с человеческим лицом". Когда такие понятия, как "документ" или "проводка", встроены в само ядро платформы, то всякие надуманные абстракции вроде классов и подклассов тихо бледнеют и не отсвечивают. В нормальных "больших" языках программирования тоже хотят так уметь. Даже целое направление придумали - DDD (русская Википедия, извините, об этом еще не в курсе). Так не испортим ли мы 1С, если начнем туда тянуть все эти наследования? Не знаю. Если бы я был разработчиком платформы (во куда хватил! но мы ж тут помечтать договорились, да?), я бы по-тихому все-таки протащил бы такую доменную сущность, как группы документов, не особо афишируя, что оно все торчит из ООП. В принципе, в рамках доменной модели (не путать с объектной) понятие "группа документов" вполне интуитивно понятно, ценно и достаточно функционально. Так что катастрофы тут не предвидится. Катастрофа предвидится, когда мы заговорим о множественном наследовании, но тут могу заметить, что это:

...концепция, поддерживаемая частью объектно-ориентированных языков программирования...

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

Оставляю вас за этим занятием и хочу пожелать вам хорошего дня и хорошего кода.

P.S.: Сильно не ругайте, если кто чем недоволен, о грубых ляпах пишите - буду исправляться.

Оригинал статьи в блоге автора

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Ожерельев (Поручик) 08.06.11 19:07
Проголосую из стадного инстинкта, хотя недоволен пунктуацией.
>>>> Сильно не ругайте если кто чем не доволен
2. Сергей Ожерельев (Поручик) 08.06.11 19:11
>>> С 1С все просто - открыл конфигуратор, и ты уж программист.
Да, и хочется такого недопрограммиста об стенку, долго и больно.
3. Ийон Тихий (cool.vlad4) 08.06.11 19:17
потому, что 1С создавалась изначально как dsl, а потом пошло поехало...за статью спасибо,... gof это ветхий завет для программиста... а code complete новый...кнут наверное евангелие...
4. Александр Лапшин (zfilin) 08.06.11 20:25
Поручик, Пунктуацию поправлю конечно же. Про об стену - согласен. Иногда такого понапишут! Но все-же верю, что любой недопрограммист может стать профессионалом и гуру, было бы желание. Главное не лениться, читать побольше и общаться с коллегами.

cool.vlad4, Спасибо за хороший отзыв. Я бы сюда еще Фаулера добавил, без рефакторинга, ведь, никуда.
cool.vlad4; +1 Ответить 1
5. Ирина Пятакова (Alraune) 08.06.11 20:57
Пишите еще, Вас интересно читать :)
6. Котэ Пруидзе (kote) 08.06.11 21:01
Раз уж начали с шаблонов проектирования, то вот Вам: попытка реализации MVC (Model-View-Controller) на 1С
7. Котэ Пруидзе (kote) 08.06.11 21:13
.. ээх, люблю помечтать тоже :) Идея про иерархию групп (увеличение уровней) тоже думал и это вполне реализуемо.. и из фишек ООП - переопределение методов объектов тоже реализуемо.
Только пойдет ли на это фирма 1С - это понравится не всем 1С программистам.. даже, думаю, большинству не понравится, т.к. с ходу разобраться в ООП коде сложнее, чем в скриптовом..
Кроме того, проектировать приложения станет сложнее - придется продумывать как раскидать по уровням методы объектов.
==
Наверное тоже напишу статью про то, чего 100% не хватает 1С и понравится всем без исключения программистам. Вот только закроем проект :))
8. Александр Лапшин (zfilin) 08.06.11 22:22
Alraune, Спасибо, очень приятно такое слышать. Если по-честному, то я всегда завидовал таким "мастерам текста", как Джоел Спольски (пусть даже и в переводе) и хотел писать не хуже. До Спольски мне далеко, но, видимо что-то получается. =)

kote, Оу! Шедеврально! MVC с реализацией на 1С! Обязательно почитаю! А статью пишите, было бы интересно посмотреть что еще можно придумать хорошего.
9. Александр Лапшин (zfilin) 08.06.11 22:47
(offtopic: Не очень удобно, что для того, чтобы подписаться надо оставлять сообщение. Жаль, что нет ссылки "подписаться".)
10. Ирина Пятакова (Alraune) 08.06.11 23:41
(9)
Жаль, что нет ссылки "подписаться".)

Да ну, а это тогда что? :)
Прикрепленные файлы:
Поручик; +1 Ответить
11. Ростислав Кузьмин (Kuzja_R) 09.06.11 00:43
И технологию скинов для веб-интерфейса, пожалуйста. :) Раз уж мечтать собрались.
12. Владислав Лисовенко (VladC#) 09.06.11 02:48
интересная идея про группы документов, неплохо было бы иметь возможность создавать общий код для таких групп и создавать какую-то часть общих форм и макетов для этих документов
13. xs19 (Oleg_nsk) 09.06.11 05:45
Мечтать так мечтать... Мне в 1с не хватает следующих возможностей:
1. Рисование штатными средствами;
2. Потоковое чтение файлов;
3. Вставка кодов ассемблера;
4. Возможность компилировать отдельные exe файлы;
5. Решение дифуров эвристическими методами;
6. Прочее... :D
14. Александр Рытов (Арчибальд) 09.06.11 07:46
Приятно почитать текст, написанный на человеческом языке. А если он к тому же содержательный - совсем хорошо. Плюс несомненный.
15. Александр Лапшин (zfilin) 09.06.11 10:05
Alraune, Ой, как неловко получилось! Совсем слепой. =) Спасибо за подсказку!
Kuzja_R, Ох, пусть сначала доточат то, что там уж есть в веб-интерфейсе, а потом уж скины.
VladC#, Да, общий код это важно. так называемый "модуль группы документов". Плюс такие вещи, как "Родитель" - для обращения к коду на уровень выше, может быть какое-то переопределение функций в иерархии.
xs19, Поддержка 3D, 4D, 4G и зюзяпликов! =)
Арчибальд, Спасибо!
16. Ийон Тихий (cool.vlad4) 09.06.11 10:17
(4) а да,Фаулер , посыпаю голову пеплом...недавно как раз ссылку на этом форуме на него давал...пишите еще, интересно читать...
17. Адриан Адриан (adrian) 09.06.11 10:46
В отчетах тоже можно было бы сделать куда красивее наследованием чем текущие "Универсальный обчет" или "Общий отчет"
18. Семен Слепаков (sa1m0nn) 09.06.11 11:22
Статья неплохая, спасибо.
Единственно, сам г-н Сергей Нуралиев вот чего говорит об общих реквизитах "... они не принадлежат документам..." (где-то в конференции читал). У этих общих реквизитов может быть другое назначение, в отличие от 7-рочных - они могут пронизыватЪ насквозь конфигурацию для возможности разделения данных, соответственно, МОГУТ цепляться и к справочникам, регистрам, ПВХ, задачам и проч., использование их в прикладной бизнес-логике вообще не рекомендуется (в v8update написано), и ограничений у них масса - хотя бы тот факт, что в журнал документов их вытащить нельзя.
Ну и еще про фантазии - пожалуй, вменяемого рисования не хватает. И нативного клиента под линух. Остальное устраивает, справиться бы с тем, что есть, не до хотелок уж :)
cleaner_it; +1 Ответить 2
19. Lara.Builova 09.06.11 11:57
(18) ЧИТАЙ документацию http://downloads.v8.1c.ru/content/Platform/8_2_14_439/V8AddDoc.htm#_Toc292348595
"Общий реквизит это реквизит, добавляемый ко всем или многим объектам конфигурации. Общий реквизит может использоваться в двух сценариях:

· как общий реквизит, т.е. для упрощения указания реквизита, который присутствует во всех или многих объектах конфигурации, в которых этот реквизит сохраняет свой смысл и тип. В качестве примера такого использования общего реквизита можно привести поле произвольного комментария в документах прикладного решения.

· как составная часть разделения данных — специального механизма, позволяющего разделить все хранимые данные, а также работу прикладного решения, на отдельные части. При этом у общего реквизита включается разделение данных. В качестве примера такого использования можно привести понятие абонента, когда в одной физической информационной базе могут независимо работать различные «владельцы» данных, при этом пользователи такого прикладного решения будут считать, что в информационной базе кроме «их» данных нет больше ничего."
...
"Режим работы общего реквизита задается с помощью свойства Разделение данных. Если это свойство установлено в значение Не использовать, то созданный объект конфигурации будет использоваться только как реквизит, входящий в состав нескольких (или всех) объектов конфигурации. Если свойство установлено в значение Разделять — общий реквизит будет использоваться в качестве разделителя данных"
20. Семен Слепаков (sa1m0nn) 09.06.11 12:05
Lara.Builova пишет:

(18) ЧИТАЙ документацию http://downloads.v8.1c.ru/content/Pla...c292348595


Я это читал и пользовался, более того, присутствовал на партнёрском семинаре, где про это рассказывалось. Видимо, криво выразился, извиняйте.
Буквально цитата из этой же статьи: "СОВЕТ. Не следует использовать общие реквизиты для описания данных, которые являются частью бизнес-логики конкретных объектов.", о чем говорил выше. Сделайте Комментарий общим реквизитом, в журнале документов его не найдете. Потому считаю, что использовать кроме сервисного назначения эти реквизиты - не айс.
21. Lara.Builova 09.06.11 12:17
(20) Ваше "использование их в прикладной бизнес-логике вообще не рекомендуется"
Несколько не соответствует смыслу фразы из документации
"СОВЕТ. Не следует использовать общие реквизиты для описания данных, которые являются частью бизнес-логики конкретных объектов."
То есть, по сути не являющимися ОБЩИМИ, в одних объектах есть, в других нет.
Хотя позволено исключать ненужные объекты из состава общего реквизита:
"для выбора объектов, в состав которых необходимо включить общий реквизит, следует воспользоваться свойством Состав".
Так что что имелось ввиду под этим СОВЕТОМ - кто как может, тот так и понимает.
22. Семен Слепаков (sa1m0nn) 09.06.11 13:05
Lara.Builova пишет:

(20) Ваше "использование их в прикладной бизнес-логике вообще не рекомендуется"

Несколько не соответствует смыслу фразы из документации

...

Так что что имелось ввиду под этим СОВЕТОМ - кто как может, тот так и понимает.


Слова Сергея Нуралиева:
"Здесь имеется в виду, что механизм не предназначен для описания общей бизнес-логики документов, справочников, а предназначен для реализации служебных (сервисных, технологических) реквизитов. По нашей оценке использование его в части основной бизнес-логики будет весьма сложным в разработке и поддержке, и не даст существенного преимущества (увеличив сложность)."
"Основная суть тут в том, что это поля, которые добавляются «снаружи» к данным, без изменения их самих объектов метаданных (аналогично подпискам на событие).
Разумеется, при добавлении функционала, прежде всего, решалась задача разделения данных. Но была реализована и возможность использования общих реквизитов без разделения."
http://partners.v8.1c.ru/forum/thread.jsp?id=922841&partt922841=1

Я уже пробовал на жизненной конфигурации использовать казалось бы по их "основному предназначению" - Организация, СуммаДокумента, Ответственный - реквизиты, которые так и просятся в общие. Но вот не очень удачно.
23. Lara.Builova 09.06.11 13:24
(22) Я вот как раз читаю это обсуждение и ваша ссылка :)
Долго из СН тянули и наконец признался:
"Основная цель - реализация «Multitenancy». То есть, обеспечение работы в одной информационной базе нескольких независимых или слабо зависимых организаций"
И вот первый пошОл - http://www.intalev.ru/index.php?id=29830&s=07Jun
Остальные рассуждения про ОР (ну да, мы надеялись на реально общие реквизиты) - бессмысленны и опция "без разделения" сделана для отвода глаз от основного, но видя какой интерес вызвали ОР, воткнули СОВЕТ, как бы да и как бы нет ))))))
24. Роман Осадченко (cleaner_it) 09.06.11 16:48
(19) Так вот для чего добавили общие реквизиты.... Инталев и 1С создали (бла-бла-бла...) совместную контору по предоставлению услуг SaaS, мне сегодня в рассылке письмецо пришло. Там разделение учета нужно как воздух, факт.
25. Роман Осадченко (cleaner_it) 09.06.11 16:51
(23) Не дочитал:) Опередила:)
26. Lara.Builova 09.06.11 17:33
(24) Если бы еще точно понимать, что же такое SaaS, тоже каждый по своему понимает. С ОР больше вопросов, чем ответов, пока во всяком случае...
27. Роман Осадченко (cleaner_it) 09.06.11 17:46
(26) По простому - аренда ПО. Но для хранения своих учетных данных я использовать SaaS не рекомендую:) Небезопасно:)
28. Lara.Builova 09.06.11 18:07
(27) Не путай Multitenancy в (23) и SaaS.
Приведи пример использования SaaS и на на чем основано "не рекомендую".
29. Роман Осадченко (cleaner_it) 10.06.11 01:02
(28) Ничего я не путаю. Вот выдержка из (23) по ссылке
Фирма «1С» — лидер софтверного сектора российской компьютерной индустрии и один из лидеров российского рынка консалтинга – группа компаний «ИНТАЛЕВ» договорились о сотрудничестве и основали совместное предприятие – компанию 1CAir (ООО «1СиЭйр.ру»). В планах новой компании – стать ведущим игроком на отечественном рынке программных продуктов для платформы «1С: Предприятие», продаваемых по модели SaaS. ...
SaaS (Software as a Service) или аренда программного обеспечения представляет собой альтернативу привычного приобретения лицензий на программное обеспечение (ПО). ПО размещается не на компьютерах покупателя, а в дата-центрах поставщика SaaS-услуг – компании 1СAir. Клиенту предоставляется доступ к бизнес-приложениям посредством защищенного соединения по каналам Интернет. При этом технические требования к клиентским компьютерам – минимальны, вся обработка данных происходит на удаленных серверах. Арендовать программные продукты 1С сможет любая компания, независимо от того существует у неё собственная база или только планируется начать работу с «1С: Предприятие».


Самый простой пример SaaS - web-сервера (услуга хостинга). По поводу рекомендаций: есть не мое мнение - "Вероятность того, что содержимое вашей базы данных будет изменена сотрудниками датацентра в немереное количество раз меньше, чем вероятность того же действия со стороны "проверяющих"", с которым я просто не согласен. На самом деле не могу принять, как это так - отдать свою базу данных в датацентр. Хотя, начинающим конторам может и подойдет.

PS: Есть один несомненный плюс: для тестирования ПО, без его покупки. Однозначная экономия на пилотных проектах!
30. Сергей Ожерельев (Поручик) 10.06.11 02:03
>>>> web-сервера (услуга хостинга)
>>> как это так - отдать свою базу данных в датацентр
А базы данных интернет-магазинов или каких-нибудь сервисов, в которых тоже есть информация поконфиденциальней, чем база какого-то ООО "Стеклобойтара".
31. Роман Осадченко (cleaner_it) 10.06.11 06:35
(30) Серьезные конторы, у которых есть информация поконфиденциальней, имеют свои сервера/датацентры, а у других просто выбора нет... Если бы компании могли обеспечить бесперебойную, безопасную и быструю (при достаточно большой нагрузке) работу интернет-магазина из своео офиса - они именно так и делали-бы. И, согласитесь, что отдать свою базу в датацентр у нас и на западе - это две большие разницы. Я не рискну:)

PS: Пусть это останется моим личным мнением, если вы не согласны. Решать в любом случае клиентам этих сервисов
32. MaxDavid (MaxDavid) 10.06.11 08:50
Господа, у меня вот такой вопрос появился
Читаю ссылку от Lara.Builova:
Аренда ПО позволит клиентам существенно экономить не только на обновлениях и поддержании работоспособности баз данных 1С

То есть обновления они берут на себя? А если необходимо подточить конфигурацию "под клиента"? Или это рассчитано только на тех, кто работает в "чистой" базе?
33. Роман Осадченко (cleaner_it) 10.06.11 09:16
(32) Денежку за это брать будут, 100%. Экономия за счет того, что не нужны собственные ИТ-специалисты
34. Lara.Builova 10.06.11 10:13
(32) >> Или это рассчитано только на тех, кто работает в "чистой" базе?
Видимо ДА, если речь идет о разделителе именно данных.
35. Александр Рытов (Арчибальд) 10.06.11 10:18
(33) Точно. А при проживании холостяком в гостинице экономия за счет того, что не готовится домашняя еда, не платится налог на недвижимость, не требуется содержать жену.
36. Lara.Builova 10.06.11 11:09
(29) Есть тонкости применения термина SaaS, в обществе распостранилось понятие, что это аналог облака. И вики перенаправляет на более точное Software on-demand. Видимо поэтому на партнерской конференции СН предпочитает называть область применения разделителя общих реквизитов как "мультиаренда". Как то так.
37. Lara.Builova 10.06.11 11:14
(33) И не только собственные, но и приходящие :). Вобщем это рынок для мелких контор и обслуживающих их мелких фри и фра. Следущая ступень укрупнения крупных айтиконтор и отмирания мелких.
38. MaxDavid (MaxDavid) 10.06.11 11:47
(37)
Помимо установки и поддержки 1С есть еще обслуживание компьютеров и сетей. Опять же обучение основам работы, мелкие консультации. Для провинции оплачивать телефонные консультации московских специалистов вряд ли дешевле разового приглашения местного.
39. Сергей Ожерельев (Поручик) 10.06.11 11:50
Мелкие не отомрут. В любой крупной конторе обязательно найдётся одна или несколько пассионарных личностей, которым в конце концов надоедает пахать на кого-то и они сливаются или на волю или .... организовывают свою контору, но с какими-нибудь эксклюзивными услугами. Потом эта контора, возможно, разрастается и находятся ...
40. Lara.Builova 10.06.11 12:47
(38) Ну не знаю, решать будут владельцы бизнеса - что им дешевле и что удобнее. На западе очень распостранено.
При наличии интернета "оплачивать телефонные консультации" не надо.
(39) Мелкие айтиконторы отомрут, как только рынок уменьшится. Если идея аутсорсинга по типу аренды будет востребована массами (мелкими бизнесменами), то рынок уменьшится, вопрос в том как скоро это произойдет, но к этому все идет.
Знаю конторы, которые принципиально не используют банк-клиент, и не потому, что отсталые, а потому что не доверяют электронным деньгам. Вот они точно не воспользуются этим. И таких немало.
41. Сергей Ожерельев (Поручик) 10.06.11 12:50
(40) В Москве может быть, но не в Росии.
42. fastwriter (fastwriter) 10.06.11 14:48
"А вот если бы 1С была как Axapta или C++, например. Уж там-то наверняка полноценно поддерживается ООП..."

В движке Аксапты поддержка ООП очень сильно урезанная, ему в этом отношении до С++ и прочих нормальных ЯП далековато.

И, подозреваю, это не случайно. Ибо между системами учета сейчас наблюдается сильнейшая конкуренция, и у них есть острая необходимость скорейшего вывода новых версий с необходимыми фичами.

А полноценный ООП - вещь может и хорошая, но именно в этом случае объективно находящаяся по важности на втором (или далее) месте. Ибо прикладные объекты конфигураций в движках этих систем по сути сильно напоминают уже готовые библиотеки классов, возможности которых процентов эдак на 80 покрывают все потребности. Оставшимися 20-ю можно пренебречь, так как они не необходимы.

Таковы мрачные скалы суровой реальности. О которые разбиваются волны самых прекрасных мечт. :)
43. Михаил Ражиков (tango) 10.06.11 14:50
положить базу этому дяде можно только белую //пожалуйста, если кто-нибудь захочет порассуждать о конфиденциальности, сделайте это вне связи с моим сабжем//
а смысл?
если у тебя есть "оперативная" - найдется место и для белой
если у тебя есть денег для "оперативной" только в записной книжке или екселе - купишь эмулятор.
вообще интересно посмотреть на развитие этой бизнес-идеи 1с+инталев: насколько на самом деле они далеки от народа?
44. Ийон Тихий (cool.vlad4) 10.06.11 17:33
(42) не поэтому, стоит им хоть на миг сделать полноценный язык, в тотчас же они потеряют всех клиентов, - нафига им после этого 1С и его периодически, запаздывающие обновления. С 7.7 слезать-то не хотят - думают на ней все можно, а уж после полнофункционального ООП языка+библиотека шаблонов/классов/фрэймворк никто и подавно слезать не захочет.
45. MaxDavid (MaxDavid) 10.06.11 18:19
(44)
Не понял логики. Получается, обновления сейчас нужны только из-за того, что язык неполноценен? А если 1С, предположим, станет полноценным языком, тогда фикси и франчи сами начнут отслеживать изменения в законодательстве и выпускать обновления - каждый свое?
Слабо верится, если честно... )
46. Ийон Тихий (cool.vlad4) 10.06.11 18:33
(45) Вы путаете обновления печатных форм и обновления технологической платформы. Между прочим некоторые (и их немало) отслеживают изменения в законодательстве и бывает меняют ПФ и т.д. и неплохо зарабатывают, но я не про это. Я про то, что совсем очевидно - никто не будет открывать коммерческий продукт больше чем требуется, никто не будет делать нормальный язык(что такое нормальный?), это все проприетарный dsl, и правильно, кроме мечт тут ничего больше нет.
47. Ийон Тихий (cool.vlad4) 10.06.11 18:34
Сейчас, конечно, 1С разбежится и сделает настоящий Visual Конструктор 1С - клепай ERP не хочу...не будет она такого делать...никогда...
48. Ийон Тихий (cool.vlad4) 10.06.11 18:36
(45) и связь обновлений с полноценностью или нет языка я тоже никак не упоминал...я имел ввиду то, что вполне очевидно, клиенты зависят от продукта 1С и 1С эту связь всячески поощряет...а в моем понимании полноценность это независимость, понятие субъективное, наверняка другие по другому считают, оттого видят в моих словах нечто иное...вообще признаюсь чем больше в вопросе (я по крайней мере) начинаю разбиратся, тем больше вопросов возникает, потому все это ИМHО.ни на что не претендую...
49. Роман Ложкин (webester) 12.06.11 19:23
Мечтатели чота активизировались:)
50. Яков Коган (Yashazz) 14.06.11 01:40
Вот когда на 1С можно будет делать exe-файлы, независимые от наличия платформы и ключа, тогда это будет действительно эпохальное событие, слом идейной схемы, смена концепции. Это считаю нереальным. А всё остальное рано или поздно появится, вслед за общемировыми тенденциями разработки.
51. Александр Шишкин (Шёпот теней) 14.06.11 07:56
... чего мечтать то ... если себестоимость получаем раз в квартал ... хоть с ОПП ... хоть с рисованием ... вот ...
52. Ruslan (rus128) 15.06.11 18:56
Интересные фантазии, хотя по поводу переноса общих модулей в модуль группы документов - вопрос спорный (мало ли где мне подбор товаров понадобится?).
ЗЫ: "Сразу в эту группу документов реквизиты добавляю, типа "Контрагент", "Опустил", "Принял" и ТЧ "Товары""
"Опустил" или "Отпустил"? :-)
53. Сергей Ожерельев (Поручик) 15.06.11 20:46
По большому счёту в программах (конфигурациях) 1С нужна только одна большая кнопка "Сделать фсё и нииппёт". Остальное не столь важно.
54. Александр Лапшин (zfilin) 16.06.11 01:16
(52) "Отпустил", конечно. =)
(53) =)
55. Станислав (stas_undead) 16.06.11 08:04
Вернусь к 1CAir. Никто кулькулятором не пользовался на их портале? Очень забавные цифры показывает. Например, 10 подключений к БД, 10 подключений по RDP - 7600 руб в месяц. Мне кажется, что это чересчур...
56. ZERO_ 16.06.11 14:03
(53) Это точно! (Мне тоже часто пользователи аналогичное говорят...)
А для начальника, - тоже один большой индикатор.
Зеленого цвета, - все пучком, желтого, - че-то не то..., красного, - Все, писец! :D
57. Евгений Матыцин (ringworm) 29.06.11 15:21
Сомневаюсь, что разработчики платформы пойдут на такие изменения.
Добавление наследования не только усложняет их синтаксический анализатор, оно еще и сводит к нулю всю оптимизацию доступа к СУБД.
Представьте, что вы меняете тип значения у пары реквизитов базового класса, от которого производится куча других.
Как предсказать заранее, на уровне оптимизатора запросов, какой способ обращения к субд будет наиболее эффективным.
Придется делать надежный но медленный код.
Представьте, что мы добавим возможность позднего динамического связывания и все...
После таких доработок платформы MS SQL уже не сможет придумать способа оптимизировать выполнение запросов сервера 1с.
Я не говорю, что все именно так и будет (мол невозможно это и все тут). Я говорю, что затраты на развитие, тестирование и оптимизацию такой платформы могут сделать ее непривлекательной как со стороны разработчиков, так и со стороны покупателей.
ИМХО гораздо интересней была бы возможность более глубокой интеграции 1С с ОС.
Например добавление полноценной поддержки технологии .NET в режиме клиента и сервера без прыжков и ужимок через COM-объекты.
Тогда мы могли бы все сложные моменты, которые трудно реализовать средствами платформы создать например на C# (кому что нравится).
Это было бы чудесно. Можно было бы выполнять сложные расчеты с применением распределенных сетей. Можно было бы полноценно интегрировать 1С с WEB.
58. Александр Лапшин (zfilin) 29.06.11 15:34
(57) Согласен. И в этом есть правда.
59. Сергей Калашников (kalashnikovS) 16.12.11 18:10
1С исторически возник на C++ поэтому в принципе поддрживать ООП в достаточном качестве сможет.
Но захотят ли этог сами разработчики платформы и заказчики. Их понять можно, есть хочется всем отсюда такая любовь к ключям hasp и нежелание сделать "народную среду программирования". Если бы был СССр и госзаказ тогда да такое впринципе БЫЛО возможно.
но условиях открытой настеж рыночной экономики и ВТО ничего не получится, заранее и заведомо.
для людей не получется.
Но даже в 8.1 все с наследованием классо можно опосредованно сделать в рамках 1 конфигурации
60. Анатолий Васильченко (zveruga56) 23.04.12 10:01
(59) kalashnikovS,

1С исторически возник на C++

Версии для DOS были на клипере написаны :-)

Когда после семерки попробовал вызвать печать документа по типу Док.Печать() и получил облом, то я был неприятно удивлен. Все-же ждал от восьмерки ООП.
61. Сергей Калашников (kalashnikovS) 23.04.12 11:25
Версии для DOS были на клипере написаны :-)
(60) zveruga56,

надо же! впервые слышу.

Единственное что могу сказать 1С 8ка это бухгалтерский продукт. Дорабатывать 8ку в угоду всем и вся 1Сцы не будут.Да и зачем это ИМ? Но ничто не мешает, тому кто действительно дока в программировании подключить (даже в 7ке !!!) дополнительные библиотеки dll. Например, как подключена V7PLUS.DLL или библиотеки работы со сканерами. Или еще топрнее в 7ке процедуры: КомандаСистемы(<СтрокаКоманды>) и ЗапуститьПриложение(<СтрокаКоманды>) сохранил в файл свои данные, обработал их в чужой среде по крутым алгоритмам, и получил их обратно. Вот выход для тех, кому действительно нужно ООП.

а есть еще 1С OLE Automation, OLE V81.Application, V81.COMConnector и т.п...
вот ссылочка кому интересно
http://www.forum.mista.ru/topic.php?id=249156[url=http://forum.infostart.ru/redirect.php?url=aHR0cDovL3d3dy5mb3J1bS5taXN0YS5ydS90b3BpYy5waHA/aWQ9MjQ5MTU2]v7: .Net: VB.Net 2005, клиент PocketPC, сервер OLE 1С 7.7[/url]
62. Александр Лапшин (zfilin) 23.04.12 20:07
(61) kalashnikovS, Позволю себе с вами не согласиться. ООП в платформе было бы хорошо не потому, что с помощью ООП можно делать "крутые алгоритмы", а с помощью платформы нельзя. А все дело в том, что при следовании определенной парадигме в ООП определенные рутинные вещи решаются проще и, быстрее и с минимальными затратами. Цель тут не "сделать круче", а упростить работу разработчику "в быту и рутине".
Но, вот тут коллеги на эту тему имеют очень развернутую дискуссию, так что лучше высказываться там: http://forum.infostart.ru/forum24/topic59005/