После настройки, описанной в //infostart.ru/1c/articles/1451386/ кроме последнего пункта 4) Первый вход после перезапуска должен быть выполнен под системной учетной записью 1С.
Это всего лишь проверка, что доступ настроен правильно.
И проверить настройки доступа на опубликованной базе 1С:ДО
Так как 1С:ERP агент сервера 1с запущен у меня под доменной учеткой 1cservise, значит, и авторизацию на 1С:ДО должен проходить как доменный пользователь \\мойдомен\1cservise с правами Администратора. Так как это пользователь для обмена, на нем нет и задач на согласование, и прочих сообщений. Проверить интеграцию можно, создав-таки задачи, указав в качестве исполнителя пользователя 1cservise в 1С:ДО.
Еще по желанию сделали настройку начальной страницы в 1С:ERP.
Это все работает из коробки. Хотя подскажите, почему пользователя не передают из коробки? Изменим эту ситуацию.
Далее в конфигураторе ЕРП добавляем в
Содержание бит_п_СерверПовтИсп.ПолучитьИмяПользователя(
Функция ПолучитьИмяПользователя(Пользователь) Экспорт
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь, "Наименование");
КонецФункции
После этого 1С:ДО будет ругаться на неизвестный параметр "byUserName".
В конфигураторе 1С:ДО изменить процедуру ОбработкаЗапросовXDTOБизнесПроцессыИЗадачи.ПолучитьСписокЗадач(....
Содержание процедуры СерверПовтИсп.ПолучитьПользователяПоРеквизиту(Условие_byUserName.value)
Функция ПолучитьПользователяПоРеквизиту(Значение, ИмяРек = "Наименование") Экспорт
ЗапросТекст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Пользователи.Ссылка КАК Ссылка
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Наименование = &Значение
| И НЕ Пользователи.ПометкаУдаления";
ЗапросТекст = СтрЗаменить(ЗапросТекст, "Наименование", ИмяРек);
Запрос = Новый Запрос(ЗапросТекст);
Запрос.УстановитьПараметр("Значение", Значение);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Возврат ?(ВыборкаДетальныеЗаписи.Следующий(), ВыборкаДетальныеЗаписи.Ссылка, Неопределено);
КонецФункции
На этом финиш. Сохранить/обновить и пользоваться.
Для отладки в 1С:ДО в расширении закомментировал/удалил строку.
! внимательней с этими тэгами #Вставка #КонецВставки #КонецУдаления любой пробел может вызвать отказ подключения расширения на платформе 1С:Предприятие 8.3 (8.3.20.1549).
Использованы
- Документооборот 8 КОРП, редакция 2.1 (2.1.29.18) далее по тексту 1сДО
- 1С:ERP. Управление холдингом (3.1.7.4) далее по тексту 1сЕРП
История/план внедрения на заводе.
исходные: пользователей 1700 работают 1.5 года согласуют 2-3 вида документов, синхронизации пользователей нет, заводят руками в обеих базах, авторизация по паролю.
1) Удалил дубли ФизЛиц в обоих базах. (стандартной Обработка.ПоискИУдалениеДублей)
2) Удалил дубли Пользователей. (стандартной Обработка.ПоискИУдалениеДублей)
3) Заменил ГУИДЫ пользователей в 1сДО
3.1 в 1сЕРП выгрузить ПользователиГУИДы.epf скопировать текст
3.1 в 1сДО вставить текст ПользователиГУИДы.epf загрузить
получились дубли пользователей с равными ГУИД между базами и у них ноль документов в основном (оказалось, что есть уже равные ГУИДЫ видимо когда-то синхронизация работала).
Добавил кнопку "Всем Выбрать Основной элемент" ПоискИУдалениеДублей_УстановитьНовые.epf
Если элемент не действующий или помечен на удаление, он не будет основным, но если на нем ноль объектов то будет.
Убедиться можно, скопировав ссылку элемента пользователя и попытаться открыть ее в обоих базах. Если не открылась метим ее на удаление в 1сДО.
Далее как обычно. Удалил дубли Пользователей.
4) Настроил синхронизацию. Необходимо только копировать пользователей из 1сЕРП в 1сДО в одну сторону.
Переписал правила для обеих баз. 1сДО ничего не отдает, а 1сЕРП только Пользователей, ФизЛиц, Подразделения.
ПравилаРегистрации ДО для ЕРП ОтказВсео.xml для 1сДО
Правила регистрации ЕРП для ДО_ТолькоПользователи.xml для 1сЕРП
! Для прямого доступа к 1сДо требуется руками заполнить пароль и логин. У нас тонким клиентом только админы пользуются.
Также запретил руками создавать пользователей в 1сДО
&Перед("ПередЗаписью")
Процедура иаОС_ПередЗаписью(Отказ)
//Справочники.Пользователи.НайтиПоНаименованию("Уведомления 1С").УникальныйИдентификатор() = Новый УникальныйИдентификатор("b3f1b75b-2ac7-11ed-aba5-00505688e13d")
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
Если Ссылка.Пустая() И
НЕ Пользователи.ТекущийПользователь().УникальныйИдентификатор() = Новый УникальныйИдентификатор("b3f1b75b-2ac7-11ed-aba5-00505688e13d")
И НЕ ДополнительныеСвойства.Свойство("ОтключитьМеханизмБесовнойИнтерацииПоГУИДАМ") Тогда
ОбщегоНазначения.СообщитьПользователю(СтрШаблон("Новых Пользователей разрешено создавать только в ERP! ТекПользователь= %1",Пользователи.ТекущийПользователь()),,,,Отказ);
КонецЕсли;
КонецПроцедуры
"Уведомления 1С" пользователь под которой работает сервер/фоновые задачи. Только с его ГУИД можно создавать пользователей.
5) несколько кругов и тестов с синхронизаций и удаление новых дублей пользователей.
6) устанавливаю расширения
7) включил авторизацию ОС
8) пользователям необходимо перезапустить 1сЕРП и удалить логин с паролем.
Финиш.
Итого. Пользователей заводят в одном месте и у них одинаковый ГУИД, что позволяет избавится от запросов поиска по наименованию. Аутентификация ОС работает.
Минус. Если у пользователя настроен прямой доступ в 1сДО. Указана Аутентификация операционной системы
и он умеет писать WEB запросы, то можно согласовать документы за любого пользователя.
Новости от 01.12.2022
Обновили до 1С:ERP Управление холдингом (3.1.9.1) изменились названия модулей добавил в архив новое расширение ИнтеграцияАвторизОС_БП (1СERP Управление холдингом (3.1.9.1)) в3.cfe.
Обнаружил, что РЛС не отрабатывает в бесшовной интеграции хотя ПараметрыСеанса.ТекущийПользователь установлен с ограниченными правам, а в тонком клиенте все ок. исправил..
Процедура ДобавитьУсловияИзРЛС(Запрос, ЗапросТекст)
Попытка
ТекущийПараметрСеанса = ПараметрыСеанса.ПараметрыСеансаСинхронизацииДанных.Получить();
byUserAktivGUID = ТекущийПараметрСеанса.Получить("byUserAktivGUID");
Если byUserAktivGUID = Неопределено Тогда
Возврат;
КонецЕсли;
Исключение
Возврат;
КонецПопытки;
// РЛС должен взять параметры из ПараметрыСеанса.ТекущийПользователь, но не в моей платформе...
// поэтому добавляю условия из Роли. ЧтениеШаблоновПроцессов
Запрос.УстановитьПараметр("ТекущийПользователь", byUserAktivGUID);
мЗапросТекст = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрЗаменить(ЗапросТекст, "ПодходящиеНастройки", "ПодходящиеНастройкиИсх"));
мЗапросТекст.Добавить("
|
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТекущаяТаблица.Объект,
| ТекущаяТаблица.ПоОрганизации,
| ТекущаяТаблица.Шаблон,
| ТекущаяТаблица.Условие
|ПОМЕСТИТЬ ПодходящиеНастройки
|ИЗ
| ПодходящиеНастройкиИсх КАК ТекущаяТаблица");
мЗапросТекст.Добавить(ПолучитьУсловияРЛС_ЧтениеШаблоновПроцессов());
ЗапросТекст = СтрСоединить(мЗапросТекст,"");
КонецПроцедуры