Была такая проблема у версии 5.0 1С-Битрикс ASP.NET, если не ошибаюсь. В более поздних обновлениях должны были исправить, но я, если честно не знаю, ибо поправил проблему самостоятельно руками.
В общем, проблема проявляется так - заходим из админки в инфоблок (любой) - выдаёт ошибку:
При этом если Контент-менеджер зайдёт через публичную часть, "редактирование", и нажмёт на пиктограмме "добавить", то благополучно добавит новость... Т.е. проблема именно в админке.
Решается довольно просто с помощью следующего запроса к MS SQL базе данных:
Как говорится, счастье где-то близко!
В общем, проблема проявляется так - заходим из админки в инфоблок (любой) - выдаёт ошибку:
Код |
---|
Server Error in '/' Application. Invalid column name 'XmlId'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'XmlId'. Source Error: Line 73: typeId = iblock.TypeId; Line 74: hfTypeId.Value = typeId.ToString(); Line 75: type = BXIBlockType.GetById(typeId); Line 76: if (type == null) Line 77: Response.Redirect("IBlockTypeList.aspx"); Source File: c:\inetpub\wwwroot\bitrixnet\web\bitrix\admin\IBlockListAdmin.aspx.cs Line: 75 Stack Trace: [SqlException (0x80131904): Invalid column name 'XmlId'.] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +212 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +245 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2811 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +58 System.Data.SqlClient.SqlDataReader.get_MetaData() +112 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +6281668 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +6282737 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +424 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +28 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +211 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) +87 Bitrix.DataLayer.BXSqlCommand.ExecuteReader(CommandBehavior behavior) +293 Bitrix.DataLayer.BXEntity`3.ExecuteSql(String commandText, SqlParameter[] parameters, BXQueryParams queryParams, IBXTextEncoder textEncoder, BXSchemeBase scheme, IBXEntityValueMap valueMap) +416 Bitrix.DataLayer.BXEntity`3.GetListInternal(BXFilter filter, BXOrderBy orderBy, BXSelect select, BXQueryParams queryParams, IBXTextEncoder textEncoder, BXSchemeBase scheme) +1274 Bitrix.DataLayer.BXEntity`3.GetByIdInternal(Object id, IBXTextEncoder textEncoder, BXSchemeBase scheme) +589 Bitrix.DataLayer.BXEntity`3.GetByIdInternal(Object id, IBXTextEncoder textEncoder) +16 Bitrix.DataLayer.BXEntity`3.GetById(Object id) +113 bitrix_admin_IBlockListAdmin.InitPage() in c:\inetpub\wwwroot\bitrixnet\web\bitrix\admin\IBlockListAdmin.aspx.cs:75 bitrix_admin_IBlockListAdmin.GridView1_GetSettingsQueryString(Object sender, BXGridViewGetSettingsQueryStringEventArgs e) in c:\inetpub\wwwroot\bitrixnet\web\bitrix\admin\IBlockListAdmin.aspx.cs:188 Bitrix.UI.BXGridView.ResolveSettingsQueryString() +108 Bitrix.UI.BXGridViewSettings.BuildProfileKey(BXGridView grid, String id) +61 Bitrix.UI.BXGridView.TryUserSettings() +73 Bitrix.UI.BXGridView.LoadUserSettings() +40 Bitrix.UI.BXGridView.OnInit(EventArgs e) +627 System.Web.UI.Control.InitRecursive(Control namingContainer) +143 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1477 Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927 |
При этом если Контент-менеджер зайдёт через публичную часть, "редактирование", и нажмёт на пиктограмме "добавить", то благополучно добавит новость... Т.е. проблема именно в админке.
Решается довольно просто с помощью следующего запроса к MS SQL базе данных:
Код |
---|
IF OBJECT_ID('dbo.b_IBlockType', 'U') IS NOT NULL AND NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA+'.' = 'dbo.' AND TABLE_NAME='b_IBlockType' AND COLUMN_NAME='XmlId' ) ALTER TABLE dbo.b_IBlockType ADD XmlId NVARCHAR(255) |
Как говорится, счастье где-то близко!