Алгоритм отправки документов через внешнюю обработку — различия между версиями
(Новая страница: «В одном из реестров раздела Продажа нажали кнопку "Отправить" == '''ГлавноеОкно''': Отправи…») |
(→РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C) |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | Статья описывает алгоритм работы внешней обработки СБИС после нажатия кнопки отправить в одном из реестров раздела Продажа. | |
+ | Заголовки содержат название формы и название метода, последовательность заголовков соответствует порядку вызова этих методов. | ||
− | == | + | == ГлавноеОкно: ОтправитьДокументы == |
# Получает список отмеченных записей текущего реестра. | # Получает список отмеченных записей текущего реестра. | ||
# По имени реестра (тип документа 1C) определяем форму для дальнейшей обработки | # По имени реестра (тип документа 1C) определяем форму для дальнейшей обработки | ||
# Передает в дальнейшую обработку список отмеченных записей. | # Передает в дальнейшую обработку список отмеченных записей. | ||
− | == | + | == Документ_[тип документа 1С]: ОтправитьДокументы == |
# Перебирает список отмеченных записей | # Перебирает список отмеченных записей | ||
# По текущему разделу определяем форму для дальнейшей обработки. | # По текущему разделу определяем форму для дальнейшей обработки. | ||
# Передает в дальнейшую обработку запись из списка. | # Передает в дальнейшую обработку запись из списка. | ||
− | == | + | == [Раздел]_Шаблон: ПодготовитьСтруктуруДокумента == |
# В зависимости от раздела вызывает метод формирующий структуру пакета: | # В зависимости от раздела вызывает метод формирующий структуру пакета: | ||
## ПодготовитьСтруктуруДокумента1С - на основании документов 1С | ## ПодготовитьСтруктуруДокумента1С - на основании документов 1С | ||
Строка 20: | Строка 21: | ||
== РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C == | == РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C == | ||
− | + | 1. По файлу настроек реестра определяем тип будущего пакета в СБИС (реестр документов куда попадет данный пакет в СБИС) и способ отправки - если в файле настроек реестра есть узел КаталогОбмена, то он будет подготовленные пакеты выгружать в указанный в данном узле каталог | |
− | |||
− | |||
− | |||
Выгрузка в каталог конкретного реестра может пригодится, когда по данному реестру идут большие массовые отправки. Выгрузка файлов в каталог идет в несколько раз быстрее, чем их подписание и отправка, поэтому если выгружать документы в каталог, Вам не нужно ждать пока 1С закончит отправку документов. Всю длительную работу по подписанию и отправке в этом случае берет на себя СБИС Коннект. Операция имеет смысл если как правило из реестра отправляется несколько сотен документов. | Выгрузка в каталог конкретного реестра может пригодится, когда по данному реестру идут большие массовые отправки. Выгрузка файлов в каталог идет в несколько раз быстрее, чем их подписание и отправка, поэтому если выгружать документы в каталог, Вам не нужно ждать пока 1С закончит отправку документов. Всю длительную работу по подписанию и отправке в этом случае берет на себя СБИС Коннект. Операция имеет смысл если как правило из реестра отправляется несколько сотен документов. | ||
− | Среднее время отправки одного пакета из 1С = 1-2 сек (при единовременной отправке 20 пакетов и более). | + | Среднее время отправки одного пакета из 1С = 1.5-2 сек (при единовременной отправке 20 пакетов и более). |
− | Среднее время выгрузки одного пакета на диск = | + | Среднее время выгрузки одного пакета на диск = 0.4 сек |
+ | |||
+ | 2. Перебираем все вложения (ссылки на документы 1С) | ||
+ | 3. Для каждого вложения определяем файл настроек - если в файле настроек реестра есть параметр с именем документа 1С вложения, то для выгрузки используем файл настроек с именем указанным в этом параметре, иначе файл настроек по имени документа 1С вложения | ||
+ | 4. Все последующие вызовы идут по очереди из этого метода | ||
+ | |||
+ | == РаботаСДокументами1С: ПолучитьДанныеДокумента1С== | ||
+ | # Получает на сервере 1С значения всех параметров из файла настроек вложения | ||
+ | # Записывает значения в структуру аналогичную структуре файла настроек | ||
+ | # Передает полученную структуру для дальнейшей обработки | ||
+ | |||
+ | == Документ_[имя файла настроек вложения]: ПрочитатьДокумент== | ||
+ | # По структуре файла настроек со значениями параметров перебираем все файлы (узлы мФайл) которые нужно из неё сделать. | ||
+ | # Для каждого файла (по одному документу 1С можно выгрузить несколько XML файлов) по значению параметров Файл.Формат + Файл.ВерсияФормата определяем имя формы которая умеет создавать структуру документа данного типа | ||
+ | |||
+ | == Файл_[название_версия формата]: ПолучитьДанныеИзДокумента1С== | ||
+ | # Формируем структуру документа, аналогичную структуре формата XML документа данного типа и версии. | ||
+ | # Вызываем две переопределяемые пользователем функции СБИСПослеФормированияДокумента и СБИСПослеФормированияСтроки. | ||
+ | # Сформированную структуру помещаем общую структуру подготовленного пакета | ||
+ | |||
+ | == Файл_[название_версия формата]: СБИСПослеФормированияСтроки== | ||
+ | Функция специально сделана для размещения пользовательского кода для добавления реквизитов в строку документа. | ||
+ | |||
+ | В случае использования необходимо переопределить эту функцию в одноименной форме во ВнешниеФункции_Клиент | ||
+ | |||
+ | == Файл_[название_версия формата]: СБИСПослеФормированияДокумента== | ||
+ | Функция специально сделана для размещения пользовательского кода для добавления реквизитов в шапку документа, либо добавления неформализованных вложений к пакету. | ||
+ | |||
+ | В случае использования необходимо переопределить эту функцию в одноименной форме во ВнешниеФункции_Клиент | ||
+ | |||
+ | == РаботаСДокументами1С: ПолучитьXMLДокумента1С== | ||
+ | # Сериализуем структуру каждого вложения в XML | ||
+ | # Полученный XML размещаем в общей структуре Пакета как строку | ||
+ | |||
+ | == РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C == | ||
+ | # Перебираем все вложения. | ||
+ | # Если находим XSLT с именем "название_версия формата", применяем его к этому вложению. | ||
+ | # Помещаем подготовленный пакет в общий список подготовленных к отправке пакетов | ||
+ | |||
+ | по умолчанию все вложения формируются в формате 3.01, затем приводятся к нужному формату с помощью XSLT | ||
+ | |||
+ | == Документ_[тип документа 1С]: ОтправитьДокументы == | ||
+ | # В зависимости от настройки "Способ обмена" передаем по 100 подготовленных пакетов методу отправки. | ||
+ | |||
+ | == [Способ обмена (SDK/ИнтеграцияКаталог]: ОтправитьПакетыДокументов== | ||
+ | # отправляем документы при помощи SDK или выгружаем на диск | ||
+ | |||
+ | [[Категория:1С]] |
Текущая версия на 17:35, 26 января 2015
Статья описывает алгоритм работы внешней обработки СБИС после нажатия кнопки отправить в одном из реестров раздела Продажа. Заголовки содержат название формы и название метода, последовательность заголовков соответствует порядку вызова этих методов.
Содержание
- 1 ГлавноеОкно: ОтправитьДокументы
- 2 Документ_[тип документа 1С]: ОтправитьДокументы
- 3 [Раздел]_Шаблон: ПодготовитьСтруктуруДокумента
- 4 РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C
- 5 РаботаСДокументами1С: ПолучитьДанныеДокумента1С
- 6 Документ_[имя файла настроек вложения]: ПрочитатьДокумент
- 7 Файл_[название_версия формата]: ПолучитьДанныеИзДокумента1С
- 8 Файл_[название_версия формата]: СБИСПослеФормированияСтроки
- 9 Файл_[название_версия формата]: СБИСПослеФормированияДокумента
- 10 РаботаСДокументами1С: ПолучитьXMLДокумента1С
- 11 РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C
- 12 Документ_[тип документа 1С]: ОтправитьДокументы
- 13 [Способ обмена (SDK/ИнтеграцияКаталог]: ОтправитьПакетыДокументов
ГлавноеОкно: ОтправитьДокументы
- Получает список отмеченных записей текущего реестра.
- По имени реестра (тип документа 1C) определяем форму для дальнейшей обработки
- Передает в дальнейшую обработку список отмеченных записей.
Документ_[тип документа 1С]: ОтправитьДокументы
- Перебирает список отмеченных записей
- По текущему разделу определяем форму для дальнейшей обработки.
- Передает в дальнейшую обработку запись из списка.
[Раздел]_Шаблон: ПодготовитьСтруктуруДокумента
- В зависимости от раздела вызывает метод формирующий структуру пакета:
- ПодготовитьСтруктуруДокумента1С - на основании документов 1С
- ПодготовитьСтруктуруДокументаСБИС - на основании XML файлов.
- Передает в дальнейшую обработку запись из списка
Формирование структуры на основании XML файлов используется при открытии карточки пред просмотра входящего документа и загрузке документов. Алгоритм подготовки структуры документа у данных механизмов общий.
РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C
1. По файлу настроек реестра определяем тип будущего пакета в СБИС (реестр документов куда попадет данный пакет в СБИС) и способ отправки - если в файле настроек реестра есть узел КаталогОбмена, то он будет подготовленные пакеты выгружать в указанный в данном узле каталог
Выгрузка в каталог конкретного реестра может пригодится, когда по данному реестру идут большие массовые отправки. Выгрузка файлов в каталог идет в несколько раз быстрее, чем их подписание и отправка, поэтому если выгружать документы в каталог, Вам не нужно ждать пока 1С закончит отправку документов. Всю длительную работу по подписанию и отправке в этом случае берет на себя СБИС Коннект. Операция имеет смысл если как правило из реестра отправляется несколько сотен документов.
Среднее время отправки одного пакета из 1С = 1.5-2 сек (при единовременной отправке 20 пакетов и более).
Среднее время выгрузки одного пакета на диск = 0.4 сек
2. Перебираем все вложения (ссылки на документы 1С) 3. Для каждого вложения определяем файл настроек - если в файле настроек реестра есть параметр с именем документа 1С вложения, то для выгрузки используем файл настроек с именем указанным в этом параметре, иначе файл настроек по имени документа 1С вложения 4. Все последующие вызовы идут по очереди из этого метода
РаботаСДокументами1С: ПолучитьДанныеДокумента1С
- Получает на сервере 1С значения всех параметров из файла настроек вложения
- Записывает значения в структуру аналогичную структуре файла настроек
- Передает полученную структуру для дальнейшей обработки
Документ_[имя файла настроек вложения]: ПрочитатьДокумент
- По структуре файла настроек со значениями параметров перебираем все файлы (узлы мФайл) которые нужно из неё сделать.
- Для каждого файла (по одному документу 1С можно выгрузить несколько XML файлов) по значению параметров Файл.Формат + Файл.ВерсияФормата определяем имя формы которая умеет создавать структуру документа данного типа
Файл_[название_версия формата]: ПолучитьДанныеИзДокумента1С
- Формируем структуру документа, аналогичную структуре формата XML документа данного типа и версии.
- Вызываем две переопределяемые пользователем функции СБИСПослеФормированияДокумента и СБИСПослеФормированияСтроки.
- Сформированную структуру помещаем общую структуру подготовленного пакета
Файл_[название_версия формата]: СБИСПослеФормированияСтроки
Функция специально сделана для размещения пользовательского кода для добавления реквизитов в строку документа.
В случае использования необходимо переопределить эту функцию в одноименной форме во ВнешниеФункции_Клиент
Файл_[название_версия формата]: СБИСПослеФормированияДокумента
Функция специально сделана для размещения пользовательского кода для добавления реквизитов в шапку документа, либо добавления неформализованных вложений к пакету.
В случае использования необходимо переопределить эту функцию в одноименной форме во ВнешниеФункции_Клиент
РаботаСДокументами1С: ПолучитьXMLДокумента1С
- Сериализуем структуру каждого вложения в XML
- Полученный XML размещаем в общей структуре Пакета как строку
РаботаСДокументами1С: ПодготовитьСтруктуруДокумента1C
- Перебираем все вложения.
- Если находим XSLT с именем "название_версия формата", применяем его к этому вложению.
- Помещаем подготовленный пакет в общий список подготовленных к отправке пакетов
по умолчанию все вложения формируются в формате 3.01, затем приводятся к нужному формату с помощью XSLT
Документ_[тип документа 1С]: ОтправитьДокументы
- В зависимости от настройки "Способ обмена" передаем по 100 подготовленных пакетов методу отправки.
[Способ обмена (SDK/ИнтеграцияКаталог]: ОтправитьПакетыДокументов
- отправляем документы при помощи SDK или выгружаем на диск