Редактируемый договор — различия между версиями
(→Пример пакета с указанным идентификатором) |
м (added Category:Визуализации и формы ввода using HotCat) |
||
(не показано 25 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
==Общее описание== | ==Общее описание== | ||
− | Редактируемый договор - отдельный регламент для | + | Редактируемый договор - отдельный регламент для заключения договоров между организациями. По умолчанию такого регламента нет в личном кабинете, он появляется только после того, как сделана отправка с указанием особого идентификатора на пакете (подробности ниже) с помощью любого средства интеграции. В отличии от стандартного регламента, рассылка "Редактируемого договора" позволяет организации отправить контрагенту шаблон для заполнения договора без подписания. При этом отправитель определяет набор тех полей в в договоре, которые можно редактировать, основной текст остается неизменным. Существует как стандартный набор полей для редактирования (см. таблицу ниже), так и неограниченное количество произвольных полей. Если получатель такого документа не планирует заключать договор, то он отклоняет документ. В этом случае документооборот завершается, в обоих кабинетах появляется отрицательный статус. Если получатель хочет заключить договор с организацией - отправителем, то он заполняет редактируемые поля в тексте(см. экран редактирования договора) и отправляет договор на согласование. После этого договор возвращается в кабинет отправителя с электронной подписью получателя. Отправитель имеет возможность отклонить или согласовать заполненный договор. При отклонении создается новая редакция документа и заново отправляется на заполнение контрагенту. При утверждении договор будет иметь положительный статус у обоих участников документооборота (см. схему). |
==Схема движения документа== | ==Схема движения документа== | ||
[[Файл:Edocontract.jpg]] | [[Файл:Edocontract.jpg]] | ||
− | == | + | ==Формирование договора== |
− | + | Для того чтобы сделать отправку "Редактируемого договора" необходимо отправлять пакет с одним вложением.На пакете должен быть прописан специальный идентификатор регламента 5b59fa01-33c6-495b-a412-1dce202b20cd (см. пример пакета)<br/> | |
− | Для того чтобы сделать отправку "Редактируемого договора" необходимо отправлять | + | Вложение должно быть XML файлом формата ДоговорРед версии 3.01 (см. пример документа)<br/> |
− | |||
− | Особенности выгрузки файла формата ДоговорРед 3.01 | + | ===Особенности выгрузки файла формата ДоговорРед 3.01=== |
− | + | # Весь текст договора нужно поместить в тег html в виде html разметки | |
− | + | # Указать в тексте редактируемые поля. Для этого пишем <tensor id="Путь в модели файла (см. таблицу редактируемых полей)"></tensor> | |
− | + | # Затем всю html верстку с текстом договора нужно трансформировать в строку. для этого необходимо экранировать спецсимволы. Например, вместо <, писать < | |
− | |||
− | == | + | |
+ | Если файл создан правильно, то получатель такого документа увидит примерно следующее окно:<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> | ||
+ | <div width="200px"> | ||
+ | Основной текст договора...<br> | ||
+ | <b>КПП:</b><tensor id="Файл.Документ.Получатель.СвЮЛ.КПП"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Организация название краткое:</b><tensor id="Файл.Документ.Получатель.НазваниеКраткое"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Уполномоченное лицо:</b><tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Адрес организации:</b><tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Документ основание:</b><tensor id="Файл.Документ.Получатель.Представитель.ДокОсн"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Телефон:</b><tensor id="Файл.Документ.Получатель.Контакт.Телефон"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Должность представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Должность"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Фамилия представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Фамилия"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Имя представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Имя"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Отчество представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Отчество"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Название банка:</b><tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Расчетный счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.РСчет"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>Корр счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.КСчет"></tensor><br> | ||
+ | ...продолжение основного текста...<br> | ||
+ | <b>БИК:</b><tensor id="Файл.Документ.Получатель.БанкРекв.БИК"></tensor><br> | ||
+ | ...конец текста договора...<br> | ||
+ | </div> | ||
+ | </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
Содержание
Общее описание
Редактируемый договор - отдельный регламент для заключения договоров между организациями. По умолчанию такого регламента нет в личном кабинете, он появляется только после того, как сделана отправка с указанием особого идентификатора на пакете (подробности ниже) с помощью любого средства интеграции. В отличии от стандартного регламента, рассылка "Редактируемого договора" позволяет организации отправить контрагенту шаблон для заполнения договора без подписания. При этом отправитель определяет набор тех полей в в договоре, которые можно редактировать, основной текст остается неизменным. Существует как стандартный набор полей для редактирования (см. таблицу ниже), так и неограниченное количество произвольных полей. Если получатель такого документа не планирует заключать договор, то он отклоняет документ. В этом случае документооборот завершается, в обоих кабинетах появляется отрицательный статус. Если получатель хочет заключить договор с организацией - отправителем, то он заполняет редактируемые поля в тексте(см. экран редактирования договора) и отправляет договор на согласование. После этого договор возвращается в кабинет отправителя с электронной подписью получателя. Отправитель имеет возможность отклонить или согласовать заполненный договор. При отклонении создается новая редакция документа и заново отправляется на заполнение контрагенту. При утверждении договор будет иметь положительный статус у обоих участников документооборота (см. схему).
Схема движения документа
Формирование договора
Для того чтобы сделать отправку "Редактируемого договора" необходимо отправлять пакет с одним вложением.На пакете должен быть прописан специальный идентификатор регламента 5b59fa01-33c6-495b-a412-1dce202b20cd (см. пример пакета)
Вложение должно быть XML файлом формата ДоговорРед версии 3.01 (см. пример документа)
Особенности выгрузки файла формата ДоговорРед 3.01
- Весь текст договора нужно поместить в тег html в виде html разметки
- Указать в тексте редактируемые поля. Для этого пишем <tensor id="Путь в модели файла (см. таблицу редактируемых полей)"></tensor>
- Затем всю html верстку с текстом договора нужно трансформировать в строку. для этого необходимо экранировать спецсимволы. Например, вместо <, писать <
Если файл создан правильно, то получатель такого документа увидит примерно следующее окно:
Массовая рассылка редактируемых договоров СБИС Коннектом
Для того чтобы произвести массовую рассылку файлов по списку клиентов необходимо:
- Подготовить один xls файл формата «Книга Excel 97-2003» со списком получателей и рассылаемых файлов.
- Настроить СБИС Коннект
Структура xls файла со списком получателей
В файле должно быть два листа: «Лист1» и «Лист2».
Лист1 - список получателей
- Первая строка является заголовком таблицы и должна содержать следующие заголовки: «ИНН», «КПП», «Название». Порядок следования столбцов не важен.
- Начиная со второй строки идут данные о получателях.
Если Вы разметите в файле ещё один столбец "email", то организации получит уведомление о Вашей рассылке на указанный ящик электронной почты. Важно! На данный момент нельзя устанавливать в файле какие-либо фильтры. Иначе при отправке такого файла возникнет ошибка. Подробнее см.в разделе «[#Известные проблемы]».
Лист2 - параметры отправки
- Ячейка B1 – ИНН отправителя
- Ячейка B2 – КПП отправителя
Важно! - файл должен быть расположен вне рабочей папки СБИС Коннекта.
Настройка СБИС Коннект
- Установить отдельный СБИС Коннект
- На вкладке «Обмен документами»:
- Отключить загрузку входящих документов
- Отключить загрузку исходящих статусов документов
- Установить формат обмена документов «Произвольный XLS».
- В поле «XSLT преобразование» указать файл преобразования сделанный из приведенного ниже примера.
- На вкладке «Архив» отключить ведение архива
Список редактируемых полей в тексте договора
Название | Путь в модели формата |
---|---|
Полное название организации | Файл.Документ.Получатель.Название |
Краткое название организации | Файл.Документ.Получатель.НазваниеКраткое |
КПП организации | Файл.Документ.Получатель.СвЮЛ.КПП |
Юрдический адрес | Файл.Документ.Получатель.Адрес.АдрТекст |
Уполномоченное лицо (ФИО слитно) | Файл.Документ.Получатель.УполномоченноеЛицо |
Телефон | Файл.Документ.Получатель.Контакт.Телефон |
Представитель-Имя | Файл.Документ.Получатель.Представитель.Имя |
Представитель-Фамилия | Файл.Документ.Получатель.Представитель.Фамилия |
Представитель-Отчетсво | Файл.Документ.Получатель.Представитель.Отчество |
Представитель-Должность | Файл.Документ.Получатель.Представитель.Должность |
Представитель-документ-основание (доверенность) | Файл.Документ.Получатель.Представитель.ДокОсн |
Банк | Файл.Документ.Получатель.БанкРекв.НаимБанк |
Рассчетный счет | Файл.Документ.Получатель.БанкРекв.РСчет |
Корреспондентский счет | Файл.Документ.Получатель.БанкРекв.КСчет |
БИК | Файл.Документ.Получатель.БанкРекв.БИК |
Произвольное редактируемое поле (неограниченное кол-во) | Файл.Документ.Получатель.Параметр.[Имя] Имя - название дополнительного параметра, может быть любым |
Примеры
Пример пакета с указанным идентификатором
<?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>
<div width="200px">
Основной текст договора...<br>
<b>КПП:</b><tensor id="Файл.Документ.Получатель.СвЮЛ.КПП">772701001</tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название">Моя организация</tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название">Моя организация</tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название">Моя организация</tensor><br>
...продолжение основного текста...<br>
<b>Организация название краткое:</b><tensor id="Файл.Документ.Получатель.НазваниеКраткое">М. орган.</tensor><br>
...продолжение основного текста...<br>
<b>Уполномоченное лицо:</b><tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"> Уполномоченное лицо</tensor><br>
...продолжение основного текста...<br>
<b>Адрес организации:</b><tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"> Адрест организации</tensor><br>
...продолжение основного текста...<br>
<b>Документ основание:</b><tensor id="Файл.Документ.Получатель.Представитель.ДокОсн">Основание</tensor><br>
...продолжение основного текста...<br>
<b>Телефон:</b><tensor id="Файл.Документ.Получатель.Контакт.Телефон">41-02-01</tensor><br>
...продолжение основного текста...<br>
<b>Должность представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Должность">Должность</tensor><br>
...продолжение основного текста...<br>
<b>Фамилия представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Фамилия">Фамилия</tensor><br>
...продолжение основного текста...<br>
<b>Имя представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Имя">Имя</tensor><br>
...продолжение основного текста...<br>
<b>Отчество представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Отчество">Отчество</tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр">Кефир</tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр">Кефир</tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр">Кефир</tensor><br>
...продолжение основного текста...<br>
<b>Название банка:</b><tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк">Банковский банк</tensor><br>
...продолжение основного текста...<br>
<b>Расчетный счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.РСчет">12313123123</tensor><br>
...продолжение основного текста...<br>
<b>Корр счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.КСчет">1231231</tensor><br>
...продолжение основного текста...<br>
<b>БИК:</b><tensor id="Файл.Документ.Получатель.БанкРекв.БИК">123123</tensor><br>
...конец текста договора...<br>
</div>
</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>
<div width="200px">
Основной текст договора...<br>
<b>КПП:</b><tensor id="Файл.Документ.Получатель.СвЮЛ.КПП">772701001</tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название">Моя организация</tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название">Моя организация</tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название">Моя организация</tensor><br>
...продолжение основного текста...<br>
<b>Организация название краткое:</b><tensor id="Файл.Документ.Получатель.НазваниеКраткое">М. орган.</tensor><br>
...продолжение основного текста...<br>
<b>Уполномоченное лицо:</b><tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"> Уполномоченное лицо</tensor><br>
...продолжение основного текста...<br>
<b>Адрес организации:</b><tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"> Адрест организации</tensor><br>
...продолжение основного текста...<br>
<b>Документ основание:</b><tensor id="Файл.Документ.Получатель.Представитель.ДокОсн">Основание</tensor><br>
...продолжение основного текста...<br>
<b>Телефон:</b><tensor id="Файл.Документ.Получатель.Контакт.Телефон">41-02-01</tensor><br>
...продолжение основного текста...<br>
<b>Должность представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Должность">Должность</tensor><br>
...продолжение основного текста...<br>
<b>Фамилия представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Фамилия">Фамилия</tensor><br>
...продолжение основного текста...<br>
<b>Имя представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Имя">Имя</tensor><br>
...продолжение основного текста...<br>
<b>Отчество представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Отчество">Отчество</tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр">Кефир</tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр">Кефир</tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр">Кефир</tensor><br>
...продолжение основного текста...<br>
<b>Название банка:</b><tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк">Банковский банк</tensor><br>
...продолжение основного текста...<br>
<b>Расчетный счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.РСчет">12313123123</tensor><br>
...продолжение основного текста...<br>
<b>Корр счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.КСчет">1231231</tensor><br>
...продолжение основного текста...<br>
<b>БИК:</b><tensor id="Файл.Документ.Получатель.БанкРекв.БИК">123123</tensor><br>
...конец текста договора...<br>
</div>
</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>
<div width="200px">
Основной текст договора...<br>
<b>КПП:</b><tensor id="Файл.Документ.Получатель.СвЮЛ.КПП"></tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название"></tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название"></tensor><br>
...продолжение основного текста...<br>
<b>Организация название:</b><tensor id="Файл.Документ.Получатель.Название"></tensor><br>
...продолжение основного текста...<br>
<b>Организация название краткое:</b><tensor id="Файл.Документ.Получатель.НазваниеКраткое"></tensor><br>
...продолжение основного текста...<br>
<b>Уполномоченное лицо:</b><tensor id="Файл.Документ.Получатель.УполномоченноеЛицо"></tensor><br>
...продолжение основного текста...<br>
<b>Адрес организации:</b><tensor id="Файл.Документ.Получатель.Адрес.АдрТекст"></tensor><br>
...продолжение основного текста...<br>
<b>Документ основание:</b><tensor id="Файл.Документ.Получатель.Представитель.ДокОсн"></tensor><br>
...продолжение основного текста...<br>
<b>Телефон:</b><tensor id="Файл.Документ.Получатель.Контакт.Телефон"></tensor><br>
...продолжение основного текста...<br>
<b>Должность представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Должность"></tensor><br>
...продолжение основного текста...<br>
<b>Фамилия представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Фамилия"></tensor><br>
...продолжение основного текста...<br>
<b>Имя представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Имя"></tensor><br>
...продолжение основного текста...<br>
<b>Отчество представителя:</b><tensor id="Файл.Документ.Получатель.Представитель.Отчество"></tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"></tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"></tensor><br>
...продолжение основного текста...<br>
<b>Произвольный параметр:</b><tensor id="Файл.Документ.Получатель.Параметр.Произвольный параметр"></tensor><br>
...продолжение основного текста...<br>
<b>Название банка:</b><tensor id="Файл.Документ.Получатель.БанкРекв.НаимБанк"></tensor><br>
...продолжение основного текста...<br>
<b>Расчетный счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.РСчет"></tensor><br>
...продолжение основного текста...<br>
<b>Корр счет:</b><tensor id="Файл.Документ.Получатель.БанкРекв.КСчет"></tensor><br>
...продолжение основного текста...<br>
<b>БИК:</b><tensor id="Файл.Документ.Получатель.БанкРекв.БИК"></tensor><br>
...конец текста договора...<br>
</div>
</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>