Показать сообщение отдельно
Старый 09.04.2014, 10:30   #1  
Starling is offline
Starling
Участник
Дети Юза
 
530 / 76 (4) ++++
Регистрация: 20.10.2005
Адрес: Kiev
Изменения спецификации номенклатуры – бага?
В стандарте DAX2012 (и в предыдущих версиях кажется тоже) есть функция Управление запасами и складами \ ПО \ Спецификации \ Изменения спецификации номенклатуры.
Функция позволяет массово менять в спецификациях одну номенклатуру на другую. У этой функции есть параметр «Удалить из выбора конфигурации». Активация этого параметра позволяет очистить данные из таблицы «Выбор конфигурации» (ConfigChoise), которые относятся к старой номенклатуре.
Метод выглядит следующим образом:

X++:
void deleteConfigChoice(BOM bom, ItemId itemId)
{
    ConfigChoice    configChoice;
    BOMVersion      bomVersion;
    ;

    select firstonly bomVersion
        where bomVersion.bomId == bom.bomId;

    if (bomVersion)
    {
        delete_from configChoice
            where   configChoice.ItemId          == bomVersion.ItemId   &&
                    configChoice.ChosenItemId    == itemId              &&
                    configChoice.ChosenGroupId   == bom.ConfigGroupId;
    }
}
Если для текущей спецификации существует только одна версия, то код будет работать корректно. Но если у спецификации, есть несколько версия для различных номенклатур, то удаление будет выполнено только для первой из них (fistOnly). Очень похоже на багу.