Если хочется ООП с наследованием и полиморфизмом

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

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. a_a_burlakov 228 21.07.22 14:01 Сейчас в теме
Если хочется ООП с наследованием и полиморфизмом...
Если хочется функционального программирования с функциями высшего порядка и map, filter, reduce...
Если хочется низко-низкоуровневого программирования с битами и байтами...

Ответ, по-моему, один: переходите на другие языки. Наша 1С - она особа весьма специфичная и неприхотливая. Это как девушка, которая выросла и работает в деревне. Её не нужны цветы, конфеты и прочий синтаксический сахар, у неё любимый шрифт - это древний и уродливый Courier New. Но вот крепким хозяйственникам она очень нравится: она многого не требует, кучу денег не забирает, косметикой не балуется, но и трактор заведёт, и поле вспашет, и скотину не потеряет. Правда, и в своё хозяйство не пускает кого попало. Словом, молодец девка, но на любителя. А тем, кто любит вот эти все шуры-муры, красоту и цветочки - нужно к столичным барышням обращаться.

А на 1С натягивать ООП, низкоуровневое и функциональное программирование - это всё равно что сельской девушке дать Mercedes Benz или Lamborghini. Ради шутки можно, но ей это в хозяйстве не нужно. Даже если её посадить за Lamborgini, она будет на свой трактор оглядываться - так воспитана...
cheshirshik; abeliavtsev; mysm; Sejix; PLAstic; Alxby; Jeka44; PowerBoy; +8 Ответить
2. Alxby 1071 21.07.22 14:12 Сейчас в теме
3. Alxby 1071 21.07.22 14:19 Сейчас в теме
(2)Я ведь не зря вставил такую картинку в статью - у кого-то ностальгия, вызванная импринтингом, кто-то прочитал "Java за две недели", а кто-то хочет чистый код по Мартину. В этом нет ничего плохого - поиграться и вернуться к крепкому хозяйству.
a_a_burlakov; +1 Ответить
4. a_a_burlakov 228 21.07.22 14:22 Сейчас в теме
(3) Да, я согласен, и свой пост не в упрёк написал, и с выводами в самой статье согласен. )
5. TimurD 6 21.07.22 14:55 Сейчас в теме
Согласен, что полноценного ООП сейчас внедрять не нужно в 1С (возможно в отдаленном будущем). Но наследование и полиморфизм кто бы что не говорил - очень крутая штука (в тему про абстрактные объекты, формы и пр.). Самого посещают мысли сделать (пусть и ограниченно) наследование и полиморфизм, скажем, в виде плагина на ЕДТ. Но пока интересной мысли не пришло в голову как это в текущей парадигме 1С реализовать.
6. Alxby 1071 21.07.22 15:10 Сейчас в теме
(5)Наследование и полиморфизм в первую очередь требуется для сокращения объема кода при описании схожего функционала для разных сущностей. Для решения большинства задач 1С (не для всех) можно выделить общий код в отдельный метод и оставаться в рамках процедурного подхода. С формами, не с кодом, - да, не помешало бы.
7. PLAstic 291 22.07.22 10:09 Сейчас в теме
Не понимаю, зачем...

У меня 20+ лет в 1С из них примерно 10 во франче и я не могу привести практических примеров, когда бы мы такие сели и задумались "даа... а вот был бы у нас полиморфизм..."
Я пришёл после Borland C++ Builder, где ООП вполне было и оно там было востребовано. Здесь же это в принципе не надо, здесь Предметно-Ориентированное Программирование.
8. Alxby 1071 22.07.22 10:19 Сейчас в теме
(7)Я с Вами согласен, но найдется и много несогласных: "Нуралиев! Дай нам ООП!. Почему 1С не развивается? Там даже ООП нету! ". А объяснить, зачем оно нужно, обычно не могут.
9. cheshirshik 39 05.03.23 16:04 Сейчас в теме
Тем не менее сама 1с иногда использует подходы ООП в своих типовых конфигурациях. Например я нечто похожее видел в ЗУП. Не типовое использование обработки, когда по сути обработка представляет в себе некий объект принимающий в эскпортные переменные (как в свойства) какие-то данные и выдающая на выходе в такую же экспортную перменную некий результат, а расчет происходит внутри обработки в закрытых процедурах и функциях.
10. Alxby 1071 05.03.23 16:46 Сейчас в теме
(9)Вполне может быть. Идея с обработкой в общем-то лежит на поверхности. Здесь на сайте есть не одна статья о таком подходе.
cheshirshik; +1 Ответить
11. cheshirshik 39 05.03.23 20:52 Сейчас в теме
(10)
Речь не о идеи, а о практическом примирением. 😉 Причём самим вендером. 😀
Оставьте свое сообщение
Вакансии
Ведущий консультант 1С:ERP
Москва
зарплата от 200 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Консультант-программист по информационным системам 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Системный архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

Руководитель группы 1С
Екатеринбург
зарплата от 200 000 руб.
Полный день