1с документооборот ошибка интеграции

После обновления типовой конфигурации 1С:ЗУП на релиз Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.18.337) при очередном обменен в рамках типой интеграции с 1С:Документооборот вылезла следующая ошибка:

DMGetChangesRequest

{ОбщийМодуль.ИнтеграцияС1СДокументооборотОбмен.Модуль(428)}: Поле объекта не обнаружено (skipMessages)

Ошибка бесшовной интеграции с 1С:Документооборот

Окно записи журнала 1С с ошибкой

Поиск в тексте модуля по указанной в сообщении об ошибке строке привел к следующей конструкции:

ПропускаемыеСообщения = Запрос.skipMessages; // СписокXDTO

Чуть выше была так же обнаружена новая вставка по сравнению с предыдущими релизами:

ПоддерживаетсяПропускСообщенийСОшибкой = ИнтеграцияС1СДокументооборот.ДоступенФункционалВерсииСервиса(«2.1.28.12.CORP»);

То есть фирма 1С обновила программный интерфейс web-сервиса интеграции с 1С:Документооборт и в номом релизе 1С:ЗУП решила его использовать. Однако похоже забыла поставить проверку на то используется ли в конкретном случае новая версия 1С:Документооборт. В нашем случае как раз используется конфигурация 1С:Документооборт релиза 2.1.10.2 и поэтому при обращении к новой фиче происходит ошибка, так как ее просто нет в старой версии сервиса.

Приступаем к исправлению

Добавляем общий модуль ИнтеграцияС1СДокументооборотОбмен в расширение. Делаем вызов исправленной процедуры ПолучитьДанные.

В ней перенесем обращение к новому свойству объекта сервиса в условие с проверкой а доступен ли новый функционал:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

&Вместо(«ПолучитьДанные»)

Процедура маг_ПолучитьДанные()

Попытка

ПоддерживаетсяПропускСообщенийСОшибкой = ИнтеграцияС1СДокументооборот.ДоступенФункционалВерсииСервиса(«2.1.28.12.CORP»);

Пока Не ПрочитаныВсеСообщения Цикл

Запрос = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, «DMGetChangesRequest»);

Запрос.lastMessageID = НомерПоследнегоСообщения;

//В Типовой была здесь и получали ошибку, так как нет проверки на доступность нового функционала

//ПропускаемыеСообщения = Запрос.skipMessages; // СписокXDTO

Если ПоддерживаетсяПропускСообщенийСОшибкой Тогда

//++Наша вставка

ПропускаемыеСообщения = Запрос.skipMessages; // СписокXDTO

//—Наша вставка

Запрос.lastMessageWasReceived = СообщениеБылоПринято;

После этого исправления все заработало как надо. Обмен с интегрированной системой стал проходить без ошибок.

Уровень сложности
Простой

Время на прочтение
2 мин

Количество просмотров 1.1K

С выходом 1С:Документооборот 3.0 версии 3.0.11.25 стала доступна настройка интеграции 1С:Документооборот 3.0 и 1С:Кабинет сотрудника. У некоторых администраторов 1С:ДО3 возникают сложности с этими настройками.

Саму обработку можно взять тут (если лень скачивать весь дистрибутив 1С:ДО3:

Для чего это нужно? Информация с ИТС:

Сервис «1С:Кабинет сотрудника» позволит быстро и просто перейти на кадровый электронный документооборот.

Обработка, подписание и отправка документов происходит в привычном интерфейсе программы 1С, и благодаря чему не придется перестраивать порядок ведения учета или проходить дополнительное обучение.

Сотрудники отправляют заявления, запросы и подписывают кадровые документы в своем личном кабинете, который доступен из удобного мобильного приложения или через веб-браузер на любом устройстве.

Несколько фактов о сервисе «1С:Кабинет сотрудника»:

■ Обеспечивает кадровый электронный документооборот,

■ Для подписания сотрудником используется УНЭП,

■ УНЭП выпускает сотрудник в сервисе,

■ Подпись хранится в кабинете сотрудника.

Подробнее о сервисе: https://portal.1c.ru/applications/1C-ESS.

Как это работает?

Ознакомиться под роспись с документом можно как в личном кабинете 1С:Кабинета сотрудника, так и выполнить задачу ознакомления в 1С:Документообороте.

1. В 1С:Документообороте создаётся документ и направляется на обработку.

2. В какой-то момент жизненного цикла документ попадает на подписание.

3. 1С:Документооборот понимает, что у этого сотрудника есть личный кабинет, и автоматически направляет его в 1С:Кабинет сотрудника.

В 1С:Документообороте задача подписания автоматически отмечается выполненной, обработка документа двигается дальше по маршруту.

В 1С:Документообороте указывается соответствующий способ подписания.

Как настроить?

  1. В БД 1С, в которой был изначально настроен 1С:Кабинет сотрудника (обычно это ЗУП) включить кадровый ЭДО.

  1. В БД 1С, в которой был изначально настроен 1С:Кабинет сотрудника (обычно это ЗУП) открыть внешнюю обработку из дистрибутива 1С:Документооборот 3.0. И скопировать в удобное место данные из полей: Адрес приложения, Идентификатор клиента, Секрет клиента. Саму обработку можно взять тут: https://disk.yandex.ru/d/nLaeKLC1kGL73w

  1. В 1С:Документооброт 3.0 выполняем заполнение полей в Настройка программы -> Кабинет сотрудника.

Готово!

Бесшовная интеграция с Документооборотом 1С. В Документооборот не попадают изменения из внешней системы

 Я просто оставлю это здесь

PS

1. Если документ добавлен самостоятельно — документ должен быть включен в план обмена 1С Документооборот Переопределяемый (либо дополнить поведение метода получения измененных в модуле ИнтеграцияС1СДокументооборотОбмен.ПолучитьМассивЗарегистрированныхДанных())

2. Проверить журнал регистрации во внешней (относительно ДО) системе и в самом ДО (могут быть ошибки, которые не попадают в исключение в пользовательском интерфейсе. а так же при самом обмене).

Популярные сообщения из этого блога

Вводная Если на форме есть элемент управления со списком выбора, в моем конкретном примере это Колонка Значение (Число (3,0)) с настроенным списком выбора. По умолчанию платформа отображает именно строковое значения, а не текст представления  из списка выбора (когда как при выборе значения из списка показываются именно представления). Решение Для Управляемых форм необходимо настроить правила условного оформления, для обычных форм — оформление ячеек при выводе данных.

Когда нужно в макете (табличном документе) изменить ширину колонки  для конкретных строк: 1. Выделить всю строку (строки). Именно всю, фокус для выделенной области не работает. 2. Нажимаем и не отпускает Ctrl 3. С помощью мыши изменяют ширину любой из колонок — будет задан вопрос об создании нового формата строк — соглашаемся. Как же прекрасен мир, где для модификаций не достаточно просто использовать контекстное меню и диалог редактора свойств, где нужно знать заветные слова и таинства танца. 90ые, моё почтение. UPD Программно, тоже самое, можно сделать через ТабДок = Новый ТабличныйДокумент(); ТабДок.Область(1,,1,).СоздатьФорматСтрок(); ТабДок.Область(1,1).ШиринаКолонок = 70; ТабДок.Область(1,2).ШиринаКолонок = 30; ТабДок.Область(2,,2,).СоздатьФорматСтрок(); ТабДок.Область(2,1).ШиринаКолонок = 30; ТабДок.Область(2,2).ШиринаКолонок = 70; ТабДок.Показать();

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавление\изменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За

Настройка бесшовной интеграции позволяет расширить спектр возможностей обеих систем.

Процессы «1С:Документооборот 2.0» и «1С:ERP» зачастую тесно переплетены между собой и являются логично связанной цепочкой одного бизнес-процесса. «1С:ERP» содержит как огромный перечень документов по различным направлениям, так и простые задачи в виде заданий.

«1С:ДО», в свою очередь, позволяет настроить сложные маршруты обработки документов и содержит большое количество видов документов. По этой причине необходима высокая степень интеграции между данными учетными системами для эффективной работы.

Бесшовная интеграция обеспечивает работу с данными системы «1С:ДО» из интерфейса «1С:ERP», а также пользоваться такими возможностями программы, как запуск бизнес-процессов, отправка писем, просмотр связей, переписки по документу и т.п. Также исчезает необходимость переходов из одной программы в другую: так, в карточках документов «1С:ERP» появятся гиперссылки, по которым можно открыть связанные с ними документы «1С:Документооборот».

Настройка синхронизации

Вся настройка интеграции происходит в пользовательском режиме.

Шаги для бесшовной интеграции:

  1. Синхронизация НСИ «1С:ERP» и «1С:Документооборот».
  2. Публикация базы «1С:Документооборот» на web-сервере.
  3. Настройка правил интеграции.

Для чего нужна синхронизация НСИ «1С:ERP» и «1С:Документооборот»?

  • для корректного заполнения документов средствами интеграции;
  • для единства справочников учетной системы и «1С:ДО»;
  • для заполнения базы «1С:ДО» (пользователи, структура, статьи движения денежных средств и т.д.).

Настройка синхронизации выполняется в одной из систем, к примеру в системе «1С:ERP». В «1С:ДО» данная настройка будет воспроизведена автоматически. В «1С:ERP» в разделе НСИ и администрирование выбираем Настройка интеграции, команда Синхронизация данных.

Команда Синхронизация данных

Рисунок 1 — Команда Синхронизация данных

В открывшемся окне включаем возможность синхронизации, указываем префикс базы.

Настройки синхронизации данных

Рисунок 2 — Настройки синхронизации данных

Далее переходим в раздел Синхронизация данных и указываем, с чем будем синхронизироваться.

Создание синхронизации

Рисунок 3 — Создание синхронизации

Новая синхронизация данных

Рисунок 4 — Новая синхронизация данных

При прямом подключении будет происходить прямое обращение из базы в базу, и при этом никаких сторонних файлов образовываться не будет (только временные файлы, которые потом затрутся).

Если вариант прямого подключения не устраивает или базы находятся в разных местах, то возможны еще 2 варианта: прямое подключение через интернет и подключение по другим каналам связи (сетевой каталог, FTP, электронная почта).

Далее мы указываем, где находится наша база. Например, на данном компьютере или в локальной сети, при использовании файлового режима работы, в случае если база хранится в серверном варианте, то мы указываем параметры хранения на сервере.

Важно! Для синхронизации требуется завести отдельного пользователя, под которым никто не будет заходить в систему для других целей. К примеру при выборе текущего пользователя/администратора механизм синхронизации отработает некорректно.

Далее проверяем подключение.

Настройки синхронизации и подключения к 1С:ДО

Рисунок 5 — Настройки синхронизации и подключения к 1С:ДО

Параметры прямого подключения

Рисунок 6 — Параметры прямого подключения

После этого система предложит вам провести синхронизацию.

Если вы не хотите выполнять синхронизацию всех доступных справочников и регистров, то нужно снять галочку выполнить синхронизацию сейчас, чтобы все данные «не ушли». Правила синхронизации сохранятся, и потом вы сможете указать, какими именно элементами будете обмениваться. Например, это актуально, если в системе давно ведется работа и объем данных очень большой.

Если галочка выполнить синхронизацию сейчас будет выставлена, то синхронизация будет произведена, и будут выведены предупреждения – сообщения о каких-либо конфликтах или недочетах.

В Предупреждениях можно увидеть весь список загруженных, но не проведенных документов, объектов, где не хватает реквизитов, прав доступа и т.д.

Предупреждения при синхронизации

Рисунок 7 — Предупреждения при синхронизации

Не проведенные документы необходимо провести.

Каждый элемент таблицы с незаполненным реквизитом нужно будет открыть и дозаполнить требуемую информацию. Соответственно, исправленные элементы при последующей синхронизации уже не будут выводиться в предупреждения, поскольку в синхронизации будут участвовать только новые объекты.

Предупреждение при синхронизации данных

Рисунок 8 — Предупреждение при синхронизации данных

На Закладке Конфликты будут выведены одинаковые элементы, реквизиты которых в двух базах отличаются (например, у одного и того же контрагента в «1С:ERP» и в «1С:ДО» разные адреса).

Ниже будет написано из какой программы будет перезаписана информация по умолчанию (т.е. в пользу какой программы разрешится конфликт), здесь вы можете подтвердить данный вариант или нажать кнопку Пересмотреть.

По кнопке Показать отличия — показывает, чем отличаются объекты в двух базах.

Настройку перечня синхронизируемых объектов можно производить как при первой синхронизации, если вы не хотите переносить весь объем информации, так и в дальнейшем.

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

В Расписании указывается периодичность настройки синхронизация. Синхронизацию можно выполнить только разово в начале, а потом при необходимости загружать отдельные объекты. А при задании расписания можно указать как с какой периодичностью (до секунды) ее производить.

Сценарий синхронизации данных

Рисунок 9 — Сценарий синхронизации данных

Вернувшись к окну результатов, можно увидеть, что отправить данные удалось успешно, а получить не удалось.

Синхронизация данных

Рисунок 10 — Синхронизация данных

После нажатия на любую из кнопок Подробно откроется Журнал регистрации с результатами выполнения обмена. Для начала нужно посмотреть данные успешной отправки

Журнал регистрации

Рисунок 11 — Журнал регистрации

Когда все необходимые объекты выгрузились в файл, необходимо произвести анализ результатов неудавшегося получения данных через детализацию ошибки.

Журнал регистрации

Рисунок 12 — Журнал регистрации

Для детализации ошибки нужно дважды щелкнуть по строке.

Детализация ошибок синхронизации

Рисунок 13 — Детализация ошибок синхронизации

Из результатов видно, что что-то не так с правилами обмена. Ошибки могут быть разными, соответственно, исправляются индивидуально.

Далее на стороне «1С:ДО» следует выполнить проверку актуальности правил обмена — Настройки и администрирование — открыть синхронизацию данных.

Настройка правил интеграции

Переходим к конкретной настройке по объектам интеграции.

В разделе НСИ и администрирование выбираем Интеграция с 1С:Документооборотом.

Интеграция ERP с Документооборотом

Рисунок 14 — Интеграция с 1С:Документооборотом

Сначала включаем возможность интеграции, а потом заполняем необходимые данные. Указываем адрес и название базы. Далее нужно будет выставить флаги, по каким объектам будет интегрироваться система. К примеру, можно интегрировать только документы, можно вести интеграцию по процессам и задачам, можно видеть связи в окне «1С:ERP».

Настройки Интеграции с 1С:ДО

Рисунок 15 — Настройки Интеграции с «1С:ДО»

Далее производим настройку правил для каждого объекта, которые будут настроены и отображаться перечнем: наименования объектов в «1С:ERP» и соответствующих им объектов в «1С:ДО».

Правила интеграции с 1С:ДО

Рисунок 16 — Правила интеграции с «1С:ДО»

Правила настраивают в пользовательском режиме — указывают соответствия реквизитов.

«1С:ERP» – это родительская система, из которой выходит документ, к примеру Заявка на расходование денежных средств или Заказ, а в «1С:ДО» документ проходит согласование и обратно в «1С:ERP» возвращается статус данного документа.

Перед началом настройки обмена, необходимо правильно выбрать базу-источник

Опираемся на следующие правила:

  1. Если одна из баз практически пуста, то обмен быстрее произойдет именно в ней, так как меньше времени займет выгрузка данных.
  2. Если при обмене используется прямое подключение, то выгрузка данных происходит из базы, к которой выполнено подключение (База 2), и загрузка данных в базу, в которой настраивается подключение (База 1). Т.е. приоритетнее будут данные из Базы 2.
  3. Если обмен выполняется через файлы, то данные базы, в которой производится настройка и выгрузка, будут приоритетными.
  4. Приоритетными считаются данные, к состоянию которых будет приведена информация в обеих базах.
  5. Если существует необходимость принять не все данные из источника, то во время первичного обмена можно загрузить только необходимые данные, воспользовавшись механизмом интерактивной загрузки. Все остальное будет синхронизировано позже.

Настройки обмена в 1С:Документооборот

Для этого под пользователем Администратор необходимо создать пользователя (например «Обмен»), который будет выполнять обмен. Это можно сделать в разделе Настройка и администрирование.

Настройка и администрирование Документооборот

Рисунок 17 — Настройка и администрирование в «1С:ДО»

Создание пользователя в Документообороте

Рисунок 18 — Создание пользователя «Обмен»

Пользователь «Обмен» должен быть включен в группу доступа Администраторы.

Установка пользователю полномочий Администратора

Рисунок 19 — Установка пользователю полномочий Администратора

Для перехода к следующему шагу в разделе Настройка и администрирование выбираем пункт Настройка программы.

Обмен данными Документооборот

Рисунок 20 — Обмен данными

Необходимо проверить настройки обмена на наличие флага Использовать синхронизацию данных и указать префикс информационной базы.

Настройка обмен данными

Рисунок 21 — Настройка обмен данными

В разделе Настройка и администрирование — пункт Синхронизация данных получаем доступ к настройкам обмена.

Синхронизация данных Документооборот

Рисунок 22 — Синхронизация данных

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

Выбор системы для синхронизации данных в Документообороте

Рисунок 23 — Выбор системы для синхронизации данных

Далее механизм предложит возможность выбрать способ настройки синхронизации.

Перед тем как продолжить настройку, необходимо обеспечить безопасность данных, т.е. сделать резервное копирование базы.

Обозначения

УХ — конфигурация «1С:Управление холдингом», версия 3.1.17.11.

ДО — конфигурация «1С:Документооборот 2», версия 2.1.13.28.

Инцидент

После обновления конфигурации УХ образовалась ситуация:

  • не поступают или слишком медленно поступают документы из ДО в УХ;

  • не поступают или слишком медленно поступают документы из УХ в ДО.

Регламентное задание: «Интеграция с 1С:Документооборот» завершалась с ошибкой. 

Анализ

При анализе обнаружились следующие моменты: 

  • При обновлении (в течение 3 дней) в базе ДО скопилось много сообщений.

  • В базе УХ к обмену накопилось много справочников и документов, размер которых составил более 2,5 Гб. 

  • Обмен запускался и длился около 2-3 часов. Из-за превышения порога длительности завершался с ошибкой. В результате часто возникали сетевые ошибки, и обмен никак не проходил до конца. С каждым запуском процесс начинался сначала. Из 10 попыток одна могла пройти успешно. Поэтому формулировка обозначена как «не поступают или слишком медленно поступают документы из УХ в ДО».

  • Пока длились безуспешные попытки обмена, в это время к нему регистрировались  новые справочники и документы. Размер сообщения возрастал. 

  • При попытках отправки данных из УХ в ДО в базе ДО копилось новое огромное количество сообщений. В итоге — постоянно медленное получение данных из УХ в ДО и медленная передача данных из ДО в УХ.

63 801 976 583 994; ДатаСоздания: 21.10.2022 22:16:23; Размер:2 720Мб = 2 785 522Кб


63 801 977 897 005; ДатаСоздания: 21.10.2022 22:38:17; Размер:2 721Мб = 2 786 214Кб


63 802 001 223 488; ДатаСоздания: 22.10.2022 5:07:03; Размер:2 763Мб = 2 828 972Кб


63 802 009 881 152; ДатаСоздания: 22.10.2022 7:31:21; Размер:655Мб = 670 253Кб


63 802 014 287 617; ДатаСоздания: 22.10.2022 8:44:47; Размер:310Мб = 317 115Кб


63 802 017 516 686; ДатаСоздания: 22.10.2022 9:38:36; Размер:208Мб = 212 659Кб


63 802 021 077 103; ДатаСоздания: 22.10.2022 10:37:57; Размер:249Мб = 254 556Кб


63 802 025 718 604; ДатаСоздания: 22.10.2022 11:55:18; Размер:373Мб = 382 195Кб


63 802 030 634 317; ДатаСоздания: 22.10.2022 13:17:14; Размер:355Мб = 363 150Кб


63 802 036 204 298; ДатаСоздания: 22.10.2022 14:50:04; Размер:444Мб = 455 060Кб


63 802 042 614 871; ДатаСоздания: 22.10.2022 16:36:54; Размер:474Мб = 485 540Кб


63 802 050 119 752; ДатаСоздания: 22.10.2022 18:41:59; Размер:558Мб = 571 679Кб


63 802 055 579 842; ДатаСоздания: 22.10.2022 20:12:59; Размер:284Мб = 290 762Кб


63 802 058 158 833; ДатаСоздания: 22.10.2022 20:55:58; Размер:174Мб = 177 926Кб


63 802 060 055 806; ДатаСоздания: 22.10.2022 21:27:35; Размер:87Мб = 89 000Кб


63 802 061 534 480; ДатаСоздания: 22.10.2022 21:52:14; Размер:42Мб = 43 338Кб


63 802 061 690 669; ДатаСоздания: 22.10.2022 21:54:50; Размер:42Мб = 43 338Кб


63 802 067 464 215; ДатаСоздания: 22.10.2022 23:31:04; Размер:15Мб = 15 365Кб


63 802 081 756 102; ДатаСоздания: 23.10.2022 3:29:16; Размер:3Мб = 3 149Кб


63 802 097 256 959; ДатаСоздания: 23.10.2022 7:47:36; Размер:25Мб = 25 280Кб


63 802 115 269 504; ДатаСоздания: 23.10.2022 12:47:49; Размер:368Мб = 376 639Кб


63 802 115 676 899; ДатаСоздания: 23.10.2022 12:54:36; Размер:373Мб = 381 644Кб


63 802 119 110 051; ДатаСоздания: 23.10.2022 13:51:50; Размер:326Мб = 333 318Кб


63 802 121 285 099; ДатаСоздания: 23.10.2022 14:28:05; Размер:205Мб = 210 389Кб

Взглянем на типовой код процедуры обмена.

Типовой код процедуры обмена 1c  Рис.3 Типовой код процедуры обмена

Программно обмен сделан так, что в одной процедуре выполняется сначала подготовка 

данных к передаче из УХ в ДО, затем передача из УХ в ДО  и  загрузка данных из ДО в УХ. 

Недостатком такой структуры построения является последовательное выполнение, что в результате и привело к замедлениям и остановке самого обмена.

Решение: распараллеливание процессов

Один единый процесс мы разделяем на три отдельных независимых:

  • процесс подготовки данных для передачи из УХ в ДО;

  • процесс передачи данных из УХ в ДО;

  • процесс загрузки данных из ДО в УХ.

Вместо запуска одной процедуры отдельно настроен запуск трех. Программный код доработан следующим образом.

Рис.4 Оптимизированный код процедуры обмена. Рис.4 Оптимизированный код процедуры обмена.

В процедуре «ВыполнитьОбменДанными»  добавлен параметр «ДопПараметрыВыполнения» . При запуске процедуры без передачи этого параметра выполняется типовой код. 

При запуске процедуры с этим параметром выполняется наш добавленный код, в котором в зависимости от значений ключей внутри параметра вызываются типовые процедуры: «ПодготовитьДанныеДляОтправки» , «ОтправитьДанные» , «ПолучитьДанные» . 

Далее можно создать три отдельных регламентных задания, которые вызывают только одну процедуру «ВыполнитьОбменДанными» , но с разными значениями параметра «ДопПараметрыВыполнения» . В нашем случае, чтобы было меньше доработок конфигурации и для большей оперативности внесения правок созданы три внешние обработки:

  • модуль объекта которых одинаков; 

  • за исключением наименования;

  • за исключением процедуры «ПодготовитьДанные».

Рис.5 Вызов оптимизированной процедуры обмена.  Рис.5 Вызов оптимизированной процедуры обмена.

Для подготовки данных:

Процедура ПодготовитьДанные() Экспорт	
	ДопПараметрыВыполнения = Новый Структура;
	ДопПараметрыВыполнения.Вставить("ПодготовитьДанные", Истина);
	ДопПараметрыВыполнения.Вставить("ОтправитьДанные", Ложь);
	ДопПараметрыВыполнения.Вставить("ПолучитьДанные", Ложь);
	ИнтеграцияС1СДокументооборотОбмен.ВыполнитьОбменДанными(ДопПараметрыВыполнения);
КонецПроцедуры

Для отправки данных:

Процедура ПодготовитьДанные() Экспорт	
	ДопПараметрыВыполнения = Новый Структура;


	ДопПараметрыВыполнения.Вставить("ПодготовитьДанные", Ложь);
	ДопПараметрыВыполнения.Вставить("ОтправитьДанные", Истина);
	ДопПараметрыВыполнения.Вставить("ПолучитьДанные", Ложь);
	ИнтеграцияС1СДокументооборотОбмен.ВыполнитьОбменДанными(ДопПараметрыВыполнения);
КонецПроцедуры

Для загрузки данных:

Процедура ПодготовитьДанные() Экспорт	
	ДопПараметрыВыполнения = Новый Структура;
	ДопПараметрыВыполнения.Вставить("ПодготовитьДанные", Ложь);
	ДопПараметрыВыполнения.Вставить("ОтправитьДанные", Ложь);
	ДопПараметрыВыполнения.Вставить("ПолучитьДанные", Истина);
	ИнтеграцияС1СДокументооборотОбмен.ВыполнитьОбменДанными(ДопПараметрыВыполнения);
КонецПроцедуры

Обработки добавляются в справочник «Дополнительные обработки» и для каждой настраивается запуск по расписанию. 

В нашем примере расписание следующее: 

  • Подготовка данных: каждые 5 минут.

  • Отправка данных: каждые 10 минут.

  • Загрузка данных: каждые 15 минут.

В результате доработки мы получили независимо работающие процессы: подготовки, отправки и загрузки данных.

Во вложении находятся обработки, которые запускаются вместо типового регламентного задания.

Казалось, относительно новый релиз УХ, и можно было в типовой коробке провести данную оптимизацию. Однако до сих пор в типовых конфигурациях обмен последовательный.

Кроме распараллеливания процессов, остались значительно объемные сообщения, из-за которых стопорилась отправка. Такие сообщения, к сожалению, пришлось пропустить, а документы пришлось зарегистрировать к обмену заново уже порционно, чтобы исключить повторения ошибки. Так как теперь обработка «Подготовка данных» выполняется независимо от отправки и загрузки, то в дальнейшем исключено разрастание размера сообщения, а увеличением частоты запуска (например не 5 минут, а 3 минуты) можно дополнительно уменьшить порцию данных и, соответственно, размер сообщения.

Ограничения:

— версии ДО и УХ не поддерживают пропуск сообщений;

— версии ДО и УХ не поддерживают асинхронную передачу сообщений.

Вложения к материалу:

Код подготовки данных — скачать.
Код отправки данных — скачать.
Код получения данных — скачать.

Внедрение программных продуктов 1С

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • 1с двоичные данные записать ошибка
  • 1с вызвать ошибку принудительно
  • 1с вызвать сообщение об ошибке
  • 1с выдает ошибку формата потока что делать
  • 1с выдать сообщение пользователю об ошибке

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: