Реализации одного из инструментов отладки на примере автоматизации процесса определения внутренней структуры 1с предприятие 8

Эта статья обрисовывает реализацию одного из отладки и инструментов тестирования. Рассматривается это на примере идентификации внутренней структуры базы данных [advert=103]1С[/advert] Предприятие 8.0.(SQL) для произвольной конфигурации.

Материал размещён на сайте Softpoint.ru

Владимир СердюкДано: Произвольная конфигурация на базе 1С Предприятие 8.0. (SQL)

Цель: Максимально автоматизировать процесс идентификации внутренней структуры к объектам на уровне приложения.

Реализация: Для начала нужно осознать, как это возможно было бы сделать вручную. Разумеется, брать в руки профайлер настраивать трейсы. Изменяя объекты приложения, сопоставлять данные в трейсах с соответствующими трансформациями объектов.

В общем, данный процесс не сложный, но довольно-таки трудоемкий и рутинный. На помощь в автоматизации этого процесса нам приходят триггера MSSQL и возможность их динамического создания. Также, имея возможность определения структуры метаданных как в 1С, так и в MS SQL(системных объектов), мы приобретаем целый нужный инструментарий.

Итак, метод автоматизации содержится в исполнении следующих пунктов:

1) Создаем триггера на все объекты MSSQL базы. В реализации триггера указывается запись в отдельную таблицу следующих значений : ИмяТаблицы, ИмяИзмененногоПоля, PK либо неповторимый индекс поменянной записи, ЗначениеИзВременнойТаблицы.

В переменную ЗначениеИзВременнойТаблицы будет передаваться из 1С соответствующее трансформации в объекте 1С. Фактически говоря, совокупность этих триггеров это имеется практически одна из совокупностей логирования в БД.

2) Реализуем функцию, которая будет передавать в MSSQL значение трансформации в объекте 1С. Передавать мы должны так что бы после этого возможно было взять это значение и присвоить переменной ЗначениеИзВременнойТаблицы в вышеописанной совокупности триггеров.

3) Организуем циклом перебор метаданных в 1С. Производим последовательное изменение объектов 1С.Передаем в переменную ЗначениеИзВременнойТаблицы конкретное изменение объекта. Передать значение в ЗначениеИзВременнойТаблицы нужно до исполнения команды изменяющей объект для того что бы триггер получил данные о том какой объект 1С его позвал и какие конкретно трансформации в этом объекте случились.

Фактически говоря, в этом пункте и содержится одна из сложностей не разрешающая данный метод сделать всецело универсальным. Дело в том, что 1С применяет агрегацию данных и также логика трансформаций зависит от текущего состояния объекта.

В случае если мы поменяем, значение одного реквизита при, в то время, когда документ уже существует в базе и в то время, когда данный документ создается в первый раз в следствии возьмём разный комплект команд к SQL серверу. С агрегацией подобная обстановка.

Предположим у нас имеется два однообразных документа с отличием по дате в год, осуществляющих линейное перемещение по регистрам(для упрощения без обработки всякой логики). Так вот при проведения первого документа мы возьмём одно количество трансформаций по агрегационным записям, а случае проведения второго второе количество.

Реализовав подобную систему на выходе, мы возьмём соответствие объектов 1С к объектам MS SQL. Само собой разумеется, необходимо осознавать, что информация в взятой таблице довольно-таки сыра и потребует некоей обработки. Также, возможно составить последовательность операций с метаданными и соответствующую обработку результирующей таблицы, дабы выяснить машинально для данной конфигурации внутреннюю структуру данных.

Не имеет значение, будем мы заново создавать либо удалять эту конфигурацию, в какой последовательности создавать в конфигураторе объекты метаданных — подобная система конкретно выяснит соответствие. Но необходимо понимать следующее — для любой произвольно забранной конфигурации эта совокупность трудиться не будет.

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

Подобная система это инструмент. Посредством этого инструмента эксперт достаточно скоро разберется с любой интересующей его структурой.

1с 8.3 УФ: 07. Сложные типы Массив, СписокЗначений, Структура, ТаблицаЗначений, Циклы


Похожие заметки:

Понравилась статья? Поделиться с друзьями: