1. | C помощью утилиты Импорт разработки системы DIRECTUM выполните импорт из папки дистрибутива: |
DIT\Connector1C<Номер версии 1С>\Dev
2. | С помощью сценария Импорт записей справочников выполните импорт записей из XML-файла: |
DIT\Connector1C<Номер версии 1С>\Templates\Acc20\Template1C<Номер версии 1С>.xml
Например, файл Template1C82.xml для коннектора к системе 1С версии 8.2.
Во время импорта в окне «Выбор справочников для импорта» укажите справочники Интегрированные системы и Настройки обмена данными с интегрированными системами:
3. | В справочнике Интегрированные системы откройте карточку импортированной на предыдущем шаге записи. Наименование записи соответствует наименованию конфигурации 1С. Например, запись «1С:Бухгалтерия предприятия 2.0». |
4. | В карточке: |
• | на закладке «Настройки системы» в табличной части «Параметры» укажите параметры подключения к системе 1С. Подробнее о параметрах см. в разделе «Параметры интегрированной системы». |
• | на закладке «Настройки обмена данными»: |
• | в поле *Файлы обмена укажите каталог для хранения файлов обмена; |
• | в поле *Протоколы укажите каталог для хранения протоколов обмена; |
• | в группе «Выгрузка из DIRECTUM» перейдите по ссылке Настроить. |
5. | В открывшемся списке записей справочника Настройки обмена данными с интегрированными системами последовательно для каждой записи создайте текст XSL-преобразования. Для этого: |
• | откройте карточку записи; |
• | на вкладке Главная в группе XSL нажмите на кнопку ![]() |
6. | Доработайте текст XSL-преобразования для соответствия объекта DIRECTUM Договоры объекту системы Договоры контрагентов: |
• | в карточке записи данного соответствия на вкладке Главная в группе XSL нажмите на кнопку ![]() |
• | измените список ключевых реквизитов. Для этого фрагмент преобразования |
' Список ключевых реквизитов системы DIRECTUM для каждого справочника
ListOfDIRECTUMKeyRequisitesNames = Array(Array("НашаОрг2", "Организация", "Персона", "Реквизит2", "Дата"), Array("IntNumber3"), Array("Наименование"), Array("Наименование"), Array("Наименование"), Array("Наименование", "Дата"), Array("НашаОрг", "Наименование"))
' Список ключевых реквизитов интегрируемой системы для каждого справочника
ListOfIntegratedSystemKeyRequisitesNames = Array(Array("Организация", "Owner", "Owner", "Номер", "Дата"), Array("Code"), Array("Description"), Array("Description"), Array("Description"), Array("Description", "ДатаРождения"), Array("Организация", "Description"))
замените на код:
' Список ключевых реквизитов системы DIRECTUM для каждого справочника
ListOfDIRECTUMKeyRequisitesNames = Array(Array("НашаОрг2", "Организация", "Персона", "Реквизит2", "Дата"), Array("IntNumber3"), Array("Наименование"), Array("Наименование"), Array("Наименование"), Array("Наименование"), Array("НашаОрг", "Наименование"))
' Список ключевых реквизитов интегрируемой системы для каждого справочника
ListOfIntegratedSystemKeyRequisitesNames = Array(Array("Организация", "Owner", "Owner", "Номер", "Дата"), Array("Code"), Array("Description"), Array("Description"), Array("Description"), Array("НаименованиеПолное"), Array("Организация", "Description"))
• | измените преобразование реквизита Owner. Для этого фрагмент кода |
<Owner xsi:type="CatalogRef.Контрагенты"><xsl:value-of select='ext:GetIntegratedSystemRecordUUID(Requisite[@Name="Организация"], $DataCache)' />
</Owner>
замените на код:
<Owner xsi:type="CatalogRef.Контрагенты">
<xsl:choose>
<xsl:when test='Requisite[@Name="Организация"]=""'>
<xsl:value-of select='ext:GetIntegratedSystemRecordUUID(Requisite[@Name="Персона"], $DataCache)' />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select='ext:GetIntegratedSystemRecordUUID(Requisite[@Name="Организация"], $DataCache)' />
</xsl:otherwise>
</xsl:choose>
</Owner>
7. | Доработайте текст XSL-преобразования для соответствия объекта DIRECTUM Организации объекту системы Контрагенты: |
• | в карточке записи данного соответствия на вкладке Главная в группе XSL нажмите на кнопку ![]() |
• | измените преобразование реквизита Ref. Для этого фрагмент кода |
<Ref>
<xsl:value-of
select="ext:GetIntegratedSystemRecordUUID($RecordID, $DataCache)"/>
</Ref>
замените на код:
<xsl:variable name="Ref"
select='ext:GetIntegratedSystemRecordUUID($RecordID, $DataCache)'/>
<Ref>
<xsl:value-of select="$Ref"/>
</Ref>
• | измените преобразование реквизита ГоловнойКонтрагент. Для этого фрагмент кода |
<ГоловнойКонтрагент><xsl:value-of
select='ext:GetIntegratedSystemRecordUUID(Requisite[@Name="Организация"], $DataCache)'/>
</ГоловнойКонтрагент>
замените на код:
<xsl:variable name='Org'
select='ext:GetIntegratedSystemRecordUUID(Requisite[@Name="Организация"],
$DataCache)'/>
<ГоловнойКонтрагент>
<xsl:choose>
<xsl:when test='$Org="00000000-0000-0000-0000-
000000000000"'><xsl:value-of select='$Ref'/></xsl:when>
<xsl:otherwise><xsl:value-of
select='$Org'/></xsl:otherwise>
</xsl:choose>
</ГоловнойКонтрагент>
8. | Доработайте текст XSL-преобразования для соответствия объекта DIRECTUM Контактные лица организаций объекту системы Контактные лица: |
• | в карточке записи данного соответствия на вкладке Главная в группе XSL нажмите на кнопку ![]() |
• | измените преобразование для реквизита ОбъектВладелец. Для этого фрагмент кода |
<ОбъектВладелец>
замените на код:
<ОбъектВладелец xsi:type="CatalogRef.Контрагенты">
9. | Доработайте текст XSL-преобразования для соответствия объекта DIRECTUM Контактные лица организаций объекту системы Контактная информация: |
• | в карточке записи данного соответствия на вкладке Главная в группе XSL нажмите на кнопку ![]() |
• | замените код функции GetDataCache на фрагмент кода |
Function GetDataCache(XMLDocumentElement)
' В следующих списках первый элемент должен обязательно относиться к синхронизируемому справочнику.
' Имя синхронизируемого и связанных с ним справочников DIRECTUM.
ListOfDIRECTUMReferenceName = Array("КНТ", "КНТ", "ОРГ", "ПРС")
' Имя синхронизируемого и связанных с ним справочников интегрируемой системы.
ListOfIntegratedSystemReferenceName = Array("КонтактнаяИнформация", "КонтактныеЛица", "Контрагенты", "ФизическиеЛица")
' Тип синхронизируемого и связанных с ним объектов интегрируемой системы.
ListOfIntegratedSystemObjectType = Array("InformationRegister", "Reference", "Reference", "Reference")
' Список ключевых реквизитов системы DIRECTUM для каждого справочника.
ListOfDIRECTUMKeyRequisitesNames = Array(Array("КонтактноеЛицо", "Тип", "Вид"), Array("Наименование"), Array("Наименование"), Array("Наименование", "Дата"))
' Список ключевых реквизитов интегрируемой системы для каждого справочника.
ListOfIntegratedSystemKeyRequisitesNames = Array(Array("Объект", "Тип", "Вид"), Array("Description"), Array("Description"), Array("Description", "ДатаРождения"))
• | измените настройки реквизитов. Для этого фрагмент преобразования: |
Set RefRequisites = XMLDocumentElement.item(0).selectNodes("//Object[@Name=""" +
ListOfDIRECTUMReferenceName(0) + """]//Requisite[@Type=""Reference""]")
замените на код:
Set RefRequisites = XMLDocumentElement.item(0).selectNodes("//Object[@Name=""" +
ListOfDIRECTUMReferenceName(0) + """]//Requisite[@Type=""Reference"" or @Name=""КонтактноеЛицо""]")
• | измените преобразование для реквизита Объект. Для этого фрагмент преобразования (встречается в двух местах) |
<Объект>
...
</Объект>
замените на код:
<Объект xsi:type="CatalogRef.КонтактныеЛица">
<xsl:value-of
select='ext:GetIntegratedSystemRecordUUID(Requisite[@Name="КонтактноеЛицо"],
$DataCache)' />
</Объект>
• | измените преобразование для реквизита Вид. Для этого фрагмент кода (встречается в двух местах) |
<Вид>
замените на код:
<Вид xsi:type="CatalogRef.ВидыКонтактнойИнформации">
• | после кода: |
Call ScriptControl.AddObject("VApp", VApp)
Set CurrentCatalog = ScriptControl.Eval("VApp." + MetaDataObjectsName + "." +
IntegratedSystemReferenceName)
вставьте фрагмент:
Set ContactKind =
ScriptControl.Eval("VApp.Catalogs.ВидыКонтактнойИнформации.
ТелефонКонтактногоЛица")
ContactKindUUID = VApp.String(ContactKind.UUID())
• | после кода: |
Set DestXMLRecordNode = CreateXMLElement("Record", "", Array("ID"), Array(SourceXMLRecordID), CatalogData)
вставьте фрагмент:
' Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица
Set XMLRequisiteNode = CreateXMLElement("Requisite", ContactKindUUID,
Array("Name"), Array("Вид"), CatalogData)
Call DestXMLRecordNode.appendChild(XMLRequisiteNode)
10. | Доработайте текст XSL-преобразования для соответствия объекта DIRECTUM Работники объекту системы Сотрудники организации: |
• | в карточке записи данного соответствия на вкладке Главная в группе XSL нажмите на кнопку ![]() |
• | фрагмент кода: |
ListOfIntegratedSystemReferenceName = Array("СотрудникиОрганизаций", "ДолжностиОрганизаций", "Организации", "ПодразделенияОрганизаций", "Контрагенты")
замените на код:
ListOfIntegratedSystemReferenceName = Array("СотрудникиОрганизаций", "ДолжностиОрганизаций", "Организации", "ПодразделенияОрганизаций", "ФизическиеЛица")
11. | Доработайте текст XSL-преобразования для соответствия объекта DIRECTUM Персоны объекту системы Контрагенты: |
• | в карточке записи данного соответствия на вкладке Главная в группе XSL нажмите на кнопку ![]() |
• | фрагмент кода: |
WherePart = WherePart + "C." + IntegratedSystemRequisiteName + " = """ + Join(Split(RequisiteValue, """"), """""") + """ and" + CR
замените на код:
If IntegratedSystemRequisiteName = "НаименованиеПолное" Then
WherePart = WherePart + "C." + IntegratedSystemRequisiteName + " ПОДОБНО """ + Join(Split(RequisiteValue, """"), """""") + """ and" + CR
Else
WherePart = WherePart + "C." + IntegratedSystemRequisiteName + " = """ + Join(Split(RequisiteValue, """"), """""") + """ and" + CR
End If
© 2016 Компания DIRECTUM | Сообщество пользователей DIRECTUM |