Цитата:
Сообщение от
Lankey
Спасибо большое.
А есть какая-то официальная статья насчет реабилитации RunBаse в D365? Про раширение
статью нашла.
Не... ну тут Вы рассуждаете без учета маркетинговой политики Microsoft. Сказав "А" никто никогда не скажет, что это "А" было неверно. Просто скажут такое "Б", из которого будет логически следовать, что "А" - неверно.
Если какая-то технология / функциональность признается устаревшей в текущей версии - то это автоматически означает, что она вырезается из следующей версии.
Если она не вырезается, то она как минимум останавливается в развитии.
Примеры: AIF в 2012 (был вырезан в D365FO), старый конфигуратор продукции, который существовал до AX 2012; в AX2012 был признан устаревшим и в D365FO его вырезали. Модуль "Основные средства Рус" (RAsset*) в D365FO по сути остановили в развитии в угоду развития модуля "Основные средства" (Asset*)
В случае с RunBase что произошло:
1. Его не вырезали
2. К нему сделали возможность загрузки файла (новая возможность по сравнению с AX2012)
3. Его "научили" выполнять метод run() в отдельной сессии, как раньше умела только SysOperation-технология
4. Про него написали в документации (вот уж прямой индикатор, что им продолжают активно пользоваться) - как расширять (Вы сами нашли статью)
Цитата:
Сообщение от
Lankey
Про вариант(1) не уверена,что поняла, почему я не могу вызвать класс с формы?
Конечно можете. Вопрос лишь в том, сколько и каких усилий нужно приложить, чтобы:
- выполнить первичную разработку
- много позже расширить эту функциональность (если потребуется).
Начнём с простого. Чтобы выполнить задачу Вам по варианту 1 нужно либо создать форму и в ней написать логику, либо создать форму и класс, причем форма будет лишь промежуточным объектом для вызова класса.
Чтобы выполнить задачу Вам по варианту 2 - форму создавать не требуется (в той постановке, которую Вы привели). Это как минимум будет быстрее с т.з. разработки. Ну и с т.з. дальнейшего развития - развивать класс или класс + форму - всё таки разные вещи. Проще один объект развивать.
Про клиент-сервер забываем - да, в D365FO это неактуально.
Однако, класс можно отнаследовать; его можно включить в какое-нибудь пакетное задание (это конечно общий подход, а не конкретно к Вашей задаче); к любому методу класса можно обратиться "извне" из другого класса.
Форма не наследуется; в пакетное задание не включается, а вызов методов из формы усложнен тем, что синтаксический контроль названий методов для классов применяется автоматически - а для формы - нет. Т.е. (условно) создав метод на форме с названием "ХХХ" и вызвав из класса метод "YYY" - Вы никогда не получите ошибку компиляции из-за названия метода. А вот в случае с классом - получите
Т.е. общий вывод такой - вариант 2 просто быстрее в разработке и проще поддерживается (до определенного уровня конечно). А так конечно - любой способ приводит к результату