HomeDeveloper ReferenceRelease Notes | What's New in TDLTally.ERP 9 Customisations with TallyPrime


Explore Categories



Tally.ERP 9 Customisations with TallyPrime


The enhanced interface has enforced to provide revolutionary changes in TDL. However, there have been efforts to ensure we do have backward compatibility to ensure the existing TDLs are working in TallyPrime with minimal effort. 

No Migration of TCP

There are no changes in TCP format to ensure minimum transition hurdles. Hence, all the compiled files would work without the need for re-compilation or any procedure to convert encryption format. However, for a better user experience, there have been numerous changes in Default TDL.TDL Management Report

Product and Features report now has been renamed as ‘TDL Management’. Since F12: Configuration menu has been removed, this Report now can be navigated through

TDL Management report can be opened from F1: Help > TDL & Add-On

Also, the TDLs can be configured in the INI file.

A  global shortcut key

A global shortcut key  Ctrl + Alt + T can be used to open the TDL management report.

About screen

TDL management report could also be opened through the About page. In F1: Help à About. Then click enter on TDLs Configured.

Also, the TDLs can be configured in the INI file.

TDL Management View

The TDL Management report view is enhanced to provide better clarity of the list of customisation linked to the application. The Report has been provided as a hierarchy report.

The new screen with totals has to be taken

Add-on Features Screen

F11: Features screen is entirely revamped in TallyPrime, and the button F11 is now available as System Key, instead of Menu Button.

The Add-on feature screen has been moved to the TDL Management Report. (F1: Help à TDL & Add-on à F6 : Add-on Features). Though, the company features screen has been revamped, the part definition name hasn’t changed.

Earlier Code:

[#Form: Company Operations]               

Switch  : TSPL Addon Name LowerRel : TSPL Addon Name NotFor3.2 : $$Number:$$ProdInfo: +                    ProdReleaseAsStr)< 3.2

  Switch  : TSPL Addon Name CurrenRel : TSPL Addon Name For3.2: ($$Number:$$ProdInfo:

            ProdReleaseAsStr) >= 3.2

[!Form : TSPL Addon Name NOTFor3.2]

Local : Part   : CMP AccFeat Left : Add : Line : At End : TSPL Addon Name TEST

[!Form : TSPL Addon Name For3.2]

Local : Part  : CMP TallyShopFeatures Left : Add :  Line : At End  : TSPL Addon Name TESTFrom3.2


New Code

[#Part  : CMP TallyShopFeatures Left]      

Add :  Line : At End  : TSPL Addon Name TESTFrom3.2


TDL Code Changes Required

Code compatibility for TallyPrime & Tally.ERP 9

Incase customisation needs to be made compatible with Tally.ERP 9 and TallyPrime ‘Option’ can be used in most of the case. The option can be achieved  with the help of function $$ProdInfo as given below:

For Tally.ERP 9

$$ProdInfo:ProdMajorVersion = 1 and $$ProdInfo:ProdMinorVersion = 0 

For TallyPrime

$$ProdInfo:ProdMajorVersion = 1 and $$ProdInfo:ProdMinorVersion > 0


The buttons in the customised solutions shall not be functional in the following cases.

  1. Button F12 has been removed from Menu context.
  2. The custom buttons shall fail if any of the shortcut keys are already used in Default TDL. For example, F1 is a global key used for help; hence such button in customisation shall not work.
  3. Bottom ToolBar has been removed.
  4. Top Toolbar buttons have been completely reformed. Hence the existing toolbar buttons shall fail to load.
  5. By specifying the ‘Column Report’ and ‘Repeat’ attributes at the Report, “New Column”, “Alter Column” and “Delete Column” buttons shall not be automatically added in TallyPrime. Now the required buttons should be added as needed. The change provides the ability in the hands of the developer. It aids them to position the buttons as per their design choice and order.


[Report: MulCol Trial Balance]

ColumnReport: MyMultiColumns

[Form: MulCol Trial Balance]

;; To incorporate the change in TallyPrime

Bottom Button     : Add Column, Alter Column, Delete Column

  1. Menu Items at Gateway of Tally for masters, i.e. Accounts Info, Inventory Info, Payroll Info has been re-engineered for better user experience. All Master menu items have been moved under Create and Alter item. Each master has now been added as an Object, and related action needs to be specified at the object. Following coding elements should be referred.
    • The field has related Tables

[Field: CreateAlter Master]

Act On Table Element     : @CreateMaster : Execute Obj Actions            : MasterCreate

Act On Table Element     : @AlterMaster  : Execute Obj Actions            : MasterAlter

Table                    : CreateAlter Master, CreateAlter Action


The developer needs to modify the Collection ‘F10Accounting Masters Objects’ as all the objects would be in the context of an Internal Object as an Object. While adding Action in Object, make use of Label – ‘MasterAlter’ to change the existing values and an object Label –‘MasterCreate’ to create a new master.  These changes should be implemented as the field is already ready with the rest of engineering.  

  1. The import menu option moved from the menu ‘Gateway of Tally’ to Top toolbar button. The name of the menu ‘Import of Data’ has been replaced with the popup menu ‘Import TopMenu’ in the Top toolbar button.
  2. The menu definition ‘Company info’ has been replaced with the popup menu ‘Company TopMenu’ in the Top toolbar button.
  3. The menu ‘Configuration’ has been removed. The related configurations have been added under the respective features. For example, any configuration related to Import is moved under the menu definition ‘Import TopMenu’. These configurations are now specified as Objects.

[Menu: Import TopMenu]



Key Item  : @@locConfiguration       : N : Execute           : Import Configuration


[Report: Import Configuration]

Object     : App INI Config



[Field: Import Configuration]

 Use          : Table Config Template

Width     : @@OutputConfigWidth

Table      : Import Configurations, ImportExport ShowMore



[Table: Import Configurations]


Objects : Cfg Grouping Title, Cfg Bank Grouping Title   

;; A new title can be to this list

Explode   : Import General Configurations          : $Name = @@ConfigGeneral



[Collection: Import General Configurations]



 Objects   : Cfg ExpImp File Location, Cfg SV Ignore Error In Import, Cfg SV Overwrite ImpVch



[Object: Cfg ExpImp File Location]               

Use       : Output Configuration        

Name      : @@ImpExpFilePathTitle

Value     : $$ReportObject:$ExportPath

Action    : Config Action       : Modify Variables : Cfg ExpImp File Location

;; This opens a report to provide a path



[Object: Cfg SV Ignore Error In Import]

Use       : Output Configuration

Name      : @@IgnoreErrorsTitle

Value     : ##SVIgnoreErrInImport

Action    : Config Action : Set: SVIgnoreErrInImport: NOT ##SVIgnoreErrInImport

;; Variable value is changed



;; to provide any configuration item as advanced, i.e. hidden until the demand to show the following snippet is helpful



[Object: Cfg Import BatchSize]

Use                 : Output Configuration

Name                : @@ImpBatchSizeTitle

Value               : ##ImportBatchSize

IsAdvanced          : Yes  

;; This method name is identified whether to show or hide an object in a table

Action              : Config Action : Modify Variables       : Cfg Import BatchSize


General configuration

  • With the enhanced Popup Menu capability, the items in the General Configuration have now been placed in the Popup Menu, F1: Help invoked from the top buttons (F1: Help > Settings). The definition-name for the same is [Menu: Default Settings]
  • An individual optional form has been added to all the vouchers types to maintain unique configuration for each type of voucher. You may refer to the definition

[Form: Voucher Configuration]

Browser Reports

The customised reports could be viewed in a browser, and there were few lines of code which was required to be added from Tally.ERP 9 Release 6.6.1. However, from TallyPrime attributes/methods, ‘DefinitionName’ and ‘IsCollection’ at Object definition have been eliminated.

Two new attributes have been introduced at Object Definition, that would allow displaying a report and displaying a  collection in the Browser. The changes enable viewing of all reports in browser, giving an experience of structured navigation as ‘GoTo’ reports.

Attribute – Current Report

The attribute ‘Current Report’ at the object definition allows providing the name of a report which is required to be in the browser list.


                Current Report : <Display Report Name>


[Object: GT Trial Balance]

Use            : GoTo Report Obj

Name           : $$LocaleString:”Trial Balance”

Current Report : Trial Balance


Attribute – Current Collection

The attribute ‘Current Collection’ at the object definition allows providing the name of a collection which is required to be in the browser list.


Current Collection : <Display Collection Name>


[Object: GT Group Overdue Receivables]

Use                         : GoTo Group Obj

Name                        : $$LocaleString:”Group Overdue Receivables”

ViewName                    : $$LocaleString:”Overdue Receivables”

Current Collection          : Group Overdue Receivables

The List of Features in Read-only

  • Most of the interfaces in TallyPrime are customisable; however, few interfaces would be restricted. They are:
    • Top menus : Toolbar
    • About Page Report
    • All licensing and upgrade reports.
    • GoTo / Switch To– Customised reports can be included in GoTo. However, it is restricted to change the structure of the collection.
    • Company selection reports
    • All default folder selections
    • Core actions such as Shut company and Login as remote.
    • Create/Alter Master – New options can be added, structure change is not allowed

Please note that this reference manual is made while we are still working to refine the product for the official launch; this is based on the current view of the features/capabilities.

Unused Code

    • Since the default application TDL has changed to accommodate the desired experience, some definitions are updated or removed.  We may also find some code categorised as unused which may be eventually removed. Hence we suggest you to perform thorough testing of all your customisations.


[Menu: Import of Data]

  • Suggesting not to use any unused code as it may be removed in the upcoming releases.
Post a Comment

Is this information useful?