...

Присвоить сделке стадию скриптом

Тема в разделе "Разработчикам", создана пользователем Sy2173, 18 дек 2018.

  1. Sy2173

    Sy2173 New Member

    Добрый день. Такая задача - есть две воронки, каждая со своим набором стадий. Есть несколько типов сделок, каждая из которых привязана к воронке, т.е. к каждой воронке может относиться несколько типов сделок.
    Как можно в зависимости от типа присвоить сделке скриптом самую верхнюю стадию из соответствующей ей воронки?
    Спасибо.
     
  2. akarimov

    akarimov Member

    Общая рекомендация для таких вопросов - набирать PublicAPI и выбирать в автоподстановке какие есть варианты, 90% вопросов снимает.
    Смена стадии скриптом
    Код:
    PublicAPI.CRM.Sale.SetStage(PublicAPI.CRM.Sale.Load(1), PublicAPI.CRM.Objects.SaleStage.Load(1), "привет");
    Чтобы найти стадии воронки продаж можно обратиться к свойству SaleFunnel сделки
     
  3. Sy2173

    Sy2173 New Member

    Спасибо.
    делаю так:

    public virtual void Create_deal (Context context)
    {
    var sale = PublicAPI.CRM.Sale.Create ();
    sale.Name = "Сделка по продаже " + context.TipSdelki.Name;
    sale.SaleType = PublicAPI.CRM.Sale.LoadSaleTypeOrNull (context.TipSdelki.Name);

    //Определяем тип сделки по названию
    sale.Contractor = context.Kontragent;
    sale.Author = PublicAPI.Portal.Security.User.GetCurrentUser ();
    //автор - текущий исполнитель
    sale.Responsible = PublicAPI.Portal.Security.User.GetCurrentUser ();
    //ответственный - текущий исполнитель
    sale.Save ();
    var FunnelminStage = PublicAPI.CRM.Objects.SaleStage.Load(sale.SaleFunnel.SaleStages.Min(f => f.Id));
    PublicAPI.CRM.Sale.SetStage(sale, FunnelminStage, "автоматическое присвоение стадии");

    }



    получаю ошибку при выполнении:
    Произошла ошибка при выполнении операции "Создание сделки" (попытка 1)
    Информация об ошибке:
    Не удалось возобновить или запустить экземпляр процесса


    Где я напахал?
    Спасибо
     
  4. Sy2173

    Sy2173 New Member

    Спасибо.
    делаю так:

    public virtual void Create_deal (Context context)
    {
    var sale = PublicAPI.CRM.Sale.Create ();
    sale.Name = "Сделка по продаже " + context.TipSdelki.Name;
    sale.SaleType = PublicAPI.CRM.Sale.LoadSaleTypeOrNull (context.TipSdelki.Name);

    //Определяем тип сделки по названию
    sale.Contractor = context.Kontragent;
    sale.Author = PublicAPI.Portal.Security.User.GetCurrentUser ();
    //автор - текущий исполнитель
    sale.Responsible = PublicAPI.Portal.Security.User.GetCurrentUser ();
    //ответственный - текущий исполнитель
    sale.Save ();
    var FunnelminStage = PublicAPI.CRM.Objects.SaleStage.Load(sale.SaleFunnel.SaleStages.Min(f => f.Id));
    PublicAPI.CRM.Sale.SetStage(sale, FunnelminStage, "автоматическое присвоение стадии");

    }



    получаю ошибку при выполнении:
    Произошла ошибка при выполнении операции "Создание сделки" (попытка 1)
    Информация об ошибке:
    Не удалось возобновить или запустить экземпляр процесса


    Где я напахал?
    Спасибо
     
  5. akarimov

    akarimov Member

    предположу что дело в том, что сделку сделали без привязки к воронке продаж.
    чтобы разобраться надо логи почитать их смотрите по адресу
    C:\ELMA3-Standart\Web\logs\ScriptLog
     

Поделиться: