v8: Технология создания отладочных баз для хранилища конфигурации Ключевые слова: хранилище,отладка,конфигурация,объединение конфигураций,ВыгрузкаЗагрузкаXML,XML
В 1С 80 появилось хранилище конфигурации, но часто рабочая база не подключается к хранилищу конфигурации, а изменения в конфигурацию рабочей базы вносятся путем объединения ее конфигурации с конфигурацией хранилища. Вполне логичный прием.
Но в таком случае у программистов возникают проблемы с созданием отладочной базы - при подключении копии базы к хранилищу из-за несовпадения внутренних идентификаторов объектов они удаляются и создаются по новой. К сожалению, 1С не предусмотрело режим сопоставления объектов не по внутренним идентификаторам, а по обычным идентификаторам - названиям справочников.
Поэтому приходится или отлаживаться на копии базы, помечая изменения, а потом внося их в хранилище, или подключать к хранилищу пустую базу, а потом заливать в нее внешними обработками все данные из рабочей базы.
Конечно, перенос данных может идет долго (может длиться всю ночь), но зато можно отлаживать данные на реальных данных и использовать все преимущества хранилища.
Чтобы не изобретать велосипед, можно использовать типовую обработку ВыгрузкаЗагрузкаXML с диска ИТС.
Только в ней в процедуре ОбработкаРезультатаЗапроса нужно включить вызов процедуры ЗаписатьXML в блок попытка-исключение, чтобы пропускать элементы, содержащие недопустимые символы XML (обидно, когда вся выгрузка вылетает из-за парочки элементов):
Попытка
ЗаписатьXML(ЗаписьXML, Объект);
Исключение
ОписаниеОшибки=ОписаниеОшибки();
Сообщить("Объект "+ТипЗнч(Объект)+":"+Объект+" не передан, ошибка:"+ОписаниеОшибки);
КонецПопытки;
Чтобы полученный файл загрузился, конфигурации должны быть идентичны. Но в рабочей базе иногда могут быть лишние реквизиты, которые давно уже удалены в хранилище. Поэтому нужно выполнить некую последовательность действий для приведения баз в идентичное состояние.
В обще случае алгоритм такой:
1. Выгрузить все данные обработкой ВыгрузкаЗагрузкаXML.
2. Создать новую отладочную базу или отключить имеющуюся от хранилища и очистить ее загрузкой пустого *.dt файла (выгрузка из пустой базы).
3. Подключить отладочную базу к хранилищу.
4. Отключить отладочную базу от хранилища.
5. Объединить отладочную базу с конфигурацией рабочей базы с приоритетом рабочей базы.
6. Загрузить данные из файла в отладочную базу (на этот момент конфигурации идентичны).
7. Подключить отладочную базу к хранилищу.
Ну для ленивых все же можно внести основной массив изменений в хранилище, потом выгрузить конфигурацию хранилища в файл, объединить конфигурацию отладочной базы с конфигурацией хранилища, проверить как все работает, исправить мелкие ошибки, перенести исправления в хранилище. Повторить при надобности. |