Ստորև բերված է հաշվի քաղվածքում կիրառվող լրացուցիչ պարամետրերի հաշվարկման համար նախատեսված դասը։ Ի տարբերություն այլ դեպքերի ՀԾ-Բանկում հաշվի քաղվածքում նոր պարամետրեր ավելացնելուց արժեքը պետք է լինի Unicode կոդավորմամբ, երբ ձևանմուշը պետք է արտահանվի Unicode, այսինքն գրեթե միշտ։

Օրինակում օգտագործվում է UserProxyService, որը հասանելի է միայն ՀԾ-Բանկում։

using ArmSoft.AS8X.Bank.General.Account.DOCS;
using ArmSoft.AS8X.Bank.UserProxy;
using ArmSoft.AS8X.Common.Extensions;
using ArmSoft.AS8X.Core.Templates;
using System.Threading.Tasks;

namespace ArmSoft.AS8X.Bank.CustomerSpecific.MyCompany
{
    [TemplateSubstitutionExtender]
    public class AccStateAdr_stamp : ITemplateSubstitutionExtender 
    {
        private readonly UserProxyService proxyService;

        public AccStateAdr_stamp(UserProxyService proxyService)
        {
            this.proxyService = proxyService;
        }

        public async Task Calculate(TemplateSubstitutionExtenderArgs args)
        {
            //Վերադարձնում է այն փաստաթուղթը, որի վրայից տպվում է քաղվածքը։ Այս դեպքում հաշիվը
            var accountDoc = (Account)args.Document;

            //Վերադարձնում է հաճախորդ փաստաթուղը
            var cliDoc = await this.proxyService.LoadClientDoc(accountDoc.CLICOD);

            //Ստեղծում է հասցեի տպելու պարամետր
            await proxyService.TryAddAtomicAsync("hasce", async () =>
            {
                var marz = cliDoc.DISTRICT != "001" ? (await this.proxyService.TreeElPropComment("LRDistr", cliDoc.DISTRICT)) + ", " : "";
                var bnakavayr = cliDoc.DISTRICT != "001" ? (await this.proxyService.TreeElPropComment("COMMUNTY", cliDoc.COMMUNITY)) + ", " : "";
                var index = cliDoc.POSTIND != "" ? ", Փոստային ինդեքս` ".ToArmenianANSI() + cliDoc.POSTIND : "";
                return (marz + cliDoc.CITY + ", " + bnakavayr + cliDoc.ADDRESS + index).ToArmenianUnicode();
            }, args);

            //Ստեղծում է անգլերեն հասցեի տպելու պարամետր
            await proxyService.TryAddAtomicAsync("ehasce", async () =>
            {
                var emarz = cliDoc.DISTRICT != "001" ? (await this.proxyService.TreeElPropEComment("LRDistr", cliDoc.DISTRICT)) + ", " : "";
                var ebnakavayr = cliDoc.DISTRICT != "001" ? (await this.proxyService.TreeElPropEComment("COMMUNTY", cliDoc.COMMUNITY)) + ", " : "";
                var eindex = cliDoc.POSTIND != "" ? "Post Index " + cliDoc.POSTIND : "";
                return emarz + cliDoc.ECITY + ", " + ebnakavayr + cliDoc.EADDRESS + eindex;
            }, args);
        }
    }
}