Why won't this fill command work?

Solution 1:

Unlike Java Edition, in PE/BE all concrete has the namespaced ID concrete. What differentiates the different colours is the data values. For example, black concrete is concrete with a data value of 15.

The data value is used after the block name in the command:

/fill 45 3 -43 -45 3 -47 concrete 15