Редактируемый договор — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Пример пакета с указанным идентификатором)
 
(не показано 25 промежуточных версий 1 участника)
Строка 1: Строка 1:
 
==Общее описание==
 
==Общее описание==
Редактируемый договор - отдельный регламент для согласования договоров между организациями. По умолчанию такого регламента нет в личном кабинете, он появляется только после того как сделана отправка договора такого типа с помощью любого средства интеграции. В отличии от стандартного регламента рассылка "Редактируемого договора" позволяет эмитенту отправить контрагенту шаблон для заполнения договора без подписания. При этом эмитент определяет набор тех полей в в договоре, которые можно редактировать, основной текст остается неизменным. Существует как стандартный набор полей для редактирования (см. таблицу ниже), так и неограниченное количество произвольных полей. После того как контрагент заполнил все поля эмитент может согласовать или отклонить договор. При отклонении создается новая редакция документа и заново отправляется на заполнение контрагенту. При утверждении договор будет иметь соответствующий статус у обоих участников документооборота (см. схему). Если контрагент не планирует заключать договор с эмитентом, то он отклоняет документ. В этом случае документооборот завершается, в обоих кабинетах появляется отрицательный статус.
+
Редактируемый договор - отдельный регламент для заключения договоров между организациями. По умолчанию такого регламента нет в личном кабинете, он появляется только после того, как сделана отправка с указанием особого идентификатора на пакете (подробности ниже) с помощью любого средства интеграции. В отличии от стандартного регламента, рассылка "Редактируемого договора" позволяет организации отправить контрагенту шаблон для заполнения договора без подписания. При этом отправитель определяет набор тех полей в в договоре, которые можно редактировать, основной текст остается неизменным. Существует как стандартный набор полей для редактирования (см. таблицу ниже), так и неограниченное количество произвольных полей. Если получатель такого документа не планирует заключать договор, то он отклоняет документ. В этом случае документооборот завершается, в обоих кабинетах появляется отрицательный статус. Если получатель хочет заключить договор с организацией - отправителем, то он заполняет редактируемые поля в тексте(см. экран редактирования договора) и отправляет договор на согласование. После этого договор возвращается в кабинет отправителя с электронной подписью получателя. Отправитель имеет возможность отклонить или согласовать заполненный договор. При отклонении создается новая редакция документа и заново отправляется на заполнение контрагенту. При утверждении договор будет иметь положительный статус у обоих участников документооборота (см. схему).
  
 
==Схема движения документа==
 
==Схема движения документа==
 
[[Файл:Edocontract.jpg]]
 
[[Файл:Edocontract.jpg]]
  
==Настройка выгрузки==
+
==Формирование договора==
[[Файл:DialogContractEdit.PNG|200px|thumb|left|Окно редактирования]]
+
Для того чтобы сделать отправку "Редактируемого договора" необходимо отправлять пакет с одним вложением.На пакете должен быть прописан специальный идентификатор регламента 5b59fa01-33c6-495b-a412-1dce202b20cd (см. пример пакета)<br/>
Для того чтобы сделать отправку "Редактируемого договора" необходимо отправлять документы в пакетах на которых будет прописан специальный идентификатор регламента 5b59fa01-33c6-495b-a412-1dce202b20cd (см. пример пакета)<br/>
+
Вложение должно быть XML файлом формата ДоговорРед версии 3.01 (см. пример документа)<br/>
В пакете обязательно должен находиться файл формата ДоговорРед версии 3.01 (см. пример документа)<br/>
 
  
Особенности выгрузки файла формата ДоговорРед 3.01:<br/>
+
===Особенности выгрузки файла формата ДоговорРед 3.01===
1. Весь текст договора нужно конвертировать в html верстку<br/>
+
# Весь текст договора нужно поместить в тег html в виде html разметки
2. Указать в html верстке редактируемые поля. Для этого пишем <tensor id="Путь в модели файла (см. таблицу редактируемых полей)"></tensor><br/>
+
# Указать в тексте редактируемые поля. Для этого пишем <tensor id="Путь в модели файла (см. таблицу редактируемых полей)"></tensor>
3. Затем эту верстку нужно экранировать в строку<br/>
+
# Затем всю html верстку с текстом договора нужно трансформировать в строку. для  этого необходимо экранировать спецсимволы. Например, вместо <, писать &#60;
4. Строку поместить в тег html<br/>
 
  
==Сделать массовую выгрузку редактируемых договоров СБИС Коннектом==
+
 
 +
Если файл создан правильно, то получатель такого документа увидит примерно следующее окно:<br/>
 +
[[Файл:ФормаДиалогРедДоговор.PNG]]
 +
 
 +
==Массовая рассылка редактируемых договоров СБИС Коннектом==
 
Для того чтобы произвести массовую рассылку файлов по списку клиентов необходимо:
 
Для того чтобы произвести массовую рассылку файлов по списку клиентов необходимо:
 
# Подготовить один xls файл формата «Книга Excel 97-2003» со списком получателей и рассылаемых файлов.  
 
# Подготовить один xls файл формата «Книга Excel 97-2003» со списком получателей и рассылаемых файлов.  
Строка 254: Строка 256:
  
 
</source>
 
</source>
 +
 +
==== Пример XSLT конвертера для рассылки ====
 +
<source lang='xml'>
 +
<?xml version="1.0" encoding="windows-1251"?>
 +
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 +
<xsl:output method="xml" indent="yes" encoding="windows-1251"/>
 +
 +
 +
<!-- Определяются номера столбцов в которых находятся ИНН,КПП, название получателей.
 +
Поиск происходит из заголовка таблицы по названию.
 +
-->
 +
<xsl:variable name="НомерСтолбца_НазваниеПолучателя" select="//Файл/Лист[starts-with(@Название,'Лист1')]/Строка[@Номер='1']/Столбец[contains(@Значение,'Название')]/@Номер"/>
 +
<xsl:variable name="НомерСтолбца_ИННПолучателя" select="//Файл/Лист[starts-with(@Название,'Лист1')]/Строка[@Номер='1']/Столбец[contains(@Значение,'ИНН')]/@Номер"/>
 +
<xsl:variable name="НомерСтолбца_КПППолучателя" select="//Файл/Лист[starts-with(@Название,'Лист1')]/Строка[@Номер='1']/Столбец[contains(@Значение,'КПП')]/@Номер"/>
 +
 +
 +
<!-- Указывается где хранятся ИНН/КПП отправителя.
 +
По-умолчанию на втором листе в первой и второй строке-->
 +
<xsl:variable name="ИНН_Отправителя" select="normalize-space(//Файл/Лист[starts-with(@Название,'Лист2')]/Строка[@Номер='1']/Столбец[@Номер='2']/@Значение)"/>
 +
<xsl:variable name="КПП_Отправителя" select="normalize-space(//Файл/Лист[starts-with(@Название,'Лист2')]/Строка[@Номер='2']/Столбец[@Номер='2']/@Значение)"/>
 +
 +
 +
<xsl:variable name="ТипДокумента" select="'ДоговорИсх'"/>
 +
<xsl:variable name="Регламент" select="'5b59fa01-33c6-495b-a412-1dce202b20cd'"/>
 +
 +
 +
<xsl:template match="/">
 +
<xsl:apply-templates />
 +
</xsl:template>
 +
 +
 +
<xsl:template match="Файл">
 +
<Реестр>
 +
<xsl:apply-templates select="Лист[starts-with(@Название,'Лист1')]/Строка[@Номер!='1'][Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение!='']" mode="Пакет"/>
 +
</Реестр>
 +
</xsl:template>
 +
 +
<!--Формирование пакетов-->
 +
<xsl:template match="Строка" mode="Пакет">
 +
<Пакет>
 +
 +
 +
<xsl:attribute name="ТипДок">
 +
<xsl:value-of select="$ТипДокумента"/>
 +
</xsl:attribute>
 +
 +
 +
 +
<Регламент>
 +
<xsl:attribute name="Название">
 +
<xsl:value-of select="$Регламент"/>
 +
</xsl:attribute>
 +
</Регламент>
 +
 +
 +
<Отправитель>
 +
<xsl:attribute name="ИНН">
 +
<xsl:value-of select="$ИНН_Отправителя"/>
 +
</xsl:attribute>
 +
<xsl:attribute name="КПП">
 +
<xsl:value-of select="$КПП_Отправителя"/>
 +
</xsl:attribute>
 +
</Отправитель>
 +
 +
 +
<Получатель>
 +
<xsl:attribute name="ИНН">
 +
<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение)"/>
 +
</xsl:attribute>
 +
 +
<!-- Если длина ИНН 10 символов, то записывается КПП-->
 +
<xsl:if test="string-length(normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение))=10">
 +
<xsl:attribute name="КПП">
 +
<xsl:value-of  select="normalize-space(Столбец[@Номер=$НомерСтолбца_КПППолучателя]/@Значение)"/>
 +
</xsl:attribute>
 +
</xsl:if>
 +
 +
<xsl:if test="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)!=''">
 +
<xsl:attribute name="Название">
 +
<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)"/>
 +
</xsl:attribute>
 +
</xsl:if>
 +
</Получатель>
 +
 +
<Вложение>
 +
<Файл ВерсияФормата="3.01" Имя="ON_CONTRACTEDIT" Формат="ДоговорРед">
 +
 +
<Документ>
 +
<html>
 +
&lt;div width="200px"&gt;
 +
Основной текст договора...&lt;br&gt;
 +
&lt;b&gt;КПП:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.СвЮЛ.КПП"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Организация название краткое:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.НазваниеКраткое"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Уполномоченное лицо:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Адрес организации:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Документ основание:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.ДокОсн"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Телефон:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Контакт.Телефон"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Должность представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Должность"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Фамилия представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Фамилия"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Имя представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Имя"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Отчество представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Отчество"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Название банка:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Расчетный счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.РСчет"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;Корр счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.КСчет"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...продолжение основного текста...&lt;br&gt;
 +
&lt;b&gt;БИК:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.БИК"&gt;&lt;/tensor&gt;&lt;br&gt;
 +
...конец текста договора...&lt;br&gt;
 +
&lt;/div&gt;
 +
</html>
 +
<Отправитель>
 +
<xsl:attribute name="ИНН">
 +
<xsl:value-of select="$ИНН_Отправителя"/>
 +
</xsl:attribute>
 +
<xsl:attribute name="КПП">
 +
<xsl:value-of select="$КПП_Отправителя"/>
 +
</xsl:attribute>
 +
</Отправитель>
 +
<Получатель>
 +
<xsl:attribute name="ИНН">
 +
<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение)"/>
 +
</xsl:attribute>
 +
 +
<!-- Если длина ИНН 10 символов, то записывается КПП-->
 +
<xsl:if test="string-length(normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение))=10">
 +
<xsl:attribute name="КПП">
 +
<xsl:value-of  select="normalize-space(Столбец[@Номер=$НомерСтолбца_КПППолучателя]/@Значение)"/>
 +
</xsl:attribute>
 +
</xsl:if>
 +
 +
<xsl:if test="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)!=''">
 +
<xsl:attribute name="Название">
 +
<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)"/>
 +
</xsl:attribute>
 +
</xsl:if>
 +
</Получатель>
 +
</Документ>
 +
 +
</Файл>
 +
 +
</Вложение>
 +
 +
</Пакет>
 +
</xsl:template>
 +
</xsl:stylesheet>
 +
</source>
 +
 
[[Категория:СБИС]]
 
[[Категория:СБИС]]
 +
[[Категория:Визуализации и формы ввода]]

Текущая версия на 10:47, 2 августа 2019

Общее описание

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

Схема движения документа

Edocontract.jpg

Формирование договора

Для того чтобы сделать отправку "Редактируемого договора" необходимо отправлять пакет с одним вложением.На пакете должен быть прописан специальный идентификатор регламента 5b59fa01-33c6-495b-a412-1dce202b20cd (см. пример пакета)
Вложение должно быть XML файлом формата ДоговорРед версии 3.01 (см. пример документа)

Особенности выгрузки файла формата ДоговорРед 3.01

  1. Весь текст договора нужно поместить в тег html в виде html разметки
  2. Указать в тексте редактируемые поля. Для этого пишем <tensor id="Путь в модели файла (см. таблицу редактируемых полей)"></tensor>
  3. Затем всю html верстку с текстом договора нужно трансформировать в строку. для этого необходимо экранировать спецсимволы. Например, вместо <, писать <


Если файл создан правильно, то получатель такого документа увидит примерно следующее окно:
ФормаДиалогРедДоговор.PNG

Массовая рассылка редактируемых договоров СБИС Коннектом

Для того чтобы произвести массовую рассылку файлов по списку клиентов необходимо:

  1. Подготовить один xls файл формата «Книга Excel 97-2003» со списком получателей и рассылаемых файлов.
  2. Настроить СБИС Коннект

Структура xls файла со списком получателей

В файле должно быть два листа: «Лист1» и «Лист2».

Лист1 - список получателей

  1. Первая строка является заголовком таблицы и должна содержать следующие заголовки: «ИНН», «КПП», «Название». Порядок следования столбцов не важен.
  2. Начиная со второй строки идут данные о получателях.

Если Вы разметите в файле ещё один столбец "email", то организации получит уведомление о Вашей рассылке на указанный ящик электронной почты. Важно! На данный момент нельзя устанавливать в файле какие-либо фильтры. Иначе при отправке такого файла возникнет ошибка. Подробнее см.в разделе «[#Известные проблемы]».

Массовая рассылка при помощи СБИС Коннект Лист1.png

Лист2 - параметры отправки

  1. Ячейка B1 – ИНН отправителя
  2. Ячейка B2 – КПП отправителя

Важно! - файл должен быть расположен вне рабочей папки СБИС Коннекта.

ExcelPage2.PNG

Настройка СБИС Коннект

  1. Установить отдельный СБИС Коннект
  2. На вкладке «Обмен документами»:
    1. Отключить загрузку входящих документов
    2. Отключить загрузку исходящих статусов документов
    3. Установить формат обмена документов «Произвольный XLS».
    4. В поле «XSLT преобразование» указать файл преобразования сделанный из приведенного ниже примера.
  3. На вкладке «Архив» отключить ведение архива

Список редактируемых полей в тексте договора

Название Путь в модели формата
Полное название организации Файл.Документ.Получатель.Название
Краткое название организации Файл.Документ.Получатель.НазваниеКраткое
КПП организации Файл.Документ.Получатель.СвЮЛ.КПП
Юрдический адрес Файл.Документ.Получатель.Адрес.АдрТекст
Уполномоченное лицо (ФИО слитно) Файл.Документ.Получатель.УполномоченноеЛицо
Телефон Файл.Документ.Получатель.Контакт.Телефон
Представитель-Имя Файл.Документ.Получатель.Представитель.Имя
Представитель-Фамилия Файл.Документ.Получатель.Представитель.Фамилия
Представитель-Отчетсво Файл.Документ.Получатель.Представитель.Отчество
Представитель-Должность Файл.Документ.Получатель.Представитель.Должность
Представитель-документ-основание (доверенность) Файл.Документ.Получатель.Представитель.ДокОсн
Банк Файл.Документ.Получатель.БанкРекв.НаимБанк
Рассчетный счет Файл.Документ.Получатель.БанкРекв.РСчет
Корреспондентский счет Файл.Документ.Получатель.БанкРекв.КСчет
БИК Файл.Документ.Получатель.БанкРекв.БИК
Произвольное редактируемое поле (неограниченное кол-во) Файл.Документ.Получатель.Параметр.[Имя] Имя - название дополнительного параметра, может быть любым


Примеры

Пример пакета с указанным идентификатором

<?xml version="1.0" encoding="windows-1251"?>
<Реестр>
	<Пакет>
		<Получатель ИНН="1111111112" КПП="333333333"/>
		<Отправитель ИНН="1111111111" КПП="222222222"/>
		<Регламент Идентификатор="5b59fa01-33c6-495b-a412-1dce202b20cd"/>
		<Вложение ИмяФайла="ON_ACCOUNTS_7714016680_7714016680_7701002626_28122010.xml">
			
<Файл ВерсияФормата="3.01" Имя="ON_CONTRACTEDIT" Формат="ДоговорРед">

  <Документ Название="Соглашение к договору энергоснабжения № 809 от 01.12.2011">
    <html>
	&lt;div width="200px"&gt;
Основной текст договора...&lt;br&gt;
&lt;b&gt;КПП:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.СвЮЛ.КПП"&gt;772701001&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;Моя организация&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;Моя организация&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;Моя организация&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название краткое:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.НазваниеКраткое"&gt;М. орган.&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Уполномоченное лицо:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"&gt; Уполномоченное лицо&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Адрес организации:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"&gt; Адрест организации&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Документ основание:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.ДокОсн"&gt;Основание&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Телефон:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Контакт.Телефон"&gt;41-02-01&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Должность представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Должность"&gt;Должность&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Фамилия представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Фамилия"&gt;Фамилия&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Имя представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Имя"&gt;Имя&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Отчество представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Отчество"&gt;Отчество&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;Кефир&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;Кефир&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;Кефир&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Название банка:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк"&gt;Банковский банк&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Расчетный счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.РСчет"&gt;12313123123&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Корр счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.КСчет"&gt;1231231&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;БИК:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.БИК"&gt;123123&lt;/tensor&gt;&lt;br&gt;
...конец текста договора...&lt;br&gt;
&lt;/div&gt;
</html>
    <Отправитель>
      <СвЮЛ ИНН="7718000882" КПП="770801001"/>
    </Отправитель>
    <Получатель Название="Моя организация" НазваниеКраткое="М. орган." УполномоченноеЛицо=" Уполномоченное лицо">
      <Представитель ДокОсн="Основание" Должность="Должность" Имя="Имя" Отчество="Отчество" Фамилия="Фамилия"/>
      <Параметр Значение="" Имя="Произвольный параметр"/>
      <Адрес АдрТекст="АдресОрганизации"/>
      <СвЮЛ ИНН="7727241582" КПП="772701001"/>
      <БанкРекв БИК="123123" КСчет="1231231" НаимБанк="Банковский банк" РСчет="12313123123"/>
      <Контакт Телефон="41-02-01"/>
    </Получатель>
  </Документ>

</Файл>
		</Вложение>
	</Пакет>
</Реестр>

Пример файла формата ДоговорРед 3.01

<?xml version="1.0" encoding="WINDOWS-1251" ?>
<Файл ВерсияФормата="3.01" Имя="ON_CONTRACTEDIT" Формат="ДоговорРед">

  <Документ Название="Соглашение об организации электронного документооборота">
    <Получатель Название="ООО Рога и Копыта" НазваниеКраткое="ООО Рога и Копыта" УполномоченноеЛицо="Директор Крыгин С.М.">
      <СвЮЛ ИНН="1111111111" КПП="623401001"/>
      <Контакт Телефон="24-77-77 доб.1006"/>
      <Адрес АдрТекст="390000, ул.Рога и Копытаная, д.15а"/>
    </Получатель>
    <html>
	&lt;div width="200px"&gt;
Основной текст договора...&lt;br&gt;
&lt;b&gt;КПП:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.СвЮЛ.КПП"&gt;772701001&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;Моя организация&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;Моя организация&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;Моя организация&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Организация название краткое:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.НазваниеКраткое"&gt;М. орган.&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Уполномоченное лицо:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"&gt; Уполномоченное лицо&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Адрес организации:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"&gt; Адрест организации&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Документ основание:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.ДокОсн"&gt;Основание&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Телефон:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Контакт.Телефон"&gt;41-02-01&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Должность представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Должность"&gt;Должность&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Фамилия представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Фамилия"&gt;Фамилия&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Имя представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Имя"&gt;Имя&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Отчество представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Отчество"&gt;Отчество&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;Кефир&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;Кефир&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;Кефир&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Название банка:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк"&gt;Банковский банк&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Расчетный счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.РСчет"&gt;12313123123&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;Корр счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.КСчет"&gt;1231231&lt;/tensor&gt;&lt;br&gt;
...продолжение основного текста...&lt;br&gt;
&lt;b&gt;БИК:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.БИК"&gt;123123&lt;/tensor&gt;&lt;br&gt;
...конец текста договора...&lt;br&gt;
&lt;/div&gt;
     </html>
    <Отправитель>
      <СвЮЛ ИНН="6000000001" КПП="600101001"/>
    </Отправитель>
  </Документ>

</Файл>

Пример XSLT конвертера для рассылки

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output method="xml" indent="yes" encoding="windows-1251"/>


	<!-- Определяются номера столбцов в которых находятся ИНН,КПП, название получателей.
	Поиск происходит из заголовка таблицы по названию.
	-->
	<xsl:variable name="НомерСтолбца_НазваниеПолучателя" select="//Файл/Лист[starts-with(@Название,'Лист1')]/Строка[@Номер='1']/Столбец[contains(@Значение,'Название')]/@Номер"/>
	<xsl:variable name="НомерСтолбца_ИННПолучателя" select="//Файл/Лист[starts-with(@Название,'Лист1')]/Строка[@Номер='1']/Столбец[contains(@Значение,'ИНН')]/@Номер"/>
	<xsl:variable name="НомерСтолбца_КПППолучателя" select="//Файл/Лист[starts-with(@Название,'Лист1')]/Строка[@Номер='1']/Столбец[contains(@Значение,'КПП')]/@Номер"/>


	<!-- Указывается где хранятся ИНН/КПП отправителя.
	По-умолчанию на втором листе в первой и второй строке-->
	<xsl:variable name="ИНН_Отправителя" select="normalize-space(//Файл/Лист[starts-with(@Название,'Лист2')]/Строка[@Номер='1']/Столбец[@Номер='2']/@Значение)"/>
	<xsl:variable name="КПП_Отправителя" select="normalize-space(//Файл/Лист[starts-with(@Название,'Лист2')]/Строка[@Номер='2']/Столбец[@Номер='2']/@Значение)"/>


	<xsl:variable name="ТипДокумента" select="'ДоговорИсх'"/>
	<xsl:variable name="Регламент" select="'5b59fa01-33c6-495b-a412-1dce202b20cd'"/>


	<xsl:template match="/">
		<xsl:apply-templates />
	</xsl:template>


	<xsl:template match="Файл">
		<Реестр>
			<xsl:apply-templates select="Лист[starts-with(@Название,'Лист1')]/Строка[@Номер!='1'][Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение!='']" mode="Пакет"/>
		</Реестр>
	</xsl:template>

	<!--Формирование пакетов-->
	<xsl:template match="Строка" mode="Пакет">
		<Пакет>


			<xsl:attribute name="ТипДок">
				<xsl:value-of select="$ТипДокумента"/>
			</xsl:attribute>



			<Регламент>
				<xsl:attribute name="Название">
					<xsl:value-of select="$Регламент"/>
				</xsl:attribute>
			</Регламент>


			<Отправитель>
				<xsl:attribute name="ИНН">
					<xsl:value-of select="$ИНН_Отправителя"/>
				</xsl:attribute>
				<xsl:attribute name="КПП">
					<xsl:value-of select="$КПП_Отправителя"/>
				</xsl:attribute>
			</Отправитель>


			<Получатель>
				<xsl:attribute name="ИНН">
					<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение)"/>
				</xsl:attribute>

				<!-- Если длина ИНН 10 символов, то записывается КПП-->
				<xsl:if test="string-length(normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение))=10">
					<xsl:attribute name="КПП">
						<xsl:value-of  select="normalize-space(Столбец[@Номер=$НомерСтолбца_КПППолучателя]/@Значение)"/>
					</xsl:attribute>
				</xsl:if>

				<xsl:if test="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)!=''">
					<xsl:attribute name="Название">
						<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)"/>
					</xsl:attribute>
				</xsl:if>
			</Получатель>

			<Вложение>
				<Файл ВерсияФормата="3.01" Имя="ON_CONTRACTEDIT" Формат="ДоговорРед">

					<Документ>
						<html>
						&lt;div width="200px"&gt;
						Основной текст договора...&lt;br&gt;
						&lt;b&gt;КПП:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.СвЮЛ.КПП"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Организация название:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Название"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Организация название краткое:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.НазваниеКраткое"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Уполномоченное лицо:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Адрес организации:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Документ основание:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.ДокОсн"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Телефон:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Контакт.Телефон"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Должность представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Должность"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Фамилия представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Фамилия"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Имя представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Имя"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Отчество представителя:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Представитель.Отчество"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Произвольный параметр:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Название банка:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Расчетный счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.РСчет"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;Корр счет:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.КСчет"&gt;&lt;/tensor&gt;&lt;br&gt;
						...продолжение основного текста...&lt;br&gt;
						&lt;b&gt;БИК:&lt;/b&gt;&lt;tensor id="Файл.Документ.Получатель.БанкРекв.БИК"&gt;&lt;/tensor&gt;&lt;br&gt;
						...конец текста договора...&lt;br&gt;
						&lt;/div&gt;
						</html>
						<Отправитель>
							<xsl:attribute name="ИНН">
								<xsl:value-of select="$ИНН_Отправителя"/>
							</xsl:attribute>
							<xsl:attribute name="КПП">
								<xsl:value-of select="$КПП_Отправителя"/>
							</xsl:attribute>
						</Отправитель>
						<Получатель>
							<xsl:attribute name="ИНН">
								<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение)"/>
							</xsl:attribute>

							<!-- Если длина ИНН 10 символов, то записывается КПП-->
							<xsl:if test="string-length(normalize-space(Столбец[@Номер=$НомерСтолбца_ИННПолучателя]/@Значение))=10">
								<xsl:attribute name="КПП">
									<xsl:value-of  select="normalize-space(Столбец[@Номер=$НомерСтолбца_КПППолучателя]/@Значение)"/>
								</xsl:attribute>
							</xsl:if>

							<xsl:if test="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)!=''">
								<xsl:attribute name="Название">
									<xsl:value-of select="normalize-space(Столбец[@Номер=$НомерСтолбца_НазваниеПолучателя]/@Значение)"/>
								</xsl:attribute>
							</xsl:if>
						</Получатель>
					</Документ>

				</Файл>

			</Вложение>

		</Пакет>
	</xsl:template>
</xsl:stylesheet>