При эксплуатации крупных систем на базе 1С, таких как 1С:ERP Управление предприятием, одной из самых острых проблем становится стремительный рост объема базы данных за счет присоединенных файлов (сканов договоров, первичных документов, спецификаций). Традиционным решением является вынос хранения файлов во внешнюю систему. В данной статье мы разберем, как реализовать сценарий, при котором файлы, прикрепляемые пользователем в ERP, физически сохраняются в 1С:Документооборот 3.0 (ДО 3.0) через механизм бесшовной интеграции.
Ранее, при использовании связки с 1С:Документооборот редакции 2.1, системные архитекторы часто сталкивались с необходимостью кастомизации кода для того, чтобы файлы автоматически «улетали» в ДО при их добавлении в карточку документа ERP. Однако, начиная с релиза ERP 2.5.12.28, разработчики фирмы «1С» реализовали глубокую поддержку интеграции с третьей редакцией Документооборота.
Для успешной реализации задачи нам необходимо убедиться, что используемые конфигурации соответствуют следующим требованиям:
Рассмотрим первый этап настройки в интерфейсе ERP. Перейдем в раздел НСИ и администрирование — Настройка интеграции — Интеграция с 1С:Документооборот. Здесь мы должны выполнить следующие действия:
Именно этот флаг сообщает системе, что при попытке записи нового объекта в справочники ПрисоединенныеФайлы, данные должны передаваться через шину интеграции в связанную систему.
Проанализируем механизм создания связи. Чтобы файл в ERP «понимал», к какому объекту в ДО ему прикрепиться, необходимо настроить Правила интеграции. В ДО 3.0 архитектура документов изменилась: больше нет жесткого разделения на входящие, исходящие и внутренние документы. Теперь используется единый справочник Документы.
Выполним настройку правила для конкретного вида документа (например, «Заказ клиента»):
Документ.ЗаказКлиента.Важный нюанс: Если в ERP пользователь прикрепляет файл, а связанный объект в ДО еще не создан, система попытается создать карточку документа в ДО в фоновом режиме на основании настроенного правила, где могут быть использованы произвольные действия дополнительных реквизитов. Если обязательные поля в ДО не будут заполнены (например, не указан проект или подразделение), файл не сможет быть сохранен. Проанализируем этот момент заранее и убедимся, что правила сопоставления покрывают все обязательные реквизиты.
Посмотрим, как это выглядит со стороны пользователя. В обновленном механизме интеграции реализована концепция «единого интерфейса». В карточке Заказа клиента на вкладке Файлы пользователь видит общий список. При этом система помечает специальными иконками файлы, которые физически хранятся в 1С:Документообороте.
При добавлении нового файла через кнопку «Добавить», ERP вызывает программные интерфейсы БИД (Библиотеки интеграции с документооборотом). Увидеть результат работы можно открыв прикрепленные файлы в отчете "Связанные документы". Файл моментально передается в ДО, и в ERP остается только навигационная ссылка на него. Это позволяет существенно экономить дисковое пространство основной оперативной базы.
Разберем ситуацию, упомянутую в обсуждении: риск случайного старта процессов. В ДО 3.0 на смену бизнес-процессам пришли Обработки документа. При создании документа через интеграцию (когда мы прикрепили файл в ERP), в ДО может сработать триггер «При создании документа».
Если в настройках ДО для данного вида документа включена автоматическая обработка, то сразу после прикрепления файла в ERP документ может уйти на «Согласование» или «Регистрацию». Мы рекомендуем тщательно проверить настройки Схем обработки в ДО 3.0, чтобы старт процессов был осознанным действием пользователя, либо происходил только при заполнении всех необходимых данных.
Проанализируем техническую сторону прав доступа. В ДО 3.0 используется обновленная ролевая модель и «Политики доступа». Чтобы пользователь ERP мог бесшовно записывать файлы в ДО, у него должна быть учетная запись в обеих базах, связанные через справочник Пользователи (обычно настраивается синхронизация по логину или GUID).
Если у пользователя в ДО нет прав на создание документа или добавление файлов в конкретную папку/категорию, то при попытке прикрепить файл в ERP система выдаст ошибку прав доступа. Чтобы избежать конфликтов, следует заранее настроить доступ и видимость реквизитов документов по пользователям. Это критический момент, который требует предварительного тестирования под учетной записью рядового сотрудника.
Если ваша база ERP уже перегружена файлами, накопленными до включения интеграции, следует воспользоваться типовой обработкой Перенос файлов в 1С:Документооборот. Рассмотрим алгоритм ее работы:
Этот процесс можно запускать регламентным заданием в часы минимальной нагрузки на систему, чтобы постепенно освобождать место в SQL-базе.
Если вам необходимо программно проверить, настроена ли интеграция и готов ли объект к приему файлов, можно использовать методы встроенной библиотеки интеграции. Рассмотрим пример обращения к программному интерфейсу:
// Проверка возможности использования ДО для хранения файлов
Если ИнтеграцияС1СДокументооборот.ИспользоватьИнтеграциюС1СДокументооборот() Тогда
ПараметрыОбъекта = ИнтеграцияС1СДокументооборот.ПараметрыСвязанногоОбъекта(СсылкаНаЗаказ);
Если ПараметрыОбъекта.ДокументСоздан Тогда
// Логика работы с файлами через БИД
КонецЕсли;
КонецЕсли;
В современных версиях БИД (Библиотека интеграции с документооборотом) большинство функций автоматизировано, и ручное написание запросов к веб-сервисам требуется крайне редко. Основная работа программиста здесь заключается в правильной настройке XDTO-пакетов и проверке стабильности работы HTTP-соединения.
Подводя итог, можно утверждать, что в связке ERP 2.5.11+ и Документооборот 3.0 задача внешнего хранения файлов решается штатными средствами. Основное внимание стоит уделить:
Использование этого функционала позволяет не только уменьшить размер базы ERP, но и обеспечить единое пространство для работы с контентом во всей информационной системе предприятия.