Коннектор 1с8.2

8 12

В компании произошло обновление сервера 1с с версии 8.1 на 8.2, как результат слетела синхронизация контрагентов и вообще любых записей. 

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

Внимание! Используйте данную рекомендацию на свой страх и риск!

Нужно сделать 2 действия.

 1. Ищем функцию: Connector1C81Get1C80Application в ней меняем все v81 на v82

 2. Второй момент имя базы не должно содержать пробелов! 

После этого у нас всё заработало без ошибок. Удачи!

8
Авторизуйтесь, чтобы оценить материал.
2
Дмитрий Тарасов

Странно, что вам только этих правок коннектора хватило для его работы. Чтобы коннектор полноценно заработал, это далеко не единственная функция где надо поменять V81 на V82. Ну и самое главное, необходимо так же подправить шаблоны xsl преобразования в функции Connector1C81GetExportXSLTemplate. Там шаблоны закодированы, поэтому сначала их надо раскодировать, подправить и обратно закодировать.

Дмитрий Тарасов

В функции Connector1C81GetImportXSLTemplate тоже надо подправить шаблоны...

Точнее я их правил в какой-то одной из них, в какой точно не помню :)

Надо раскодировать и посмотреть :)

Ольга Сажина

Доброго времени суток.

Произвели изменения указанные выше, но безрезультатно.

Не могли бы вы по подробнее описать что? где? и на что? поменять.

И как раскодировать, шаблоны XLS.

Ольга Сажина

Заранее спасибо!

Николай Перфильев

Мы делали только выше описанные действия, два шага.  У нас работает.  Могу поделиться контактом, пишите в личку, поковыряемся. 

Дмитрий Тарасов

Действия, которые описал Николай, заставят коннектор 1С 8.1 работать с 1С 8.2, только если у вас настроена интеграция в одну сторону: 1С -> DIRECTUM.

Чтобы интеграция заработала в обе стороны, надо как минимум пробежаться по всем ф-ям из группы "Коннектор к системе 1С:Предприятие 8.1" и заменить в них v81 на v82. Я создал новую группу ф-ий "Коннектор к системе 1С:Предприятие 8.2" и исправленные ф-ии перенес в неё копированием из группы "Коннектор к системе 1С:Предприятие 8.1", чтобы не портить их первоначальный вид.

Сами шаблоны XSL закодированы в ф-ях Connector1C81GetExportXSLTemplate и Connector1C81GetImportXSLTemplate.

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

DecodeString = MimeDecodeString('PD94bWwgdmVyc2lv...ZWV0Pg==')
EditText(DecodeString)

Ф-ии MimeDecodeString передаете закодированную строку из шаблона в ф-ии Connector1C81GetExportXSLTemplate или Connector1C81GetImportXSLTemplate. Таким образом вы сможете увидеть текст, который содержится в шаблоне. Затем вы его правите как вам надо, сохраняете в текстовый файл и кодируете обратно с помощью следующего простенького сценария:

 Str = ФайлСчитать('C:\Directum\Connector1C82\Template\Имя_файла_исправленного_шаблона.txt')
 EncodeString = MimeEncodeString(Str)
 EditText(EncodeString)

Таким образом вы получите закодированную строку с шаблоном, которую надо будет подставить заместо той, что указана в ф-ии Connector1C81GetExportXSLTemplate или Connector1C81GetImportXSLTemplate для соответствующего типа обекта 1С (Справочник, документ или регистр сведений).

Дмитрий Тарасов

Кратко расскажу, что мне пришлось поправить в шаблоне, чтобы он заработал с 1С82.

Нашел в шаблоне вот такие строки:

  ' Подключиться к 1С, попытатся использовать V8AppCache
  Set VAppCache = Nothing
  On Error Resume Next
  Set VAppCache = CreateObject("V8AppCache.Cache")
  On Error Goto 0
  If VAppCache is Nothing Then
    Set V8Connector = CreateObject("V81.COMConnector")
    Set VApp = V8Connector.Connect(ConnectionParams)
  Else
    Set VApp = VAppCache.GetV8Application(ConnectionParams)
  End If

И привел их вот к такому виду:

  ' Подключиться к 1С, попытатся использовать V8AppCache
  Set VAppCache = Nothing
  On Error Resume Next
  Set VAppCache = CreateObject("V8AppCache.Cache")
  On Error Goto 0
  If VAppCache is Nothing Then
    Set VApp= CreateObject("V82.Application")
    VApp.Connect(ConnectionParams)
  Else
    Set VApp = VAppCache.GetV8Application(ConnectionParams)
  End If

В принципе сам шаблон можно и не править, а внести изменения уже в шаблон созданный по кнопке "Создать XSL", но в этом случае вам придеться вносить изменения каждый раз вручную при каждом пересоздании шаблона.

Вот это тот минимум действий, который превратит коннектор 1С81 в коннектор 1С82. Как показала практика, возможны и дополнительные "пляски с бубном", все зависит от ваших задач интеграции.

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

Дмитрий Тарасов

А вообще, если мне не изменяет память, директумовцы в 4.7 обещали универсальный коннектор для 1С, которому будет все равно с какой версией 1С работать :)

Убьете двух зайцев одним выстрелом, и на последнюю версию директум обновитесь и коннектор переделывать не надо будет.

Николай Перфильев

Всё верно, точка ввода информации у нас 1С, оттуда распространяем ее на подчинённые сис-мы. 

Владимир Плаунов

По 2-му пункту можно добавить, что имя базы может содержать пробелы, но тогда оно должно быть задано в кавычках.

Дмитрий Жуков

Перепробывал все описанные Вами варианты. Не помогло, ошибка: 

Начало загрузки данных объектов в систему "s1C82" 
Ошибка преобразования данных из формата DIRECTUM в формат системы или загрузки данных в интегрированную систему. (Error transforming XML data. Функция "Connector1C82ImportDataToIntegratedSystem": ошибка в строке 170. 
Функция "ConnectorImportDataToIntegratedSystem": ошибка в строке 3. 
Функция "ConnectorImportDataToIntegratedSystem": ошибка в строке 14.) 
Завершение загрузки данных объектов в систему "s1C82"

Это после редактирования XLS. А если его не редактировать - синхронизация виснет!

Может кто подсказать, в чем проблема? 

Дмитрий Тарасов

Этот материал читали: Возможные проблемы и пути их решения при настройке коннектора 1С. Часть 1. ?

Там как раз решение вашей проблемы описано. 

Авторизуйтесь, чтобы написать комментарий