Отключение процедуры верификации для 1С

4581
знак
0
таблиц
0
изображений

Владимир Сердюк

Для начала ответим на вопрос - зачем это нужно? Это нужно для каких-либо изменений в структуре внутренних таблиц 1С и в первую очередь для подключения стандартного механизма репликации MS SQL. При подключении стандартного механизма репликации сервер автоматически добавляет служебные поля к таблицам, поставленным на репликацию. Также добавляются индексы и в некоторых случаях изменяются свойства столбцов, например identity.1С при прохождении процедура верификации анализирует структуру базы данных и в случае расхождения со структурой описанной в dds файле выводит ошибку и заканчивает сеанс.

Анализ в профайлере лога действий 1С по верификации показывает, что для анализа БД используются три хранимые процедуры: sp_columns, sp_tables, sp_statistics.

sp_tables - свойства таблицы

sp_columns – состав и свойства столбцов таблицы

sp_statistics – состав и свойства индексов таблицы

Отключать верификацию можно по-разному. Можно отключать верификацию только служебных полей или же конкретных таблиц. Я предпочитаю отключать верификацию полностью и заменять ее своей проверкой соответствия md – структура. Для того чтобы 1С проходило успешно процедуру верификации независимо от типа и состава изменений в БД, необходимо выполнить следующие действия. До изменений в структуре запоминать результаты, возвращаемые вышеописанными процедурами. Затем после изменений в структуре хранимые процедуры должны возвращать данные из записанного ранее хранилища.

У меня реализация была следующей:

1) Создается БД Verify_1C. В ней будут храниться данные о структуре БД 1С. Также в ней будет храниться таблица Check_Verify_1C в которой будут храниться флаги включения, отключения верификации конкретной базы.

CREATE TABLE [dbo].[Check_Verify_1C] (

[Base] [char] (50) COLLATE Cyrillic_General_CI_AS NOT NULL ,

[Flag] [int] NOT NULL

) ON [PRIMARY]

где Base – база данных 1С а Flag – флаг включения отключения верификации. Flag принимает следующие значения : 0 – стандартный режим работы БД,1 – включение на запись, 2 – включение на чтение.

2) Создаются таблицы sp_columns_1c, sp_statistics_1c, sp_tables_1c. В этих таблицах будет храниться информация возвращаемая соответствующими хранимыми процедурами а также плюс два дополнительных поля: Table_Name_1C – Таблица 1С , Base_1C – База данных 1С.

3) Меняются текст хранимых процедур sp_columns, sp_tables, sp_statistics. Учитывая что это системные хранимые процедуры и мы их просто так не поменяем нужно выполнить ряд действий. Сначала нужно включить свойство SQL сервера allow modification(разрешение модификации системных таблиц). Затем в sysobjects поменять значение поля status на любое другое значение пользовательской процедуры(как правило оно не отрицательное). Проделав эти операции мы сможем изменить текст системных хранимых процедур.

4) Изменяем текст хранимых процедур. Краткая концепция изменения следующая.

а) Если приложение не 1С или значение флага для конкретной БД равно 0 – процедуры работают как и раньше.

set @flag=0

select @flag=flag from verify_1c.dbo.Check_Verify_1C where base=db_name()

if (app_name()='1CV7') and (@flag<>0)

б) Если значение флага равно 1 то происходит запись в таблицы: sp_columns_1c, sp_statistics_1c, sp_tables_1c и возвращается результат приложению.

if @flag=1

begin

delete from [Verify_1c].[dbo].[sp_tables_1c] where table_name_1c=@table_name and base_1c=db_name()

insert into [Verify_1c].[dbo].[sp_tables_1c] select

в) Если значение флага равно 2 то происходит чтение из соответствующих таблиц

SELECT [TABLE_QUALIFIER], [TABLE_OWNER], [TABLE_NAME], [TABLE_TYPE], [REMARKS]

FROM [Verify_1c].[dbo].[sp_tables_1c]

where table_name_1c=@table_name and base_1c=db_name()

order by 4, 1, 2, 3

Собственно говоря и все… Для того чтобы нам отключить верификацию базы Test нам необходимо будет выполнить следующие действия:

1) Первый раз добавить базу Test в таблицу Check_Verify_1C.

2) Включить флаг на запись т.е. в 1-ку.

3) Запустить 1С и убедиться(можно и не убеждаться если вы все правильно сделали?)

что в таблицах sp_columns_1c, sp_statistics_1c, sp_tables_1c появились записи

соответствующие процедурам.

4) Ставим флаг на чтение и можем теперь менять структуру, так как мы того захотим.

1С получит от хранимых процедур именно то,что она ожидает.

У меня все подобные действия оформлены в виде хранимых процедур и отключение включение верификации выполняется буквально нажатием одной кнопки.

P.S. При изменении структуры таблиц мы можем отключать верификацию, но во время работы 1С мы столкнемся с дополнительными трудностями, которые впрочем, решаются. Однако это уже тема следующей ста


Информация о работе «Отключение процедуры верификации для 1С»
Раздел: Экономика
Количество знаков с пробелами: 4581
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
509004
6
0

... ? 8. Какими программами можно воспользоваться для устранения проблем и ошибок, обнаруженных программой Sandra? Раздел 3. Автономная и комплексная проверка функционирования и диагностика СВТ, АПС и АПК Некоторые из достаточно интеллектуальных средств вычислительной техники, такие как принтеры, плоттеры, могут иметь режимы автономного тестировании. Так, автономный тест принтера запускается без ...

Скачать
194837
52
45

... 1 13000 Инженер-программист 1 10000 Техник 1 7000 Итого: 3 30000   Данные взяты в ЗАО ПГО «Тюменьпромгеофизика».   6.2.2 Перечень основных этапов разработки локальной промышленной сети BitBus Проектирование происходит в несколько этапов, в которых принимает участие не только состав группы разработчиков, но и монтажники, обеспечивающие монтаж витой пары. Все этапы работ приведены в ...

Скачать
142131
7
0

... ; Если в системную плату не установлено дополнительных контроллеров В целях выявления конфликтов Отключив эту опцию вы также увеличите скорость загрузки своей системы. Потому как BIOS контроллера не будет загружаться и соответственно опрашивать устройства на этом канале. Так что если вы не используете дополнительных контроллеров, лучшим вариантом будет отключение этой опции. USB ...

Скачать
78878
2
0

... , гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP. 2 Разработка интернет-магазина для предприятия «Электра»   2.1 Принципы работы интернет магазина   2.1.1 Оформление заказа Выбрав необходимые товары или услуги, пользователь обычно имеет возможность тут же на сайте выбрать метод оплаты и доставки. ...

0 комментариев


Наверх