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

08.06.11

Разработка - Рефакторинг и качество кода

Статья, вместе с которой можно помечтать о том, какой могла бы быть 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С v8.3 Конфигурации 1cv8 Бесплатно (free)

В последнее время термин «чистый код» стал очень популярным. Появились даже курсы по данной тематике. Так что же это такое?

16.09.2024    13972    markbraer    64    

38

Рефакторинг и качество кода Программист Бесплатно (free)

В статье рассматривается отказ от использования процедур и унификация формата ответа функций. Способ описывается на примере развития абстрактной информационной системы, работающей с PDF файлами.

10.09.2024    917    acces969    4    

6

Рефакторинг и качество кода Бесплатно (free)

Для быстродействия большой базы данных важно не только оптимизировать запросы, но и соблюдать стандарты при разработке подписок на события, обработок для массового изменения данных, в реализации обработчиков обновления, расширений, регламентных заданий и в архитектуре СКД-отчетов. Расскажем о нюансах разработки компонентов большой системы.

28.08.2024    1163    Chernazem    3    

6

Рефакторинг и качество кода Программист Бесплатно (free)

SOLID – принципы проектирования программных структур (модулей). Акроним S.O.L.I.D. образован из первой буквы пяти принципов. Эти принципы делают код более гибким, упрощают разработку. Принято считать, что принципы SOLID применимы только в объектно-ориентированном программировании. Но их можно успешно использовать и в 1С. Расскажем о том, как разобраться в принципах SOLID и начать применять их при работе в 1С.

22.08.2024    10204    alex_sayan    41    

52

Рефакторинг и качество кода Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим основные принципы шаблона проектирования "Стратегия" на простом примере.

25.06.2024    4199    MadRave    34    

27

Рефакторинг и качество кода Программист Платформа 1С v8.3 Абонемент ($m)

В статье расскажу и покажу процесс проведения Code-review на примере обработки с GitHub.

1 стартмани

04.06.2024    6276    mrXoxot    55    

42

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

Поделюсь своим опытом аудита кода авторских продуктов с Infostart.ru как одним из элементов применения DevOps-практик внутри Инфостарт. Будет настоящий код, боевые скриншоты, внутренние мемы от команды ИТ-лаборатории Инфостарт и прочее мясо – все, что любят разработчики.

10.04.2024    13356    artbear    85    

108

Рефакторинг и качество кода Программист Платформа 1С v8.3 Россия Бесплатно (free)

Предлагаю вашему вниманию советы мастеров древности. Программисты прошлого использовали их, чтобы заострить разум тех, кто после них будет поддерживать код. Гуру разработки при найме старательно ищут их применение в тестовых заданиях. Новички иногда используют их ещё лучше, чем матёрые ниндзя. Прочитайте их и решите, кто вы: ниндзя, новичок или, может быть, гуру? (Адаптация статьи "Ниндзя-код" из учебника JavaScript)

01.04.2024    4236    DrAku1a    15    

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

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

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

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

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

· как составная часть разделения данных — специального механизма, позволяющего разделить все хранимые данные, а также работу прикладного решения, на отдельные части. При этом у общего реквизита включается разделение данных. В качестве примера такого использования можно привести понятие абонента, когда в одной физической информационной базе могут независимо работать различные «владельцы» данных, при этом пользователи такого прикладного решения будут считать, что в информационной базе кроме «их» данных нет больше ничего."
...
"Режим работы общего реквизита задается с помощью свойства Разделение данных. Если это свойство установлено в значение Не использовать, то созданный объект конфигурации будет использоваться только как реквизит, входящий в состав нескольких (или всех) объектов конфигурации. Если свойство установлено в значение Разделять — общий реквизит будет использоваться в качестве разделителя данных"
24. cleaner_it 209 09.06.11 16:48 Сейчас в теме
(19) Так вот для чего добавили общие реквизиты.... Инталев и 1С создали (бла-бла-бла...) совместную контору по предоставлению услуг SaaS, мне сегодня в рассылке письмецо пришло. Там разделение учета нужно как воздух, факт.
26. Lara.Builova 09.06.11 17:33 Сейчас в теме
(24) Если бы еще точно понимать, что же такое SaaS, тоже каждый по своему понимает. С ОР больше вопросов, чем ответов, пока во всяком случае...
27. cleaner_it 209 09.06.11 17:46 Сейчас в теме
(26) По простому - аренда ПО. Но для хранения своих учетных данных я использовать SaaS не рекомендую:) Небезопасно:)
28. Lara.Builova 09.06.11 18:07 Сейчас в теме
(27) Не путай Multitenancy в (23) и SaaS.
Приведи пример использования SaaS и на на чем основано "не рекомендую".
29. cleaner_it 209 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: Есть один несомненный плюс: для тестирования ПО, без его покупки. Однозначная экономия на пилотных проектах!
36. Lara.Builova 10.06.11 11:09 Сейчас в теме
(29) Есть тонкости применения термина SaaS, в обществе распостранилось понятие, что это аналог облака. И вики перенаправляет на более точное Software on-demand. Видимо поэтому на партнерской конференции СН предпочитает называть область применения разделителя общих реквизитов как "мультиаренда". Как то так.
20. sa1m0nn 28 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 28 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
Остальные рассуждения про ОР (ну да, мы надеялись на реально общие реквизиты) - бессмысленны и опция "без разделения" сделана для отвода глаз от основного, но видя какой интерес вызвали ОР, воткнули СОВЕТ, как бы да и как бы нет ))))))
25. cleaner_it 209 09.06.11 16:51 Сейчас в теме
(23) Не дочитал:) Опередила:)
30. Поручик 4692 10.06.11 02:03 Сейчас в теме
>>>> web-сервера (услуга хостинга)
>>> как это так - отдать свою базу данных в датацентр
А базы данных интернет-магазинов или каких-нибудь сервисов, в которых тоже есть информация поконфиденциальней, чем база какого-то ООО "Стеклобойтара".
31. cleaner_it 209 10.06.11 06:35 Сейчас в теме
(30) Серьезные конторы, у которых есть информация поконфиденциальней, имеют свои сервера/датацентры, а у других просто выбора нет... Если бы компании могли обеспечить бесперебойную, безопасную и быструю (при достаточно большой нагрузке) работу интернет-магазина из своео офиса - они именно так и делали-бы. И, согласитесь, что отдать свою базу в датацентр у нас и на западе - это две большие разницы. Я не рискну:)

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

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

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

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

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

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