Название: Отключение процедуры верификации для 1С
Вид работы: статья
Рубрика: Экономика
Размер файла: 14.65 Kb
Скачать файл: referat.me-388669.docx
Краткое описание работы: Для начала ответим на вопрос - зачем это нужно? Это нужно для каких-либо изменений в структуре внутренних таблиц 1С и в первую очередь для подключения стандартного механизма репликации MS SQL.
Отключение процедуры верификации для 1С
Владимир Сердюк
Для начала ответим на вопрос - зачем это нужно? Это нужно для каких-либо изменений в структуре внутренних таблиц 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С мы столкнемся с дополнительными трудностями, которые впрочем, решаются. Однако это уже тема следующей статьи.
Похожие работы
-
Как учитывать движение денег, если компания рассчитывается через электронный кошелек
Чтобы открыть электронный кошелек, компании нужно заключить договор со специализированным оператором. Это может быть банк или другая кредитная организация. В таком кошельке деньги будут лежать, как на банковском счете.
-
Стандартное отклонение как индикатор риска финансовых инструментов
В статье анализируется поведение ценных бумаг крупнейших российских компаний на фоне второй волны мирового финансово-экономического кризиса. Проводится сравнение рискованности инвестиций в данные бумаги в разрезе двух периодов - периода спокойного роста 2005-2006 гг., а также периода 2011-2012 гг. В статье обосновывается использование статистического показателя стандартного отклонения как индикатора уровня рискованности конкретного финансового инструмента.
-
Основные понятия теории информационных систем в экономике
Цель данной контрольной работы – дать основные понятия и определения информационных систем, изложить основные идеи, связанные с использованием информационных систем и информационных технологий.
-
Демпинг в международной торговле - это продажа товара по ценам ниже внутренних и мировых. Зачем
Московский институт экономики, менеджмента и права Факультет экономики и финансов Кафедра экономики и управления ЭССЕ По дисциплине «Мировая экономика»
-
Общий план аудита
Задание Составите общий план аудита: ОБЩИЙ ПЛАН АУДИТА Проверяемая организация ………………………………………………… Период аудита ……………………………………………………………… Количество человеко-часов………………………………………………..
-
Рынок вторичного жилья
Исходные данные о продаже квартир на вторичном рынке жилья исследуемого региона, этапы нахождения на данной основе парной регрессии, уравнения линейной регрессии, выборочной дисперсии и ковариации. Определение средней стоимости квартиры, ее вариации.
-
Регистрация продаж и прогнозирование
Ведение записей, связанных с продажей товаров. Зачем нужно вести записи, связанные с продажей товаров. Прогнозирование. «плавающий» совокупный объем продаж.
-
Комплексное внедрение информационных технологий в розничной торговле
Торговые системы. Программное обеспечение для торговли: функции и параметры. Решения для сетей магазинов.
-
Ревизия маркетинга
Цель ревизии маркетинга — формирование основы для последующих маркетинговых решений. Вы примете лучшее решение, если научитесь систематически пересматривать известные факты. Проделайте это упражнение и повторяйте его по мере изменения ситуации.
-
Рискология. Методы верификации информации: сопоставительный анализ, метод поиска противоречий
Алгоритм рискологии. Метод рискологии: построение антирисковой программы, воплощение антирисковых мероприятий. Антирисковая программа проекта.