2 Likefire:
Это наиболее правильный подход!
2 Dem1urg:
Вот мой кусок кода (работающий!

под 4-ку!

)
Код:
int leadNumber = 1;
// загружаем системные параметры
QueryExpression qeParams = new QueryExpression();
qeParams.ColumnSet = new AllColumns();
qeParams.EntityName = EntityName.new_customparams.ToString();
BusinessEntityCollection customParams = serv.RetrieveMultiple(qeParams);
if ((customParams.BusinessEntities != null) && (customParams.BusinessEntities.Length > 0))
{
new_customparams currentParams = (new_customparams)customParams.BusinessEntities[0];
DateTime leadlastdate = DateTime.Parse(currentParams.new_leadlastdate.Value);
if (leadlastdate.ToString("d") == DateTime.Today.ToString("d"))
{
leadNumber = currentParams.new_leadcounter.Value + 1;
}
else
{
currentParams.new_leadlastdate = new CrmDateTime();
currentParams.new_leadlastdate.Value = DateTime.Today.ToString("s");
}
currentParams.new_leadcounter.Value = leadNumber;
serv.Update(currentParams);
}
// присваиваем номер интересу
lead currentLead = (lead)serv.Retrieve(EntityName.lead.ToString(), leadId, new AllColumns());
currentLead.new_number = "L-" + DateTime.Now.ToString("yyyyMMdd") + "-" + leadNumber.ToString("000");
serv.Update(currentLead);