public static void Exec(MercatorUi.MovableControls.MovableButton clickedButton)
{
    // enter your customized code here
    MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)clickedButton.Form;
    MercatorUi.Engine.Gescom.BillingEngine billingEngine = billingForm.BillingEngine;
    if (billingEngine.ReadOnly) // si l'utilisateur n'a pas le droit de modifier ce document
        return;
    int n = billingEngine.AppendLine(true); // le paramètre true permet de ne pas créer une nouvelle ligne si la dernière ligne est vide
    if (billingEngine.InsertItem("618173915I", billingEngine.LIGNES.Rows[n])) // 618173915I est l'ID de l'article à ajouter
    {
        n = billingEngine.AppendLine();  // ajouter une nouvelle ligne vide
        billingForm.LinesEditor.Grid.CurrentCell = billingForm.LinesEditor.Grid.Rows[n].Cells[0]; // activer la première cellule de la ligne créée
    }
}