Как настроить доступ к файлам из 1С:Документооборот в 1С:ERP?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

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

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

Решение 1: Бесшовная интеграция (рекомендуемый способ)

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

Преимущества такого подхода очевидны:

Разберем по шагам настройку бесшовной интеграции:

  1. Публикация веб-сервисов на стороне «1С:Документооборот».

    Чтобы ERP могла «общаться» с ДО, базу «Документооборота» необходимо опубликовать на веб-сервере (IIS или Apache). В результате у базы ДО появится HTTP-адрес, по которому к ее веб-сервисам смогут обращаться другие системы. Это стандартная процедура, которая выполняется в конфигураторе или через утилиты администрирования веб-сервера.

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

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

  3. Настройка подключения в «1С:ERP».

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

  4. Активация работы с файлами.

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

  5. Проверка результата.

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

Что делать, если файлы не отображаются?

Если вы все настроили, но новые файлы, добавленные в ДО, не видны в ERP, проведите диагностику по следующим пунктам:

Решение 2: Физический перенос файлов через доработку правил обмена (нерекомендуемый способ)

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

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

Принцип работы следующий:

  1. Модификация правил обмена.

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

  2. Выгрузка файла.

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

  3. Реализация условия.

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

  4. Загрузка файла.

    При загрузке данных в ERP, в обработчике ПослеЗагрузки, система получает из данных обмена адрес временного хранилища. С помощью функции ПолучитьИзВременногоХранилища() она извлекает двоичные данные файла и программно присоединяет их к соответствующему объекту в ERP, используя стандартные функции БСП для работы с присоединенными файлами.

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

← На главную