Про 1С++ООП, на ночь глядя бесстыжими вочами

Автор Пиит, 05 апреля 2024, 00:58

« назад - далее »

Как Вы относитесь к Истории к контексте данного форума?

Пишите, коллега, история это всегда интересно
1 (50%)
Мне по барабану
0 (0%)
Хватит уже, чувак, расвешивать здесь свои простыни
1 (50%)

Проголосовало пользователей: 2

Пиит

Вот, есть 1С++, есть ООП. Согласен, это здорово. Для программиста это действительно свежий воздух.
Помню, как всё начиналось - Rainbow, DMS, OXY - и снимаю шляпу перед теми людьми, которые приложили свои светлые головы к развитию этого направления.
Дальше классы, репозитории, сообщества, и затем уже стыдно быть одинэсником, который не использует классы в своей работе.

А я не использую.
Ребята, может я чего-то не догоняю все эти годы? Может я таки тупой?
На кой мне вся это ООП, если я не могу сделать элементарную хрень - Товар.Цена(ДатаДок) ?



Злоп

ну, я тоже ООП не использую..
у меня из классов только РедакторТЗ стоял.
даже ТабличноеПоле "ниасилил".
.
Почему?
.
Штатные контролы всегда покрывали почти все потребности.
Где проблемы - старался строить процесс так, чтобы чего-то "внешнего" надо было по минимуму.
Вроде получалось. Реально ТП нужны были разово пару раз. На ТЗ - не сильно красиво, но работает.
Прямые запросы? - ну есть пару простейших типа селекта где в наименование слова входят и все...
Парочка сложных )для меня сложных) - сообщество помогло написать, я как собака - понимаю, ног сказать не могу.. ;-) Готовые запросы в целом понятно, но самому писать - ну вот не было прям вот таких потребностей чтобы освоить хорошо.
Ну не было у меня таких клиентов и объемов, чтобы нужны были прямые запросы прям вот до зарезу использовать чтобы не тупило в оперативной работе...
.
Так и живу, нищенствуя практически на типовых возможностях платформы... ;-)
И да: реально охреневаю от настоящих мастеров...
.
Переживал ли когда-то из-за своей корявости?
Ну бывало, здесь вот можно было бы сделать лучше.. Здесь конечно код кривовато написан когда-то, хорошо бы переписать покрасивше... Прямые не умею.. ТП не использую.. Быдлокодер какой-то я...
.
Но как попадают ко мне в руки конфиги, как гляну внутрь что там понаписано понакостылено.... Ладно, если там куча велосипедов сделана, которые штатно можно выкрутить, просто люди явно не а курсе возможностей типовых, или сделано то, чего нет в типовых, но вообще не соблюдены какие-то подходы стандартов типовых - фиг с ним, каждый пишет как умеет. Но хоть код-то аккуратно можно написать ????!!!! Посмотрю на эти безобразия - да я со своим кодом как принц среди нищих, красава!
.
За все время встретил всего один код, с которым реально трудно было разбираться - Садовникова вроде, просто непривычная нотация записи, мозг скрипел ужасно...
.
А так - за красоту и правильность кода никто не платит. Хороший и правильный код писать дольше чем костыль влепить, пусть даже костыль сделанный красиво и аккуратно... И чем старше - тем меньше хочется делать что-то хорошо забесплатно ;-) - такое катит только в случае там где делаешь "для себя", как хобби...
.
как-то вот так...

Пиит

Цитата: Злоп от 05 апреля 2024, 01:16ну, я тоже ООП не использую..

Доброй ночи, Че!
Очень хорошо Вас понимаю. 100 предпиятий за плечами, и никто ни разу не спросил, пишу я на ООП или на ПОП. Всем нужно решение учетных задач, структуры и отчеты. И вчера. И, конечно, PDF по почте.)

По кодам и кривым рукам, отвлекусь на пример из недавнего прошлого. Поработал чуток с одной торговой организацией, 1500 штат, 50 магазинов по области, склады, стоит 77 SQL, база недавно обрезана, 90Gb за три года набрала, под 100 юзеров онлайн, работа кипит 23/7 и один чудо-кодер. Пожаловались, что программа тупит, подвисает, порой на десятки минут, область стоит, кровь кипит, кодера клянут, а тот на сервер кивает, мол сам ни при чём, как обычно.
Глянул я в кода, и сел. В каждом, клянусь, каждом модуле документа Предупреждение("Товара нет на складе"). Остальное перечислять даже не буду, иных алгоритмов не видал ни до ни после. Я ему - нельзя так, транзакция, сообщения, а он мне - юзеры буков внизу не читают, им надо фэйсом об тэйбл ткнуть. Еле победил чудака.
Кстати, там я и пытался прикрутить ОкноСообщений "в фэйс", и памятуя тот случай, попросил Расшифровку.

Сергей, спасибо Вам искренность и понимание.
Жму руку, в общем.

Я взаправду хочу узнать у специалистов, у разработчиков, а они здесь точно есть, как работает ООП вместе с ПОП, так сформулировала компания свою концепцию - Предметно-Ориентированное Программирование. Может всё таки можно прикрутить ООП на агрегаты, а я не знаю о этом?




trad


MWW_Ruza

Цитата: Злоп от 05 апреля 2024, 01:16ну, я тоже ООП не использую..
у меня из классов только РедакторТЗ стоял.
даже ТабличноеПоле "ниасилил".
.
Почему?

Сереж, как я тебя понимаю...
Я почти так-же.
Из классов использую только "перехватчик", да и то с недавних пор...
Тут лень подтолкнула :-)
У одной ИПшки, появился магазинчик в соседнем городе... Как разделить учет? Для юрика, я бы и не задумывался - отдельное СвоеОП, свое ЮрЛицо, и все... А тут, ИП, по сути одно "ЮрЛицо", КПП то нет...
Решил по "Складам" разделить.
И все бы хорошо, но нашлась у них оператор, которая своим нытьем стала доставать - типа не удобно в общем журнале, можно отобрать либо по складу, либо по виду документа, и т.д...
А отобрать по двум критериям нельзя. Ну, не умеет 1С так.
Сначала отказал, типа нельзя, и все тут. А потом подумал, "а почему-бы и нет"-?
Слелал через составной общий реквизит. Все работает.
Но потом подумал - и ужаснулся... В типовой ТиС 100500 документов, да еще и моих пару десятков... И в каждый нужно в процедуру ПриЗаписи(), прописать формирование этого составного реквизита...
Вот это был у меня единственный случай, когда я понял, что даже мало-знакомая для меня работа с классами, несмотря на то, что нужно еще изучить и ихотя-бы немного понять, как это работает, ускорит на порядок всю мою хотелку - сделал через перехватчик, все работает.
А так... Меня часто ругают на мисте, что что типа все мои "костыли" делаются проще и изящьнее на табличных полях, и тому подобно, что все мои поиски и работа с выделенными строками списков есть в ТП... Да. Согласен.
Но, мне так проще. И юзерам привычнее.
А вот без Формекса, уже сложно обходиться стало, привык :-) Но, это другое...

PS А из прямых запросов, только в нескольких местах поиск через SQLlite использую, чтобы минимизировать количество индексов(не ставить галку "сортировка") у добавленных полей, по которым надо отбирать "по реквизиту". Уж очень добавление каждого индекса замедляет реструктуризацию базы, в случае добавления реквизита с сортировкой... Тут, через SQLlite значительно веселее получается. А так... Получение данных? Ну нет у меня таких клиентов, где черные запросы не справляются. Все и так делается...
 

Пиит

Цитата: trad от 05 апреля 2024, 07:29Что значит прикрутить ООП на агрегаты?

Сори за жаргон, агрегатные типы данных имел в виду.

Процитирую Александра Орефкова, из readme к turbobl:
"
    Да!!! Свершилось!!!
    Теперь можно через контекст обратится к методам и переменным модуля контекста.
    Например:
    конт=0;
    ОткрытьФорму("Справочник.Товары",конт);
    конт.Печать();    //где Печать() - процедура в модуле ФормыСписка справочника.
    или например:
    // в модуле проведения дока
    Процедура ЭтоДокСТоваром()
        возврат 1;
    КонецПроцедуры;
    Процедура ОбработкаПроведения(парам)
        глНекаяГлобФункция(Контекст);
        ....
       
    // В ГМ:
    Процедура глНекаяГлобФункция(Конт)
        Если Конт.ЭтоДокСТоваром()=1
        .......
"

Вот, сабж примерно об этом, но только примерно.
Если бы 1С++ дал мне возможность каким-то образом обратиться по ссылке к методу соответственно документа или справочника, тогда бы и я воскликнул: "Да!!! Свершилось!!!".

Это не хотелка, да и в случае справочника даже нет такого модуля, где можно хранить его методы.
Это мегахотелка. )



trad

Тебе нужен аналог восмерочного модуля объекта?

Пиит

Цитата: trad от 05 апреля 2024, 09:45Тебе нужен аналог восмерочного модуля объекта?

Аналог - это у восьмерки, а у нас оригинал.
Спорил на этот предмет с Артуром Аюхановым (artbear) на еще проклабе вроде,
когда восьмерка в помине на свет не народилась.
Доказывал, что ООП ради ООП это только пол дела, нужда привязка к данным.
Да, в восьмерке это реализовано, доработали свою ПОП, подслушали наверное.)

trad

Ты можешь в двух словах, без портянок и исторических экскурсов, объяснить чего тебе надо? ))

trad

ООП в 1с++ строится вокруг всего что можно создать при помощи СоздатьОбъект()
Ссылка на справочник/документ - не объект.
Ссылку конечно можно инкапсулировать в некий класс, но унаследовать ее нельзя.
Унаследоваться можно от типа объекта, например создать свой класс Справочник.Товары.Мой от Справочник.Товары
Там определить метод Цена(ДатаЦены)
И потом:

Об = СоздатьОбъект("Справочник.Товары.Мой");
Об.НайтиЭлемент(Товар);
Об.Цена(ДатаДок);

Forum123

Ещё раз хотел бы обратить внимание разработчиков ВК на то чем удобно иметь xml для каждой диалоговой формы.

Эти метаданные расширяют конфигуратор так как позволяют хранить данные о дополнительной функциональности:
- права на доступ к объектам и данным;
- сохранение метаданных диалоговых форм (позволяет сделать более удобным работу с интерфейсом);
- данные об опциях отчётов;
- ...

Код модулей упрощается и имеется возможность динамического изменения свойств.

Многие хотелки затрагивают конфигуратор и разработчики говорят это нельзя реализовать.
Всё можно!

АЛьФ

Цитата: Forum123 от 05 апреля 2024, 10:19Ещё раз хотел бы обратить внимание разработчиков ВК на то чем удобно иметь xml для каждой диалоговой формы.

Эти метаданные расширяют конфигуратор так как позволяют хранить данные о дополнительной функциональности:
- права на доступ к объектам и данным;
- сохранение метаданных диалоговых форм (позволяет сделать более удобным работу с интерфейсом);
- данные об опциях отчётов;
- ...

Код модулей упрощается и имеется возможность динамического изменения свойств.

Многие хотелки затрагивают конфигуратор и разработчики говорят это нельзя реализовать.
Всё можно!


Все можно. Никто ж не против. Все только спрашивают где именно можно посмотреть твою разработку, о которой ты постоянно рассказываешь.

Forum123

Цитата: АЛьФ от 05 апреля 2024, 10:22Все можно. Никто ж не против. Все только спрашивают где именно можно посмотреть твою разработку, о которой ты постоянно рассказываешь.
Для вышесказанного не нужны ActiveX, достаточно использовать 1cpp, formex и классы.

Что касаемо разработки, то после создания API "Хранилище ресурсов"  проверю API на семёрошных и восьмёрошных конфигураций и поделюсь оттестироваными ActiveX.
Это будет по существу конфигуратор на порядок функциоальней восьмёрошного.
Так как в хранилище ресурсов можно будет загружать и данные, то добавлю удобный API.
Самое интересное в том, что это будет не 1С, но всё то к чему привыкли 1С-ники API позволит использовать.
Как такое может быть?
Может, так как это API для работы с метаданными, а это могут быть игры, мультимедия, 1С, ...

Надеюсь всё будет Ok!

Кстати никогда не было желания конкурировать с 1С.
Просто API универсально.



Forum123

Цитата: Forum123 от 05 апреля 2024, 10:25Просто API универсально.
Для использования API можно будет использовать любой ЯП и к Windows API не привязано.

АЛьФ

Цитата: Forum123 от 05 апреля 2024, 10:41
Цитата: Forum123 от 05 апреля 2024, 10:25Просто API универсально.
Для использования API можно будет использовать любой ЯП и к Windows API не привязано.
Скажи, пожалуйста, на форуме 1С++ "vladimirmir2012" - это твой ник?