|
18.07.2017, 11:27 | #1 |
Участник
|
Еще где-то 10 других изменений. Я их побоялся смотреть
|
|
18.07.2017, 00:27 | #2 |
Banned
|
Цитата:
X++: AmountMST cost = this.itemPrice(ModuleInventPurchSales::Invent); AmountMST sales = this.itemPrice(ModuleInventPurchSales::Sales); ... //Avoid division by zero if (sales == 0) { mcrCatalogAreaAnalysisTmp.CogsPercent = 0; } else { mcrCatalogAreaAnalysisTmp.CogsPercent = cost / sales; } |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
18.07.2017, 03:30 | #3 |
NavAx
|
Цитата:
if (this.itemPrice(ModuleInventPurchSales::Sales) == 0) Такое случается по запаре. Ничего особенного. Но вот фикс шедеврален! Это же человек не просто колотил код на скорость. Это вдумчиво выловили баг, подумали над его природой и исправили. Кажется я начинаю понимать почему местный саппорт так неохотно репортит даже доказанные баги с указанием где что и как поломано в продуктовую команду.
__________________
Isn't it nice when things just work? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
17.07.2017, 18:38 | #4 |
Участник
|
Есть такая полезная программка PVS-Studio.
Один из постов про нее на хабре очень в тему. https://habrahabr.ru/company/pvs-studio/blog/329090/ Не мешало бы аналог для АХ забабахать
__________________
// no comments |
|
18.07.2017, 06:14 | #5 |
Участник
|
Или через тернарный оператор:
X++: mcrCatalogAreaAnalysisTmp.CogsPercent = sales ? cost / sales : 0;
__________________
// no comments |
|
18.07.2017, 17:31 | #6 |
Banned
|
Цитата:
Заменить переменную - это одно, тернарным это уже переписывать код, так можно заменить один глупый баг другим, что часто и происходит при переписке кода. |
|
|
За это сообщение автора поблагодарили: dech (1). |
18.07.2017, 11:53 | #7 |
Участник
|
Ну у человека была задача пофиксить ошибку компиляции, которой раньше не было
Может быть он и видел эти скобочки, но исправление скобочек приведёт что что-то будет по другому работать, а следовательно могут упасть автоматы, а потом найдут того, кто поменял и спросят - зачем поменял, а автоматы не поменял, а менять автоматы надо полдня прогонять их и разбираться почему они падают(не факт что из-за изменения, но это надо ещё доказать), и вообще тебе надо было сделать чтоб компилировалось просто |
|
19.07.2017, 16:04 | #8 |
Участник
|
Еще нашел такое сегодня
WHSWorkExecuteDisplayInquiryItem.buildItemInquiry(): X++: ... if (availQty == 0 && pickedQty == 0 && physInventQty == 0) { // clear all totals availQty = 0; pickedQty = 0; physInventQty = 0; } ... |
|
|
За это сообщение автора поблагодарили: mazzy (2), TasmanianDevil (1). |
21.07.2017, 18:59 | #9 |
Участник
|
|
|
24.07.2017, 06:18 | #10 |
Участник
|
Извечная проблема локализаторов - кол-во символов в переведенном слове больше чем в переводимом. В компьютерных играх кто по-креативнее пытались переводить такие слова как-то шуточно, а не тупо урезая слово. В данном случае видимо для 4-х буквенного "EXIT" подошло бы "УЙТИ"
|
|
24.07.2017, 16:06 | #11 |
Axapta
|
Устанавливаем SSRS. Вроде все успешно завершается. Лезем в AX - нет ничего. Смотрим в лог установки - и оба-на, оказывается ошибка. WTF? С ошибкой-то разобрались, но писать "Setup was completed successfully", когда на самом деле "Reporting Services Extension was not configured" как-то странно.
Цитата:
2017-07-20 20:16:42Z Error executing command: USE [*******];
2017-07-20 20:16:42Z DECLARE @tableName NVARCHAR(64); 2017-07-20 20:16:42Z DECLARE @tableId int; 2017-07-20 20:16:42Z DECLARE @utilElementTypeTable AS INT; 2017-07-20 20:16:42Z SELECT @tableName = N'SRSServers'; 2017-07-20 20:16:42Z SELECT @utilElementTypeTable = 44; 2017-07-20 20:16:42Z SELECT @tableId = [AxId] FROM [ModelElement] WHERE [ElementType] = @utilElementTypeTable AND [Name] = @tableName; 2017-07-20 20:16:42Z SELECT @tableId; 2017-07-20 20:16:42Z Invalid object name 'ModelElement'. 2017-07-20 20:16:42Z Error executing command: use [*******]; exec [sp_AddReportServer] @serverId = N'*******', @serverUrl = N'*******', @isDefault = 1, @axReportFolder = N'DynamicsAX', @description = N'', @reportManagerUrl = N'*******', @sqlServerInstanceName = N'MSSQLSERVER', @aosServerName = N'*******', @configurationId = N'*******', @isSharepointIntegrated = 0, @recId = 5637268379 2017-07-20 20:16:42Z Cannot insert the value NULL into column 'AOSID', table '*******.dbo.SRSSERVERS'; column does not allow nulls. INSERT fails. 2017-07-20 20:16:42Z Changed database context to '*******'. 2017-07-20 20:16:42Z The statement has been terminated. 2017-07-20 20:16:42Z ****************************************************************************************************** 2017-07-20 20:16:42Z Reporting Services Extension was not configured. An unknown issue occurred. Please contact your administrator. 2017-07-20 20:16:42Z ******************************************************************************************************
__________________
С уважением, Олег. |
|
25.07.2017, 16:50 | #12 |
Участник
|
Тонкости программирования с MapIterator
X++: if(!mi.more()) while(mi.more()) // документы создавались, но откатились { ...
__________________
// no comments |
|
03.08.2017, 12:56 | #13 |
Мрачный тип
|
Есть мнение, что было бы крайне не лишним у Enum'ов контролировать не только уникальность кодовых обозначений и числовых значений элементов, но и меток и их содержания.
Для примера, enum InventTransType, элементы Asset и FixedAssets_RU привязаны к разным меткам, @SYS12578 и @SYS19633, имеющих идентичное содержание, а именно "Основные средства". Пробуем фильтровать складские проводки по типу движения "Основные средства", надеясь увидеть расходы по вводу ОС в российском модуле ОС - получаем фиг. Ставим вместо "Основные средства" в значение ограничения по типу движения величину 100 (числовое значение элемента FixedAssets_RU) - и, о чудо, запрос на форме вернул данные. Двигаемся дальше, добиваем запрос прочими ограничениями - получаем фиг . Что же случилось ? При вызове диалога редактирования запроса значение ограничения по полю типа движения "магическим" образом поменялось со 100 на "Основные средства" и снова интерпретируется системой, как запрос на движения, относящиеся к международному, а не российскому, модулю ОС.
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: Pustik (1). |
04.08.2017, 11:46 | #14 |
Участник
|
Аналогичные проблемы у кнопок типа CommandButton, когда пытаешься в свойстве кнопки Command установить какое-нибудь значение, например "Отмена".
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
03.08.2017, 13:52 | #15 |
Участник
|
А еще запрещать пустые метки.
А то при перепаковке запросов значение фильтра может теряться. |
|
16.08.2017, 17:47 | #16 |
Участник
|
Я немного недоумеваю от интерфейса АХ7 местами.
В форме настройки номенклатурных групп, например, предлагается несколько горизонтальных скроллов. Помоги себе сам: |
|
17.08.2017, 10:54 | #17 |
Участник
|
Это похоже глобальная проблема веб интерфейсов от Микрософта: такая же бяка в веб-интерфейсе Проджекта.
__________________
Ален ноби, ностра алис. Что означает - если один человек построил, другой завсегда разобрать может. |
|
01.09.2017, 09:27 | #18 |
Участник
|
|
|
01.09.2017, 09:18 | #19 |
NavAx
|
Очень веселит манера MS, на определенной стадии обсуждения бага, отвечать "by design". Просьбы показать этот самый дизайн или внести в него исправления воспринимаются как возмутительное нарушение всяких норм приличия, граничащее с клиническим идиотизмом.
__________________
Isn't it nice when things just work? |
|