Как согласовывать и редактировать «Заявку на расходование ДС» из ERP в 1С:Документообороте?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Финансы и профессиональные услуги
← На главную

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

Архитектурная логика бесшовной интеграции

Для начала разберем, как технически устроена «бесшовная интеграция». Многие пользователи ошибочно полагают, что интеграция позволяет работать напрямую с таблицами базы ERP из базы ДО. На самом деле это не так. В системе 1С:ДО обязательно должен существовать объект-контейнер. Обычно это Внутренний документ (в версии 2.1) или Документ предприятия (в версии 3.0).

Этот объект выступает «отражением» (прокси-объектом) заявки из ERP. Процессы согласования, задачи и история изменений в ДО привязываются именно к этому внутреннему документу. Без него стандартный механизм бизнес-процессов ДО просто не будет знать, что именно он согласовывает. Поэтому полностью отказаться от создания документа в ДО при использовании типового функционала невозможно.

Почему изменения в ДО не попадают в ERP?

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

Стандартно интеграция настраивается на передачу данных «Туда» (из ERP в ДО). Однако для обратного влияния необходимо настроить вкладку «Получение из ДО» в правилах обмена на стороне ERP. Рассмотрим, как это сделать по шагам.

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

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

  1. Перейдем в раздел Администрирование — Настройки интеграции — Интеграция с 1С:Документооборотом.
  2. Откроем Правила интеграции и выберем объект Заявка на расходование денежных средств.
  3. Обратим внимание на вкладку «Правила получения данных». Именно здесь настраивается сопоставление полей, которые система должна забирать из ДО обратно в ERP.
  4. Добавим реквизиты, которые могут измениться в процессе согласования: СуммаДокумента, СтатьяДДС, Подразделение.
  5. Установим условие обновления. Рекомендуется настраивать обновление так, чтобы данные синхронизировались при изменении статуса документа в ДО или при выполнении задачи согласования.

Проанализируем технический нюанс: для работы этой связи система использует XDTO-пакеты. Если вы добавляете в обмен нетиповые реквизиты, вам потребуется расширить состав свойств в правилах обмена, чтобы программный интерфейс понимал, куда именно записывать данные в объект ДокументОбъект.ЗаявкаНаРасходованиеДенежныхСредств.

Работа в режиме «Одного окна»

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

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

Использование внешних задач в 1С:ДО 3.0

Если вы используете новую версию 1С:Документооборот 3.0, ситуация упрощается. В этой версии реализован механизм согласования внешних объектов. Выясним основные преимущества этого метода:

В ДО 3.0 можно запустить процесс согласования, где предметом будет выступать не ссылка на внутренний документ, а непосредственно ссылка на объект в ERP. Это требует предварительной настройки веб-сервисов, но позволяет избежать дублирования реквизитов. В этом случае в базе ДО хранится только «заголовок» процесса и задачи, а все данные читаются напрямую из ERP через IntegrationService.

Вариант с кастомной разработкой (HTTP-сервисы)

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


// Пример упрощенного вызова процесса в ДО через веб-сервис
Прокси = ИнтеграцияС1СДО.ПолучитьПроксиДляВерсии21();
ПараметрыПроцесса = Прокси.СоздатьОбъект("ДанныеБизнесПроцесса");
ПараметрыПроцесса.Наименование = "Согласование заявки №" + Объект.Номер;
// Вместо ссылки на документ ДО передаем навигационную ссылку ERP
ПараметрыПроцесса.Описание = ПолучитьНавигационнуюСсылку(Объект.Ссылка);
Прокси.СтартПроцесса(ПараметрыПроцесса);

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

Выводы и рекомендации

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

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

← На главную