Книга знаний

1С:Предприятие / v8

v8: Технология создания отладочных баз для хранилища конфигурации

Как отлаживаться на копии рабочей базы, если рабочая база не подключена к хранилищу?Автор статьи: Гений 1С | Редакторы:
Последняя редакция №2 от 29.06.06 | История
URL: http://kb.mista.ru/article.php?id=264

Ключевые слова: хранилище,отладка,конфигурация,объединение конфигураций,ВыгрузкаЗагрузкаXML,XML


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

Но в таком случае у программистов возникают проблемы с созданием отладочной базы - при подключении копии базы к хранилищу из-за несовпадения внутренних идентификаторов объектов они удаляются и создаются по новой. К сожалению, 1С не предусмотрело режим сопоставления объектов не по внутренним идентификаторам, а по обычным идентификаторам - названиям справочников.

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

Конечно, перенос данных может идет долго (может длиться всю ночь), но зато можно отлаживать данные на реальных данных и использовать все преимущества хранилища.

Чтобы не изобретать велосипед, можно использовать типовую обработку ВыгрузкаЗагрузкаXML с диска ИТС.
Только в ней в процедуре ОбработкаРезультатаЗапроса нужно включить вызов процедуры ЗаписатьXML в блок попытка-исключение, чтобы пропускать элементы, содержащие недопустимые символы XML (обидно, когда вся выгрузка вылетает из-за парочки элементов):
                Попытка
                    ЗаписатьXML(ЗаписьXML, Объект);
                Исключение
                    ОписаниеОшибки=ОписаниеОшибки();
                    Сообщить("Объект "+ТипЗнч(Объект)+":"+Объект+" не передан, ошибка:"+ОписаниеОшибки);
                КонецПопытки;


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

В обще случае алгоритм такой:

1. Выгрузить все данные обработкой ВыгрузкаЗагрузкаXML.
2. Создать новую отладочную базу или отключить имеющуюся от хранилища и очистить ее загрузкой пустого *.dt файла (выгрузка из пустой базы).
3. Подключить отладочную базу к хранилищу.
4. Отключить отладочную базу от хранилища.
5. Объединить отладочную базу с конфигурацией рабочей базы с приоритетом рабочей базы.
6. Загрузить данные из файла в отладочную базу (на этот момент конфигурации идентичны).
7. Подключить отладочную базу к хранилищу.

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

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика