вторник, 11 октября 2011 г.

Нарушена целостность структуры конфигурации 1С

Причины нарушения целостности структуры конфигурации могут быть разные. В моем случае это оказался некорректно прошедший обмен данными по распределенке, причем с передачей изменений конфигурации.
При нарушении целостности структуры конфигурации, последняя может себя вести по разному. У меня все оказалось совсем плохо. При попытке зайти в конфигуратор получал следующее сообщение:


Как видим, вариантов действий система нам предоставляет не много и не всегда есть возможность выполнить откат конфигурации с помощью ключа /RollbackCfg.
Но, не все так печально! Все лечится.
Для того, что бы получить возможность зайти в конфигуратор необходимо
, в базе MS SQL Server'а, очистить таблицу ConfigSave (в ней хранится основная конфигурация, которая как известно предназначена для непосредственного редактирования в режиме конфигуратора) и перенести в нее содержимое таблицы Config, в которой хранится конфигурация базы данных.
Итак, поехали:

USE [my_base]
GO
DROP TABLE [dbo].[ConfigSave]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ConfigSave](
[FileName] [nvarchar](128) NOT NULL,
[Creation] [datetime] NOT NULL,
[Modified] [datetime] NOT NULL,
[Attributes] [smallint] NOT NULL,
[DataSize] [int] NOT NULL,
[BinaryData] [image] NOT NULL,
PRIMARY KEY CLUSTERED
(
[FileName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO ConfigSave
SELECT * FROM Config
GO

Данный скрипт взят у специалиста из Раруса Вячеслава Гилёва.

4 комментария:

  1. Добрый день!
    Ваше решение для MS-SQl 2008 подходит?

    ОтветитьУдалить
    Ответы
    1. Добрый день! Решение проблемы проверялось мной на SQL Server 2008 и 2008 R2

      Удалить
  2. Ответы
    1. По поводу DB2, к сожалению, ничего не могу Вам посоветовать, т.к. опыта работы с этой DBMS имею не много.

      Удалить