Placement of buttons/functions should normally follow the region patterns below.
Page Functions (primary): Normally reserved for the user's final actions on the page.
Page Functions (secondary): Email, print and other non-final step page level actions. These are normally supplementary and may not be frequently used.
Back Button: The back button should be able to be avoided in many situations, but when necessary should be located in the lower left. The left side location mirrors the browser's back button location and also keeps it from being mixed in with primary page functions.
Block Functions (primary): If a block level function should be prominent and conspicuous - it can be located at the above left of a block. Buttons to add items to a table or list use this region.
Block Functions (secondary): Secondary block functions are similar to page level secondary functions but pertain only to a specific block.
Row Functions: Secondary block functions are similar to page level secondary functions but pertain only to a specific block.
Block Functions (within component): Sometimes it is necessary to place block level functions within a block (i.e. within tabs or expandables). The lower right (terminal) area of the block's location are recommended for such functions.
Contextual Functions: Functions that are related specifically to a certain value or atomic section of the interface should be placed as close to their related output.