I'm no so advanced in bash so can not make my function work properly. Here is the code:
archive()
{
for f in $PWD
do 
    for ((i=1; i++;))
    do
        7za a "$1".7z $f -pSECRET -mhe 
    done
done
}
In order this function should take arbitrary amount of parameters like
archive foo file1.txt file2.jpg file3.asc ...
Unfortunately I've not figured out how to solve this myself.
And one more thing. For me it's still hard to make function inside function but would be perfect if someone show me how use dynamic password instead of constant one:
gpg --gen-random 1 "$1" | perl -ne'
    s/[\x00-\x20]/chr(ord($^N)+50)/ge;
    s/([\x7E-\xDB])/chr(ord($^N)-93)/ge;
    s/([\xDC-\xFF])/chr(ord($^N)-129)/ge;
    print $_, "\n"'
Ultimate desired output for command archive foo file1.txt file2.png: 
7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Scanning
Creating archive .7z
Compressing  file1.txt      
Compressing  file2.png      
Everything is Ok
Password for file foo.7z is X;~2\$82uZx@^22nFd}!jrn2]`[GceWx