Здравствуйте!
Возникает ошибка при попытке зайти в раздел Итоги от системного администратора Supervisor.
В ходе исследования проблемы, было обнаружено, что не запускается окно «Продажи на текущий месяц».
Появляется ошибка: Exception Message: Incorrect syntax near the keyword 'AND'.
Ошибка возникает в методе InitScriptExecute в строке select.Condition.Add(queryCondition).
Т.е. если ее закомментировать, то ошибки нет, но и фильтрации нет.
Если запускать отладчик C# и смотреть через него, то программа слетает в методе PageLoadCompleteScriptTaskExecute в строке Page.DataSource.LoadRows().
Версия BPM 5.4.0.317
Нравится
Александра, если логика окна «Продажи на текущий месяц» не изменялась, для устранения ошибки следует заменить код скрипта InitScript на:
Page.DataSource.PrepareFilters += delegate(object sender, DataSourceEventArgs e) { Page.ThrowEvent("PrepareFilters"); }; Page.DataSource.Loading += delegate(object sender, DataSourceEventArgs e) { var startMonthDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); var endMonthDate = startMonthDate.AddMonths(1).AddSeconds(-1); var select = e.SelectQuery; var queryCondition = new QueryCondition(select); if (select.Condition.Count != 0) queryCondition.LogicalOperation = LogicalOperation.And; else queryCondition.LogicalOperation = LogicalOperation.None; queryCondition.Exists(new Select(UserConnection).Column(Column.Asterisk()) .From("Invoice") .Where("Invoice", "OpportunityId").IsEqual("Opportunity", "Id") .And("Invoice", "OwnerId").IsEqual(Column.Parameter(UserConnection.CurrentUser.ContactId)) .And("Invoice", "PaymentStatusId").Not().IsEqual(Column.Parameter(new Guid("698d39fd-52e6-df11-971b-001d60e938c6"))) .And("Invoice", "DueDate").IsBetween(Column.Parameter(startMonthDate)).And(Column.Parameter(endMonthDate)) .And("Opportunity", "OwnerId").IsEqual(Column.Parameter(UserConnection.CurrentUser.ContactId)) ); select.Condition.Add(queryCondition); }; return true;