```# Powershell, 149 bytes

\$i=-1
\$a=(,1*8+0,1*3)*3+,1*7|%{\$_*(1+(Random 9))}
\$a|?{++\$i;!\$_}|%{6..8+1|%{\$_,-\$_}|%{\$a[\$i]+=\$a[\$i+\$_]}}
-join(\$a|%{if(!(++\$i%7)){"
"};'{0,3}'-f\$_})

Explanation:

\$i=-1                       # let \$i store -1
\$a=                         # let \$a is array of random numbers with zero holes
(,1*8+0,1*3)*3+,1*7|    # the one-dimension array equals
# 1 1 1 1 1 1 1
# 1 0 1 0 1 0 1
# 1 1 1 1 1 1 1
# 1 0 1 0 1 0 1
# 1 1 1 1 1 1 1
# 1 0 1 0 1 0 1
# 1 1 1 1 1 1 1
%{                      # for each element
\$_*(1+(Random 9))   # multiply 0 or 1 element to random digit from 1 to 9
}                       # now \$a stores values like (* is a random digit from 1 to 9)
# * * * * * * *
# * 0 * 0 * 0 *
# * * * * * * *
# * 0 * 0 * 0 *
# * * * * * * *
# * 0 * 0 * 0 *
# * * * * * * *
\$a|?{++\$i;!\$_               # calc index \$i and passthru values == 0 only
}|%{                        # for each zero value cell with index \$i
6..8+1|%{               # offsets for the surrounding cells
#  .  .  .
#  .  x +1
# +6 +7 +8
\$_,-\$_              # add the mirror offsets
# -8 -7 -6
# -1  x +1
# +6 +7 +8
}|%{                    # for each offset
\$a[\$i]+=\$a[\$i+\$_]   # add surrounding values to the cell
}
}
# display the \$a
-join(
\$a|%{                   # for each value of \$a
if(!(++\$i%7)){"`n"} # line break for each 7 cells
'{0,3}'-f\$_         # formatted value of \$a with width = 3 char and align right
}
)                           # join all values to string```