Была такая проблема у версии 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) |
Как говорится, счастье где-то близко!

