Владимир Сердюк
Для начала ответим на вопрос - зачем это нужно? Это нужно для каких-либо изменений в структуре внутренних таблиц 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С мы столкнемся с дополнительными трудностями, которые впрочем, решаются. Однако это уже тема следующей статьи.
Другие работы по теме:
Неопозитивизм
Неопозитивизм Неопозитивизм, одно из основных направлений буржуазной философии 20 в. Н. возник и развивался как течение, претендующее на анализ и решение актуальных философско-методологических проблем, выдвинутых развитием современной науки, — роли знаково-символических средств научного мышления, отношения теоретического аппарата и эмпирического базиса науки, природы и функции математизации и формализации знания и пр.
Контент-анализ, как метод исторического исследования
Контент-анализ (contents - англ.: содержание, содержимое) – научный метод, предполагающий формализованное исследование содержания текстовых массивов в целях выявления и измерения, представленных в них социальных, культурных особенностей.
Программа логического позитивизма. Критерий верификации
Мы обычно выясняем значение слов и предложений. Высказывание представляет собой значение предложения, а не то, что само имеет значение. В то же время именно высказывания мы верифицируем и описываем как истинные или ложные.
Расчет светотехнической установки животноводческого помещения
РАСЧЕТ СВЕТОТЕХНИЧЕСКОЙ УСТАНОВКИ ЖИВОТНОВОДЧЕСКОГО ПОМЕЩЕНИЯ Введение Проектирование светотехнических установок (СТУ) для животноводческих помещений имеет ряд специфических особенностей, связанных, в первую очередь, с технологией содержания животных.
Расчет светотехнической установки животноводческого помещения
Ориентировочный расчет светотехических установок, их основных элементов и составных частей. Определение числа светильников и принципы их размещения. Расчет питающей сети, необходимой для необходимого количества светильников. Порядок заземления системы.
Таможенная процедура временного ввоза допуска особенности заполнения декларации
1.1.Содержание таможенной процедуры временного ввоза (допуска) товаров Временный ввоз (допуск) - таможенная процедура, при которой иностранные товары используются в течение установленного срока на таможенной территории таможенного союза с условным освобождением, полным или частичным, от уплаты ввозных таможенных пошлин, налогов и без применения мер нетарифного регулирования с последующим помещением под таможенную процедуру реэкспорта.
Критерии оценки искренности и неискренности человека
Социальная психологическая компетенция, актуализируемая в знании приемов психологической верификации лжи и неискренности в поведении человека, является важной предпосылкой успешной профессиональной деятельности.
Методы психологии труда
Метод наблюдения. Метод опроса. Лабораторный эксперимент. Методы построения простых и сложных теоретических объектов. Преобразующие или конструктивные методы психологии труда.
Модели научного познания
Сколько бы не испытывался эмпирическими данными какой-либо закон, не существует гарантий, что не появятся новые наблюдения, которые будут ему противоречить.
Основные принципы СМК
Принцип 1 – Ориентация на потребителя Для реализации этого принципа разработаны процессы и соответствующие документированные процедуры: А31 - «Маркетинг и реклама», А34 - «Сопровождение продукции», А45 - «Измерение удовлетворенности потребителей». Эти процессы постоянно обеспечивают руководство информацией о требованиях, ожиданиях и удовлетворенности потребителей продукцией компании.
Расчет загрузки трансформаторов
ІНЕСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ УЧБОВИЙ ЗАКЛАД ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ Кафедра ЕПМ КОНТРОЛЬНА РОБОТА з курсу
Эмерсон, Эрнест Аллен
Введение 1 Биография 2 Награды Список литературы Введение Эрнест Аллен Эмерсон (англ. Ernest Allen Emerson, Даллас, США) — американский учёный в области теории вычислительных систем, лауреат премии Тьюринга. В настоящее время является профессором информатики в университете Техаса.
Авария в энергосистеме в Нью-Йорке 1977
План Введение 1 Предпосылки 2 Хронология событий 3 Последствия 4 Цитаты 5 Источники Список литературы Введение Авария в энергосистеме в Нью-Йорке — массовое отключение электроснабжения Нью-Йорка, произошедшее в ночь с 13 на 14 июля 1977 года; единственным районом, не охваченным этим отключением, был район Южный Квинс, обслуживавшийся компанией Long Island Lighting Company.
Кларк, Эдмунд Мельсон
План Введение 1 Биография 2 Книги 3 Награды Список литературы Введение Эдмунд Мельсон Кларк младший (англ. Edmund Melson Clarke, Jr., 27 июля 1945 года, США) — американский учёный в области теории вычислительных систем, лауреат премии Тьюринга. В настоящее время является профессором информатики в университете Карнеги — Меллон.
Блюм, Мануэль
План Введение 1 Биография 2 Награды Список литературы Введение Мануэль Блюм (исп. Manuel Blum; 26 апреля 1938 года, Каракас, Венесуэла) — учёный в области теории вычислительных систем, профессор по информатике в университете Карнеги — Меллон. Награждён в 1995 году премией Тьюринга за достижения в исследовании основ теории сложности вычислений и их применении в криптографии и верификации программ.
Авария в энергосистеме в США и Канаде 2003
Штаты и провинции оставшиеся без электричества 14 августа 2003 года между 15:45 и 16:15 по стандартному восточному времени (23:45 и 0:15 по московскому времени), наблюдатели в Кливленде, Толедо, городе Нью-Йорк, Олбани, Детройте и в части Нью-Джерси сообщили о перебоях в подаче электроэнергии [1].
Работа с регулярными выражениями в SQL Server
В SQL Server 7/2000 нет встроенной поддержки работы с регулярными выражениями. Но SQL Server похволяет работать с COM-объектами. В VBScript (библиотека vbscript.dll) есть специальный объект для работы с регулярными выражениями - RegExp.
Автозагрузка в Windows XP
Существует немало способов автозагрузки программ. Ниже приведены несколько вариантов для ознакомления, возможно это поможет вам, если возникнет необходимость найти и удалить какую-либо программу из автозагрузки.
Работа в сети Windows 95
МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им Н. П. Огарева РЕФЕРАТ на тему: «Работа в сети Windows 95» Выполнила: Резакова Н. Г. Проверила: Саранск 1999г.
Микроконтроллеры семейства MCS51 Intel
Инструкции MCS51 Intel Инструкции, модифицирующие флаги (1) Инструкция C OV AC Инструкция C OV AC CLR C ADDC CPL C SUBB ANL C,bit ANL C,/bit ORL C,bit ORL C, bit
Тестирование и верификация HDL-моделей компонентов SOC
Анализ тестопригодности графа управления автоматной модели HDL-программы. Фрагмент модуля дискретного косинусного преобразования и кода механизма ассерций. Особенности верификации дискретного косинусного преобразования в среде Questa, Mentor Graphics.
Кризис 2
Кризис -это обостренная форма противоречий системы, где под системой подразумевают комплекс взаимосвязанных элементов. 2 выхода из кризиса : разрушение и обновление системы.
Аудит операций с основными средствами 3
Аудит операций с основными средствами. Цель аудита основных средств (ОС) – формирование мнения о достоверности бухгалтерской отчетности по информации об ОС .
Карл Поппер
Поппер (Popper) Карл Раймунд (р. 28.7.1902, Вена), австро-английский философ-неопозитивист, логик и социолог.