22.06.2017, 09:12 | #141 |
Участник
|
|
|
22.06.2017, 10:09 | #142 |
Участник
|
ну вот допустим есть у вас Tutorial_RunbaseBatch(в виде операшн). вы его запускаете просто из меню.
теперь вам говорят - добавь этот диалог в форму клиента, но чтобы клиент автоматически заполнялся текущим и был недоступен для редактирования. т.е. все довольно просто выглядит для RunBase, добавляете меню айтем на форму клиентов, в main получаете и передаете в класс custTable, в диалоге дизейблите код клиента и заполняете его из custTable т.е. модификация довольно хорошо ложится на RunBase Последний раз редактировалось trud; 22.06.2017 в 10:12. |
|
22.06.2017, 11:15 | #143 |
Участник
|
|
|
22.06.2017, 11:44 | #144 |
Участник
|
Люди радовались целых 5-7 лет
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
|
За это сообщение автора поблагодарили: Bobkov (1), dech (1). |
22.06.2017, 11:54 | #145 |
Участник
|
Цитата:
Сообщение от macklakov
settleNow() сам по себе результат "программизма". Объединить accounts receivable и account payable в одну и иерархию, мог только человек который ни дня не провел в этих отделах, зато много в коде ковырялся и увидел в этих процессах некоторую корреляцию. Но это реально 2 совершенно разных отдела! И работают они по совершенно разным бизнесс-процессам. Поэтому вся эта CustVend иерархия создает больше проблем, чем пользы.
Т.е. "программизма" хватает и в "старой доброй" axapta. И от него надо было избавляться. Это учетная система, она должна отражать реальность, а не продвигать идеализм в массы.
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/ |
|
22.06.2017, 12:43 | #146 |
Участник
|
Цитата:
далее как-то придется гуглить как достучаться до контролов диалога и в какой метод это поместить |
|
|
За это сообщение автора поблагодарили: Logger (1). |
22.06.2017, 13:19 | #147 |
Участник
|
Цитата:
Цитата:
Если требования для изменений пойдут построчно (наиболее реалистичный вариант, IMHO), то удобнее будет документ с независимыми строками. Если же требования для изменений будут относиться ко всем строкам сразу (маловероятный вариант, IMHO), то удобнее окажется документ "У этих животных хвосты длинные".
Мне кажется тут первый список понятнее - ясно кто подчиняется общему умолчанию а кто нет. У этих животных хвосты длинные: - Лиса - Бобер - Кенгуру (кроме австралийских короткохвостых) - Собака - У лисы длинный хвост. - У бобра недлинный хвост. - Кенгуру имеет длинный хвост (кроме австралийских короткохвостых). - Такой же хвост и у собаки. Цитата:
То есть, выбор варианта документа обусловлен нашим прогнозом на то, как в будущем пойдут требования для изменения проектируемой системы.
В случае кода, мы можем тоже провести замену, или воспользоваться каким-нибудь инструментом для рефакторинга (рефакторинги начинающиеся с inline) Цитата:
И тут, о чудо, на практике часто оказывается, что копипаста совсем не так уныла как казалась, потому что она дает возможность вносить изменения независимо от других частей системы, что повышает надежность системы.
IMHO, конечно Я не против дублирования в принципе, просто оно должно быть обосновано. |
|
22.06.2017, 13:27 | #148 |
Banned
|
Цитата:
Сообщение от macklakov
settleNow() сам по себе результат "программизма". Объединить accounts receivable и account payable в одну и иерархию, мог только человек который ни дня не провел в этих отделах, зато много в коде ковырялся и увидел в этих процессах некоторую корреляцию. Но это реально 2 совершенно разных отдела! И работают они по совершенно разным бизнесс-процессам. Поэтому вся эта CustVend иерархия создает больше проблем, чем пользы.
Т.е. "программизма" хватает и в "старой доброй" axapta. И от него надо было избавляться. Это учетная система, она должна отражать реальность, а не продвигать идеализм в массы. Обоюдоострый топор - прекрасная идея, но нам им лес валить. Действительно если бы вместо settleNow() было два метода было бы легче. И то что было бы повторение кода в этих двух методах - и слава яйцам в разных корзинах. А главное мое "салон vs двигатель" слишком лиричное, а твое Это учетная система, она должна отражать реальность - понятнее. P.S. Отражать реальность без искажений и членовредительства. Если в реальной жизни это два отдела то не нужно отражать то чего нет. Код учетной системы не должен жить своей внутренней жизнью и оптимизироваться сам по себе. Код - должен только отражать реальность. Когда программист меняет код по сути для своего удобства и ради своих принципов - он тот самый крот. Не дублирование кода должно быть обосновано, а любое внесение лишних абстракций. В учетной системе ООП должно отражать только реальные обьекты и процессы, и служить интересам системы, а не вкусам программиста. Последний раз редактировалось ax_mct; 22.06.2017 в 14:54. |
|
23.06.2017, 01:54 | #149 |
NavAx
|
Цитата:
А я не против "серьезных" программстских подходов. Паттерны, абстракции, обощения и т.д. Просто оно должно быть обосновано
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2017 в 01:59. |
|
23.06.2017, 08:11 | #150 |
Участник
|
|
|
23.06.2017, 09:43 | #151 |
NavAx
|
Цитата:
Девочки операционистки зачастую слишком необразованны чтобы оценить величие и изящество замысла. Когда им звонит клиент, он ожидают видеть баланс клиента, а не баланс на счету AR. И поэтому им каждый раз приходится долго втолковывать что инвойс делает счет клиента положительным, а платеж делает этот счет отрицательным. И все равно путаются какое-то время. Да что говорить. Процесс закупки настолько отличается от клиентского возврата, что целый модуль procurement and sourcing наваяли. И одобрения платежей. На закупках часто бывает 3-х уровневое одобрение, а возврат клиенту делается на месте. Но при возврате важен исходный платеж. А в оплате покупки такого платежа не было вовсе. Зато мы не какие-то там быдлокодеры, которые под клиента подстраиваются. У нас наследование и фреймворки. Все как у взрослых
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2017 в 09:59. |
|
23.06.2017, 10:30 | #152 |
Участник
|
Цитата:
Цитата:
Девочки операционистки зачастую слишком необразованны чтобы оценить величие и изящество замысла. Когда им звонит клиент, он ожидают видеть баланс клиента, а не баланс на счету AR. И поэтому им каждый раз приходится долго втолковывать что инвойс делает счет клиента положительным, а платеж делает этот счет отрицательным.
Так вы на вопрос не ответили, как возникла вообще потребность сделать одно и то же для двух вещей, между которыми НИЧЕГО общего. |
|
23.06.2017, 11:46 | #153 |
NavAx
|
А откуда этот вопрос проистекает? Где сказано что в бизнесе между этими процессами много общего? Ace of Database говорит что у него джобы зеркально выглядят. Но они зеркально выглядят потому, что в системе Cust и Vend отзеркалены, а не потому что у бизнеса нужды такие. То что можно отзеркалить, вообще не должно в этих таблицах находиться. Справочник адресов и справочник юр. лиц отдельные сделать и все. Никакой иерархии наследования. Никакого зеркалирования. Юр. лицо, это юр. лицо, независимо от того, поставщик это, клиент, сотрудник на контакте, субподрядчик по проекту или еще кто. Проводки и по поставщикам и по клиентам должны отражаться в ГК. Это общее. Но они совершенно по разному отражаются. Разная детализация, разный смысл. Платежи, как уже упоминал, совершенно по разному обрабатываются. Процесс разный, зачастую сопровождается разными документами. И поэтому вся эта иерархия CustVendOutPaym только под ногами путается.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2017 в 11:56. |
|
|
За это сообщение автора поблагодарили: ta_and (4). |
23.06.2017, 12:13 | #154 |
Участник
|
Между таблицами клиента и поставщика много общего, соответственно очень много одинаковой логики и она дублируется. Чтобы избежать дублирования, изобрели Maps. Всю общую логику переместили в CustVend*. Очень элегантное решение, кстати.
__________________
// no comments |
|
23.06.2017, 12:53 | #155 |
Участник
|
Цитата:
Вопрос такой: зачем вообще нужна потребность делато что-то одинаковое для закупок и заказов, если между ними нет ничего общего? Например, ко мне не может подойти начальник и сказать "испеки мне скорость и булочки с изюмом" просто потому, что для этих двуз понятий нет никакого общего смысла что-то делать. А вот для AR и AP возникла. Как так получается? Цитата:
То что можно отзеркалить, вообще не должно в этих таблицах находиться. Справочник адресов и справочник юр. лиц отдельные сделать и все. Никакой иерархии наследования. Никакого зеркалирования.
То есть в одном справочнике есть юридический адрес, а в другом на этом месте табуретка? |
|
23.06.2017, 13:56 | #156 |
Участник
|
Цитата:
поставщики и клиенты - это контрагнеты. контрагенты бывают: = юрики, физики, банки, государства = клиенты, поставщики, субподрядчики, перевозчики, охрана, всевозможные брокеры, страховые, нотариусы и прочие третьи лица и так далее. среди действительно общих операций можно отметить только расчет курсовой разницы. а также сугубо технические операции типа сопоставления дебет-операций с кредит-операциями. контрагентов пытались получить на DirParty. со всей вытекающей сложностью. Цитата:
1. maps изобрели не чтобы избежать, а чтобы хоть как то работать с дублированием. 2. не всю ) 3. не очень элегантное. в стандартном функционале постоянно приходится писать if/switch... методы map имеют чудовищный синтаксис и очень плохо используются. люди на проектах часто делают врапперы типа такого https://github.com/mazzy-ax/SysCustVend Цитата:
Цитата:
это просто техническое решение - сделать их похожими. Цитата:
Зря ты принижаешь возможности начальника. )))) Может конечно подойти и может сказать. Это твоя проблема как разработчика объяснить почему ты не будешь делать как начальник сказал )))) Цитата:
Цитата:
Оver-engineering - "зачем так сложно?" |
|
|
За это сообщение автора поблагодарили: macklakov (5). |
23.06.2017, 14:34 | #157 |
Участник
|
Цитата:
В каком смысле сопоставление "техническая" операция? Цитата:
будем справедливы:
1. maps изобрели не чтобы избежать, а чтобы хоть как то работать с дублированием. Цитата:
3. не очень элегантное. в стандартном функционале постоянно приходится писать if/switch... методы map имеют чудовищный синтаксис и очень плохо используются.
Цитата:
люди на проектах часто делают врапперы типа такого
https://github.com/mazzy-ax/SysCustVend Цитата:
а нет такой потребности.
это просто техническое решение - сделать их похожими. Цитата:
да. у физика нет юридического адреса.
Цитата:
Собственно это и есть тема этой ветки:
Оver-engineering - "зачем так сложно?" |
|
|
За это сообщение автора поблагодарили: macklakov (5). |
23.06.2017, 14:52 | #158 |
NavAx
|
Цитата:
Цитата:
Ну иерархию в DirParty сделали ведь. Значит и скорость испечь сможете. Технически вы отборные специалисты, лучшие на рынке. Значит справитесь.
__________________
Isn't it nice when things just work? |
|
23.06.2017, 15:07 | #159 |
NavAx
|
Элегантное, спору нет. Правда как не настраивай потом долго пользователей дрессироваться приходится что:"вот здесь пока прижимаешь, там тянешь, а вот ты в это время смотри чтобы оттуда не лезло". Но инженерно красиво. Гордость за систему. У других пара функций и все. А у нас наследование!
__________________
Isn't it nice when things just work? |
|
23.06.2017, 15:08 | #160 |
Участник
|
Цитата:
что-то общее имеет. имеет и что-то различное. в бизнесе ее используют не очень часто. это технический прием, чтобы явно указать какой дебет в какой части какому кредиту соответствует. Цитата:
Как скажешь. Цитата:
Да, некоторые считают, что некоторые они - оверэнжиниры. Цитата:
я говорил, что есть некоторые общие вещи. их не обязательно порывать общим кодом. разница как между классом-потомками и интерфейсом-реализациями. Цитата:
Цитата:
а специфику сделки выносят в договор (там есть свои тараканы и есть свои минусы) некоторые системы, например банковские, оперируют понятиями поставщик, а вместо клиентов могут быть разные типы аккаунтов - накопительные/текущие/карточные/валютные (там есть свои тараканы и есть свои минусы) некоторые системы типа всяких CRM оперируют понятием "контакт". не со всеми типами контактов можно заключить договор (делать бизнес), а также не со всеми типами контактов можно контактировать (например, юр.лица - для них должны быть указаны контактные лица-люди) Просто ДВА модуля/справочника с одинаковыми полями - это не единственное решение. Справочников/модулей может быть и больше, и меньше. |
|
Теги |
sysoperation framework |
|
|