Интеграция систем электронного документооборота (ЭДО), в частности СБИС, с учетными системами уровня 1С:УПП — это комплексная задача, требующая учета специфики фоновых процессов, работы с электронной подписью (ЭЦП) и актуальности форматов документов. Рассмотрим основные подходы к решению этой задачи, опираясь на опыт автоматизации крупных бизнес-процессов.
Прежде чем приступать к разработке, проанализируем доступные варианты. Существует три основных пути интеграции:
Для высоконагруженных систем (десятки тысяч документов в месяц) рекомендуется выбор в пользу API. Это обеспечивает контролируемый процесс. Реализация интеграции через API, как показывает практика, занимает от 4 до 6 недель (включая тестирование и отладку), но в результате вы получаете стабильный процесс, где вмешательство пользователя сведено к минимуму.
Для того чтобы система работала без постоянного контроля со стороны бухгалтерии, интеграцию необходимо реализовать через РегламентныеЗадания. Основная сложность здесь заключается в автоматическом подписании документов.
Если вы используете РегламентныеЗадания на сервере 1С, помните о безопасности ключей ЭЦП. Необходимо использовать либо серверные версии сертификатов, либо специализированное ПО для работы с криптографией, которое корректно подхватывает сертификаты, установленные в системе. Использование готовых заготовок (библиотек) от провайдеров ЭДО значительно ускоряет этот этап.
Один из самых болезненных вопросов в ЭДО — это сопоставление номенклатуры поставщика с вашей собственной номенклатурой. Если эту задачу не решить системно, весь процесс ЭДО упрется в ручной труд.
Рассмотрим рабочие стратегии решения этой задачи:
РегистрСведений, в котором будут храниться пары «Номенклатура контрагента» и «Номенклатура 1С». Это позволит при получении первого документа от контрагента один раз настроить связь, которая будет использоваться в будущем автоматически.При реализации собственного решения через API важно не просто скачивать файлы, а выстраивать систему контроля статусов:
Во-первых, реализуйте подписку на события через вебхуки, если API это позволяет, чтобы не перегружать сервер частыми опросами. Во-вторых, обязательно предусмотрите логирование ошибок, чтобы в случае отказа контрагента от подписи или возникновения ошибки формата, ответственные сотрудники оперативно получали уведомления.
Примерная логика работы функции загрузки документа может выглядеть следующим образом:
// Пример логики обработки входящего пакета
Процедура ЗагрузитьВходящийДокумент(ДанныеФайла)
Попытка
ДокументОбъект = СоздатьДокументНаОснованииXML(ДанныеФайла);
Если СопоставитьНоменклатуру(ДокументОбъект) Тогда
ДокументОбъект.Записать();
Иначе
ЗафиксироватьОшибку("Не удалось сопоставить позиции");
КонецЕсли;
Исключение
ЗаписатьЛогОшибок(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
В завершение отметим: интеграция — это процесс, требующий глубокого понимания бизнес-процессов компании. Если вы работаете с УПП, внимательно изучите возможности текущей версии обработки от СБИС перед тем, как писать собственное решение с нуля. Вполне вероятно, что многие функции, такие как настройка соответствия в отдельной БД или хранение статусов, уже реализованы в актуальных версиях их коннекторов.