При внедрении бесшовной интеграции между 1С:ERP Управление предприятием и 1С:Документооборот (1С:ДО) администраторы часто сталкиваются со следующей проблемой. Механизмы интеграции (БИД — Библиотека интеграции с документооборотом) по умолчанию встроены во множество типовых ролей и профилей групп доступа, таких как Бухгалтер, Кадровик или Менеджер по продажам. Как результат, роли Базовые права БИД и Использование интеграции с 1С:Документооборот назначаются практически всем пользователям системы.
Это приводит к неприятным последствиям. Пользователи, которым в силу своих обязанностей вообще не требуется работать в 1С:ДО, регулярно получают раздражающие запросы на ввод логина и пароля, а сама система тратит время на попытки связаться с веб-сервисом при запуске программы. Выясним причину этого поведения и подробно разберем несколько эффективных способов решения этой проблемы: от стандартного администрирования до использования расширений и оптимизации веб-сервера.
Прежде чем отключать интеграцию, разберем по шагам, почему система вообще пытается инициировать соединение с веб-сервисом 1С:ДО для тех пользователей, которые в нем не работают. Многие разработчики полагают, что ERP обращается к интеграции только при непосредственном открытии связанных документов. На практике это не так. Основным виновником фоновой активности является виджет начальной страницы Документооборот: Задачи мне.
Когда у пользователя настроен рабочий стол по умолчанию, система при каждом запуске ERP пытается обновить список задач, отправляя запрос к веб-сервису DMService. Если у пользователя нет учетной записи в 1С:ДО, или для него не настроена сквозная авторизация, это вызывает зависание интерфейса при старте и появление модальных окон авторизации.
Проанализируем доступные методы исправления этой ситуации, разделив их на административные, инфраструктурные и программные решения.
Самый простой административный шаг, позволяющий исключить запросы к веб-сервису при запуске системы, — это централизованное отключение виджета Задачи мне на рабочем столе пользователей.
Документооборот: Задачи мне из списка отображаемых на рабочем столе.Если этот виджет скрыт, и пользователь не заходит во вкладки интеграции внутри документов, ERP не будет инициировать соединение с веб-сервисом БИД без явной необходимости.
Рассмотрим стандартный путь разделения прав на уровне профилей безопасности. Данный способ не требует программирования, однако он достаточно трудоемок в базах с большим количеством пользователей.
Базовые права БИД и Использование интеграции с 1С Документооборот.Бухгалтер (без ДО)).Важный минус данного подхода: при обновлении конфигурации 1С:ERP на новые релизы вам придется вручную отслеживать изменения в правах скопированных профилей, что существенно усложняет поддержку системы. Чтобы упростить процесс технического обслуживания баз и сократить время на установку обновлений, можно задействовать программу для автоматического тестирования и обновления 1С.
Чтобы избежать дублирования десятков типовых профилей групп доступа и сохранить базу на поддержке, применим механизм расширений. Мы можем перехватить вызов функций интеграции программно и принудительно возвращать Ложь при проверке доступности 1С:ДО для определенного списка пользователей.
Рассмотрим подробнее реализацию этого метода. Создадим расширение и добавим в него переопределяемый модуль ИнтеграцияС1СДокументооборотПереопределяемый. Нам необходимо перехватить функцию ИспользоватьИнтеграциюС1СДокументооборот.
Для управления списком пользователей, которым отключен документооборот, мы можем создать простую группу пользователей в справочнике ГруппыПользователей с именем Пользователи без интеграции ДО. Посмотрим на пример кода, который мы поместим в расширение:
&Вместо("ИспользоватьИнтеграциюС1СДокументооборот")
Функция ИМЯ_ИспользоватьИнтеграциюС1СДокументооборот()
// Сначала проверяем стандартное значение функциональной опции
СтандартноеЗначение = ПродолжитьВызов();
Если Не СтандартноеЗначение Тогда
Возврат Ложь;
КонецЕсли;
// Проверим, входит ли текущий пользователь в группу исключения
ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
ГруппаИсключения = Справочники.ГруппыПользователей.НайтиПоНаименованию("Пользователи без интеграции ДО");
Если ЗначениеЗаполнено(ГруппаИсключения) Тогда
// Проверяем состав группы пользователей
Если ГруппаИсключения.Состав.Найти(ТекущийПользователь, "Пользователь") <> Неопределено Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции
При использовании такого расширения для всех пользователей, добавленных в группу Пользователи без интеграции ДО, система будет вести себя так, будто бесшовная интеграция в программе глобально отключена. Все вкладки, кнопки и виджеты, связанные с 1С:ДО, полностью исчезнут из интерфейса этих пользователей, и ERP физически прекратит отправку любых HTTP-запросов к веб-сервису.
Если вам не хочется полностью лишать пользователей возможности изредка обращаться к документам интеграции, но вы хотите избавиться от постоянных запросов логина и пароля, отличным решением станет настройка сквозной доменной авторизации (SSO).
DMService базы 1С:Документооборот, включим Windows-аутентификацию (или Kerberos/Ntlm в зависимости от операционной системы).Пользователь ОС, указав их доменные имена вида DOMAIN\User.После этой настройки интеграция БИД начнет авторизовать пользователей в фоновом режиме по их доменным учетным записям. Если у пользователя нет учетной записи в 1С:ДО — запрос к веб-сервису будет тихо отклонен сервером авторизации без вывода раздражающих диалоговых окон ввода пароля на стороне клиента.
Проанализируем еще один встроенный механизм оптимизации — ограничение условий применимости правил интеграции.
Если интеграция настроена для всех подряд документов (например, для всех заказов клиентов или договоров), ERP пытается инициализировать БИД при открытии любого такого объекта. Чтобы сузить этот круг, зайдем под администратором в Настройки интеграции с 1С:Документооборот и для каждого правила настроим Условия применимости. Например, можно ограничить запуск интеграции только для определенных организаций, видов документов или подразделений. Для пользователей, которые работают с другими объектами, интеграция активироваться не будет.