Выгрузка и загрузка XML для управляемых форм 8.3 (с отбором)


В работе постоянно приходится разделять в различные базы или объединять несколько организаций в одну базу, долгое время пользовался стандартной обработкой выгрузка-загрузка из UNIREPS 8.2, в режиме обычного приложения, но, к сожалению, для управляемого приложения стандартная обработка из UNIREPS 8.3 (Диск ИТС) не позволяет нормально сделать выгрузку с отбором, поэтому ей никогда не воспользовался. Решил что напишу обработку, которая позволит делать отборы в различных вариациях, кроме того, в обработках из UNIREPS (8.2 и 8.3) существенно отличается процесс загрузки предопределенных, что не всегда удобно при больших объемах данных. Обработка написана на базе UNIREPS 8.3, но есть существенные изменения.
Но интерфейс доработан так, чтобы обработка была похожа на старую добрую обработку из UNIREPS 8.2, к которой все так привыкли.

Обработка "Выгрузка и загрузка данных XML"  Управляемые формы

Режимы работы

Обработка реализует 2 режима работы: Выгрузки (создание файла выгрузки указанных пользователем данных) и Загрузки (чтение файла выгрузки, созданного одноименным режимом, и запись имеющихся в нем данных). Установка режима осуществляется выбором в поле Режим. Кроме того режим загрузки разделен на три различных режима по типу загрузки предопределенных данных.

Перед запуском того или иного режима (нажатие кнопки Выполнить) нужно указать имя файла выгрузки либо введя его вручную в поле "Имя файла", либо воспользовавшись кнопкой выбора этого поля и стандартным диалогом выбора файла.

В режиме загрузки имеется возможность редактирования использования итогов при записи регистров, что может повлиять на скорость загрузки.
Кнопки "Отключить итоги" и "Включить итоги" доступны при установленном флаге "Включить возможность редактирования использования итогов во время загрузки данных" и используются для ручного управления режимом использования итогов при загрузке данных. 

Условия применимости обработки

Обработка может использоваться только в тех случаях, когда информационная база, в которой осуществлялась выгрузка данных, и та, в которой данные загружаются, являются однородными (конфигурации идентичны, данные могут различаться), либо все выгружаемые объекты практически полностью идентичны по составу и типам реквизитов и табличных частей, свойствам "ведущего" объекта метаданных и т.д. Следует отметить, что, в связи с указанными ограничениями, обработка главным образом предназначена для обмена между однородными ИБ.

Формат файла выгрузки отличается от формата файла, создаваемого при выгрузке по плану обмена, заголовочной частью. Для выгрузки данных (элементов справочников, наборов записей регистров и т.д.) обработкой используется тот же механизм XML-сериализации, что и выгрузкой по планам обмена, в этой части форматы файлов идентичны.

Определение состава выгрузки

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

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

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

В составе выгрузки имеется возможность произвести различные многоуровневые отборы в том числе по раскрываемым ссылкам, скопировать отборы, сделать индивидуальные отборы для определенных элементов конфигурации.

Режим загрузки — для предопределенных данных

Режим загрузки разделен на три типа:

1. Подменяем ссылки на преодопределенные элементы теми которые уже существуют в базе.  (Стандартный режим) Алгоритм работы  при выборе данного режима следующий —  Обрабатывается файл загрузки и базы данных, в которую производится загрузка, формируется таблица соответствия предопределенных элементов старой и новой базы, делается копия исходного файла загрузки (временный файл) и в нем производится замена идентификаторов предопределенных элементов, далее уже этот временный файл загружается в базу данных. Главным условием корректной работы является наличие самих предопределенных элементов в выгрузке (Режим выгружать при необходимости).

2. Удаление предопределенных  и загрузка новых из файла источника. В данном режиме позмены идетификаторов предопределенных элементов не производится, но производится непосредственное удаление  выгружаемого предопределенного элемента и создание нового с идентификатором из базы выгрузки. Этим режимом можно пользоваться если вы производите выгрузку в пустую базу, а не в ту в которой ведется учет, так как имеется возможность возникновения битых ссылок "<Объект не найден>". Этот режим загрузки требует модификации типовых конфигураций для разрешения удалять предопределенные.  Режим создан для необходимости в некоторых случаях совместить идентификаторы различных баз.

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

Возможные применения

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

Проверено на 1С:Предприятие 8.3 (8.3.15.1565).

10 Comments

  1. S_VA

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

    Reply
  2. o.kovalev

    Я бы заранее установил префиксы в одной из баз источнике всем объектам, а потом уже выгружал

    но все равно придется воспользоваться обработкой поиск и замена значений чтобы потом убрать дубли справочников.

    Reply
  3. S_VA

    (3)

    Я бы заранее установил префиксы в одной из баз источнике всем объектам, а потом уже выгружал

    Это как? В групповой обработке нет такого

    Reply
  4. o.kovalev

    (2) Документы при загрузке не проводятся, загружается набор записей

    Reply
  5. o.kovalev

    (4) этого нет, это надо писать

    Reply
  6. o.kovalev

    (4) на Инфостарте есть обработки такие

    https://infostart.ru/public/684868/

    Reply
  7. o.kovalev

    (8) у меня нет такой, я обычно пишу руками, могу пример кода накидать, после обеда пришлю

    Reply
  8. o.kovalev

    Вот пример, в принципе работает, но проверяйте на копии

    Reply
  9. S_VA

    Ошибка Преобразование к типу число не может быть выполнено

    Reply
  10. o.kovalev

    (11) В «примере» исправил ошибку

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *