AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.09.2018, 10:30   #1  
YoungPadawan is offline
YoungPadawan
Участник
 
21 / 23 (1) +++
Регистрация: 04.01.2017
AX2009. Метод "new" на таблицах.
Здравствуйте! При перекрытие методов на таблице в списке предложенных есть метод New. Его можно перекрыть, написать свой код. Потом его можно вызвать.
Но зачем он вообще нужен на таблицах? Он когда-то вызывается ядром?
И можно его вообще трогать или не желательно?

Последний раз редактировалось YoungPadawan; 03.09.2018 в 10:33.
Старый 03.09.2018, 10:43   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,936 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Для создания переменных с типом класс надо явно писать
Переменная = New Имя_класса();

а для табличных переменных это не нужно.
Там при первом обращении к табличной переменной ядро аксапты создает объект.

Поэтому нет надобности вызывать new для таблиц.

Никогда не приходилось перекрывать этот метод.
Старый 03.09.2018, 11:00   #3  
YoungPadawan is offline
YoungPadawan
Участник
 
21 / 23 (1) +++
Регистрация: 04.01.2017
Цитата:
Сообщение от Logger Посмотреть сообщение
Для создания переменных с типом класс надо явно писать
Переменная = New Имя_класса();

а для табличных переменных это не нужно.
Там при первом обращении к табличной переменной ядро аксапты создает объект.

Поэтому нет надобности вызывать new для таблиц.

Никогда не приходилось перекрывать этот метод.
Пробовал писать инфолог в New, в джобе объявлять табличную переменную и делать селект. New не вызвался
Старый 03.09.2018, 11:26   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,936 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Да, они себя немного странно ведут.
Никто не перекрывает new

Я как-то пробовал перекрывать toString() - для классов работает. Для табличек не вызывается.
Старый 06.09.2018, 13:55   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Да, они себя немного странно ведут.
Никто не перекрывает new

Я как-то пробовал перекрывать toString() - для классов работает. Для табличек не вызывается.
Таблицы очень схожи с классами, однако таковыми не являются.
Если попытаться создать экземпляр таблицы, вы получите такую ошибку компиляции:
Цитата:
The variable is not of the type CLASS.
Но поскольку таблицы и классы имеют много общего, M$ наследовал (или не дай бог скопировал) функциональность по перекрытию методов от классов. В результате на таблицах можно якобы перекрыть эти методы, однако они работать не будут, если их не вызвать явно.
Т.е. по сути эти методы ничего не перекрывают, поскольку в базовой таблице (Common) их нет и не было.
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Покупка валюты. Сопоставление проводок. "Инкрементный" метод расчета. Yrich DAX: Функционал 1 25.04.2016 14:03
daxmusings: TFS Build Library "Hotfix" Update - Beta of AX2009 TFS Library Blog bot DAX Blogs 0 13.08.2014 08:11
Метод "open" в COM-объекте класса "ADODB.Connection" возвратил код ошибки 0x80004005 (E_FAIL) Poleax DAX: Программирование 14 01.10.2013 14:15
Метод "version" не поддерживается интерфейсом Automation COM-объекта класса "<неизвестно>". Poleax DAX: Администрирование 2 02.11.2010 15:25
Метод "SendMail" в COM-объекте класса "Dundas.mailer" возвратил код ошибки 0x80004005 (E_FAIL), который означает: The RCPT command failed. The specified account does not exist. Андрей К. DAX: Программирование 3 10.07.2009 16:08

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:27.