| 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 |