gifts2017

Загрузка метаданных в КД через файл 1.02

Опубликовал Геннадий Пиганов (Totoro) в раздел Обмен - Обмен через XML

Обработка загрузки структуры метаданных в конфигурацию "Конвертация данных" через файл. Работает с измененными КД. Более удобный процесс индикации хода загрузки.

Отличия от типовой обработки загрузки:

  1. Работает с измененными КД (конфигурациями "Конвертация данных", у которых изменен порядок или состав реквизитов справочников "Конфигурации", "Объекты", "Свойства", "Значения"), т.к. переделан  механизм загрузки (загрузка выполняется не через XML-сериализацию, а через разбор файла XML).
  2. Позволяет загружать из одного файла метаданных несколько новых конфигураций, а не одну (загрузка только в одну конфигурацию - особенность механизма XML-сериализации в типовой обработке загрузки).
  3. Переделана форма информации о ходе загрузке. Информация отображается в основной форме и, как мне кажется, теперь она более информативная в плане оставшегося времени ожидания.
  4. Может загружать метаданные из файла выгруженного обработками, предназначенными для другой версии КД (в разумных пределах, на совсем старых версиях не проверял). Этим режимом управляет флажок "Выполнить загрузку при обнаружении неизвестных метаданных". Если он установлен, то такие метаданные будут пропущены, но поддерживаемые данные будут загружены. Если сброшен, то будет генерироваться ошибка.
  5. В файловом варианте КД работает быстрее типовой обработки. В клиент-серверном не проверял.

P.S. Вывод времени выполнения отключается в модуле обработки: мРежимОтладки = Ложь;

+ Бонус: Немного подправленная для ускорения загрузки (в двух местах) типовая обработка загрузки метаданных.

+ Бонус: Подправленная типовая обработка MD82Exp для обхода ошибки выгрузки битых ссылок в составе планов обмена.

Скачать файлы

Наименование Файл Версия Размер
ЗагрузкаСтруктурыМетаданныхКДФайл82 1_01.epf 42
.epf 22,25Kb
17.01.12
42
.epf 22,25Kb Скачать
ЗагрузкаСтруктурыМетаданных (бонус) для КД 2.1.5 9
.zip 29,41Kb
26.01.12
9
.zip 29,41Kb Скачать
MD82Exp (Бонус) для КД 2.1.5 6
.epf 20,35Kb
26.01.12
6
.epf 20,35Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Модератор раздела Артур Аюханов (artbear) 09.01.12 17:57
Молодец. Очень удобная и нужная фича.
2. Геннадий Пиганов (Totoro) 09.01.12 23:20
(1) Старался :). Теперь, когда утрясутся январские изменения законодательства, буду переделывать КД+ИР с учетом опыта последних двух обработок загрузки.
3. Маратик Гайнутдинов (Черный Плащ) 11.01.12 09:10
Держи + за хорошее решение
4. Геннадий Пиганов (Totoro) 11.01.12 11:31
Если у кого есть доступ к партнерке - кинте туда, плиз, мою бонусную обработку. Может в следующей КД типовую тогда исправят.
Там исправления минимальные (в двух местах ускорена загрузка и добавлен обработчик закрытия формы прогресса при прерывании загрузки пользователем или ошибке). Суть ускорения загрузки в том, что обход файла XML выполняется два раза: первый раз читается конфигурация и объекты, а второй свойства. Так вот пропуск свойств при первом обходе (а свойств всегда много) происходит через XML-сериализацию (т.е. выполняется полное чтение значения с проверкой типов), хотя достаточно просто пропустить весь узел. Проверка значения свойств все равно при втором обходе будет. В результате выигрыш в несколько минут.
5. Геннадий Пиганов (Totoro) 16.01.12 11:12
В версии 1С 8.2.15 обработка не работает, т.к. там был исправлен результат выполнения ЧтениеXML.Пропустить(). Прошу прощения, что прозевал. Вечером дотестирую и выложу исправленную обработку.
6. Геннадий Пиганов (Totoro) 17.01.12 10:37
1.02
- добавлена поддержка 8.2.15
7. Алекс Ю (AlexO) 23.01.12 10:53
(0) непонятно из описания:
"1) Работает с измененными КД (у которых изменен порядок или состав реквизитов справочников "Конфигурации", "Объекты", "Свойства", "Значения")"
- что такое "измененные КД" - измененные конвертации данных??
и разве КД не все равно, какие метаданные грузить?
"2) Позволяет загружать из одного файла метаданных несколько новых конфигураций, а не одну"
- из нескольких конф в одну? это как? и что получится в итоге?
"4) Может загружать метаданные из файла выгруженного обработками, предназначенными для другой версии КД (в разумных пределах, на совсем старых версиях не проверял). Этим режимом управляет флажок "Выполнить загрузку при обнаружении неизвестных метаданных". Если он установлен, то такие метаданные будут пропущены. Если сброшен, то будет генерироваться ошибка."
- т.е. не "может загружать", а игнорирует непонятные метаданные?
"5) В файловом варианте КД работает быстрее типовой обработки."
- это хорошо ))
8. Геннадий Пиганов (Totoro) 23.01.12 12:41
(7)
1) Да, КД - общепринятое (во всяком случае я с таким сокращением встречаюсь постоянно :) ) сокращение конфигурации "Конвертация данных". Т.к. загрузка идет через XML-сериализацию, то состав реквизитов и даже их порядок должен соответствовать полность. В одной из версий КД был даже глюк, когда при обновлении менялся порядок и стандартная загрузка не работала.
2) Попробуй загрузить дважды как новую конфигурацию один и тот же файл. В лучшем случае в КД будет одна конфигурация ) Это особенность XML-сериализации, т.к. объекты будут создаваться по УИД (уникальному идентификатору), а он дважды будет идентичный.
4) Да, игнорирует. Загрузить того что в КД нет она естественно не сможет. Но, то что есть загрузится.
9. Алекс Ю (AlexO) 23.01.12 13:22
(8) Totoro,
"Попробуй загрузить дважды как новую конфигурацию один и тот же файл. "
- а зачем такой финт нужен?
10. Геннадий Пиганов (Totoro) 23.01.12 14:51
(9) Почему финт?! У меня метаданные не менялись у конфы, а в в КД мне нужно создать новую конвертацию (т.к. я не знаю буду ли я её обновлять для изменений конфигурации так же как имеющуюся). Мне приходится заново заходить в базу и выгружать метаданные. Раньше я через другую свою обработку через COM обновлял. Но сейчас скачки релизов и приходится через файл.
11. Геннадий Пиганов (Totoro) 27.01.12 00:03
В результате использования своей обработки столкнулся с досадным недочетом типовой обработки выгрузки. На примере УПП: если при выгрузке установить галки "Не выгружать регистры ...", то при загрузке типовой обработкой в КД в составе планов обмена (для примера УПП, в составе плана обмена "Полный") могут появится битые ссылки (см. рисунок). Поэтому я немного подправил обработку выгрузки для обхода этой ошибки, заодно и добавил пропуск последовательностей и перерасчетов в составе планов обмена, которые в КД не поддерживаются. Её и выкладываю, надеюсь в будущей КД типовую обработку 1С подправят и моя не понадобится.
Прикрепленные файлы:
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа