ОбменComXML


Обработка позволяет выгружать информацию в конфигурации 1С версий 8.2.
Удобно использовать когда необходимо выгрузить информацию, а использование "ВыгрузкаЗагрузкаДанныхXML.epf" невозможно  из-за несовпадения структур выгружаемых объектов.  
Обработка не призвана заменить или конкурировать с Конвертацией, однако использование Конвертации зачастую бывает неоправданно долго.

 БУДУ РАД ВЫСЛАННЫМ ОШИБКАМ И ЗАМЕЧАНИЯМ, ОСОБЕННО С ИСПРАВЛЕННЫМ /ДОРАБОТАННЫМ КОДОМ.

Версия 4.1:

  •   Доработана эргономика настройки синхронизируемых элементов. Табличная часть переделана на дерево значений.

Версия 4.       

  •   Исправлены выявленные в процессе работы ошибки. Добавлено сохранение настроек в Файл.
  •   Выявлена   платформенная 1С ошибка - COM-соединение не работает, если у вас  на машине стоят две версии платформы. Почему-то не находит dll-ку.

Версия 3.       

  •   Переписана полностью на платформу 8.2. (8.2.14.519).
  • Оптимизировано быстродействие, переписано определение типов.  Убрал «невостребованный» с моей точки зрения функционал. Доработана возможность  подключения к файловой базе. Исправлены ошибки выявленные в версии 2.1.
  • Ограничения - недотестирована выгрузка объектов (отключена выгрузка через COM):
    • ПланВидовРасчета;
    • ПланСчетов;
    • Задачи;
    • БизнесПроцесс;
    • ПланОбмена;
    • РегистрРасчета;
    • РегистрБухгалтерии;

Версия 2.1   Проведено дополнительное тестирование. Устранены выявленные ошибки. Доработан интерфейс, внешний вид, добавлена маленькая справка. После проведенный доработок текущее описание обработки не переделывалось.

Версия 2.  Скомпонована более универсально, добавлен функционал регистрации в ПланОбмена, добавлено сравнение Данных, устранены замеченные ошибки. Из-за недостатка времени доработка ведется только  при крайней необходимости. Поставляется "Как Есть" - есть вероятность  потери данных при перегрузке через COM.  Тестировалась на 8.1.

Возможности обработки:

  • Регистрация объектов в узел  плана обмена.

  • Выгрузка объектов в другую базу посредством COM-соединения.

  • Формирование простых отчетов на базе построителя отчета по выбранному объекту /объектам.  Результат выводится  на  экран или  в таблицу значений.

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

вывести в таблицу – выводит данные в таблицу значений внизу формы.

результат в план обмена – регистрирует выбранные объекты в план обмена.
Режим доступен, если узел плана обмена заполнен.

Выгрузить через COM – выгружает  объекты в другую базу посредством COM- соединения.

 

Описание формы инструментария

 

При открытии обработки формируется дерево метаданных.

 

При заполненном поле «ПланОбмена», метаданные ограничиваются регистрируемыми  объектами  выбранного плана обмена.

 

Обработка отмеченных объектов возможна  по отдельности или по всем: «ОбработатьСтроку» или «ОбработатьОтмеченные».

 

Объекты МД с настроенными отборами отмечаются в дереве значком «*».

 

 

Кнопки панели управления позволяют:

  •   Действия с деревом метаданных: свернуть, развернуть, отметить, снять отметки.

  •   Открыть форму списка выбранного объекта метаданных.

  •   Распечатать дерево метаданных

  •   Полностью зарегистрировать или отменить регистрацию всего объекта в плане обмена.

  •   Сохранить/восстановить настройку  на диск.

 

       Открывает/скрывает таблицу значений  (Предварительный анализ результатов в таблице значений)

Проведение тонкой настройки отборов, указание перегружаемых полей, замена элементов,  синхронизация объектов

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

 Возможны настройки:

  • Настройка отборов
  • Настройка соответствий реквизитов с COM-объектом
  • Настройка замен.

 

 

Настройка соответствий реквизитов с COM-объектом:

Настройка требуется, если  объекты в базах имеют различную структуру.

Пример 1: требуется перегрузить  справочник Клиенты в справочник Контрагенты.

Необходимо  ввести наименование справочника в Сom-базе. В дальнейшем  при выгрузке объектов для реквизитов данного типа будет устанавливаться соответствующий тип автоматически.

Пример2:  Различаются наименования реквизитов.

Пример 3: требуется перегрузить только несколько реквизитов.

 

 

Настройка замен:

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

Пример 1:  В новой базе создан новый предопределенный элемент.

Описание приемов работы с обработкой.

Выгрузка данных через com-соединение.

Для простой выгрузки данных через com-соединение достаточно установить режим “Выгрузить через COM”. Если настройка отборов не требуется, то дополнительных действий более не требуется. В момент  подключения будут заполнены соответствия объектов и реквизитов и т.д.

Соответствие реквизитов будет устанавливаться по Com-имени, если оно было  заполнено в форме тонкой настройки.

 

В окне сообщений будет выведены сообщения об «несовпадающих» объектах.

 

Алгоритм выгрузки  оптимизирован для больших объемов:  при выгрузке, определение Com-ссылок происходит только один раз, в дальнейшем  ссылка  получается из таблицы соответствий.

 

Запись всех объектов в Com-базе  происходит в режиме: ОбменДанными.Загрузка=Истина.

Применение COM-технологии

Ограничения на применение  COM – технологии в 1С, из личного опыта (рецензии приветствуются только с примером реализации).

 

  • Сверка может производится только по простым типам: дата, число, строка. (ограничение на строки для SQL 2000 не более 25 символов, SQL 2005 не более 256 символов)

В SQL 2000 ограничение 25 символов срабатывает на больших объемах, на маленьких проходит без проблем и с большим количеством записей -- наблюдал лично.

  • Нет возможности использовать в COM-base механизм транзакций.
  • В случаях размещения в процедурах ПередЗаписью(), ПриЗаписи() дополнительных действий с объектом может появляться ошибка записи.  Для исключения ошибки в COM-base необходимо вставить блок кода:

                        Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; 


Ошибка

Возможная Причина

{ВнешняяОбработка.ОбменCOM_XML(1108)}: Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация: Ошибка при выполнении обработчика –

Получение элемента по индексу для значения не определено'  ComЭлемент.Записать();


В COM-базе. В случаях размещения в процедурах ПередЗаписью(), ПриЗаписи()  дополнительных действий – возникает ошибка записи. Для использования технологии необходимо вставить блок кода:

Если ОбменДанными.Загрузка  Тогда Возврат; КонецЕсли;

{ВнешняяОбработка.ОбменCOM_XML(1725)}: Ошибка при вызове метода контекста (ЗарегистрироватьИзменения): Недопустимое значение параметра (параметр номер '1')
    ПланыОбмена.ЗарегистрироватьИзменения(ПланОбмена,ТКСТР[ИмяКолонки]);
по причине:
Недопустимое значение параметра (параметр номер '1')

Выбран предопределенный  Узел   или данный объект не входит в состав объектов регистрируемых в плане обмена.

 Недостаточно памяти

Ограничьте выгрузку объектов с помощью отборов.


-