Thank you very much. The full solution is:
Correct the mistake in tame_dog.sqf like A Man said and move the file to <mission_name>.pbo
Copy fn_selfActions.sqf to <mission_name>.pbo and change path in it to the new tame_dog.sqf
Copy compiles.sqf to <mission_name>.pbo and change path in it to the new fn_selfActions.sqf
Change path in init.sqf to the new compiles.sqf
In publicvariableval.txt (Battleye) find the line 5 "call" !="dog_callBack" !="\[,<NULL-object>,\"say\",\[\"dog_callBack\",120\]\]" and change it to 1 "call" !="dog_callBack" (this prevents from server kicks when calling back a dog and from createvehicle count restriction kick when a huge amount of zombies nearby because of <NULL-object>)
And there is an additional question: Is there a way to spawn the dog that player have already tamed every time the player connects to server until the dog or the player dies?