Добрый день.
Подскажите как программно добавить пользователя в рабочею группу Внутреннего документа.
В регистр сведению РабочаяГруппа добавляю при открытии документа вижу что пользователь появился но у данного пользователя нет прав на просмотр документа.
Где еще нужно прописать пользователя, чтобы у него права на просмотр появились ?
---
У меня в дополнительном обработчике бизнес-события сделано так:

```1c
    Секретариат = Справочники.ГруппыПользователей.НайтиПоНаименованию("Секретариат");
    // проверим, есть ли уже группа пользователей "Секретариат" в рабочей группе документа
    ТаблицаУчастников = РаботаСРабочимиГруппами.ПолучитьРабочуюГруппуДокумента(Документ);
    НайденнаяСтрока = ТаблицаУчастников.Найти(Секретариат, "Участник");
    Если НайденнаяСтрока = Неопределено Тогда // не нашли
    ТаблицаНабора = РаботаСРабочимиГруппами.ПолучитьПустуюТаблицуУчастников();
    РаботаСРабочимиГруппами.ДобавитьУчастникаВТаблицуНабора(ТаблицаНабора, Секретариат);
    РаботаСРабочимиГруппами.ДобавитьУчастниковВРабочуюГруппуОбъекта(Документ, ТаблицаНабора);
    КонецЕсли;
```

Также посмотрите как у Вас происходит расчет прав :отложенное обновление или нет. Если отложенное, то работают ли регламентные задания: Обновление прав (долгое) и Обновление прав (оперативное).
---
У меня в дополнительном обработчике бизнес-события сделано так:

```1c
    Секретариат = Справочники.ГруппыПользователей.НайтиПоНаименованию("Секретариат");
    // проверим, есть ли уже группа пользователей "Секретариат" в рабочей группе документа
    ТаблицаУчастников = РаботаСРабочимиГруппами.ПолучитьРабочуюГруппуДокумента(Документ);
    НайденнаяСтрока = ТаблицаУчастников.Найти(Секретариат, "Участник");
    Если НайденнаяСтрока = Неопределено Тогда // не нашли
    ТаблицаНабора = РаботаСРабочимиГруппами.ПолучитьПустуюТаблицуУчастников();
    РаботаСРабочимиГруппами.ДобавитьУчастникаВТаблицуНабора(ТаблицаНабора, Секретариат);
    РаботаСРабочимиГруппами.ДобавитьУчастниковВРабочуюГруппуОбъекта(Документ, ТаблицаНабора);
    КонецЕсли;
```

Также посмотрите как у Вас происходит расчет прав :отложенное обновление или нет. Если отложенное, то работают ли регламентные задания: Обновление прав (долгое) и Обновление прав (оперативное).
---
Скажите, если не секрет, а какова цель программы? может есть более надежные варианты?
---
Из обработчика события "ПередЗаписью" справочника ВнутренниеДокументы... :)

```1c
    // Добавление участников, переданных "снаружи", например из формы объекта
    Если ДополнительныеСвойства.Свойство("РабочаяГруппаДобавить") Тогда

    Для Каждого Эл Из ДополнительныеСвойства.РабочаяГруппаДобавить Цикл

    // Добавление участника в итоговую рабочую группу
    Строка = РабочаяГруппа.Добавить();
    Строка.Участник = Эл.Участник;
    Строка.Изменение = Эл.Изменение;

    КонецЦикла;

    КонецЕсли;
```
---
так после записи документа смотрел ДополнительныеСвойства у документа пустое !
---
// Добавление участников, переданных "снаружи", например из формы объекта

так-с. читать не умеем. ликбез: У типа СправочникОбъект есть реквизит, которого нет у типа СправочникСсылка - ДополнительныеСвойства. Это структура со свободным составом. Этот реквизит часто используется для передачи в обработчики записи дополнительной информации.

Совсем для чайников - добавление документу, допустим сДокумент, текущего пользователя в РГ с правом изменения:

```1c
    оДокумент = сДокумент.ПолучитьОбъект();
    оДокумент.ДополнительныеСвойства.Вставить("РабочаяГруппаДобавить", Новый Структура("Участник,Изменение", ТекущийПользователь(), Истина));
    оДокумент.Записать();
```
---
немного поменялась логика. Теперь массив туда передается. итого:

оДокумент = сДокумент.ПолучитьОбъект();
Масс = Новый массив;
масс.добавить(Новый Структура("Участник,Изменение", ТекущийПользователь(), Истина));
оДокумент.ДополнительныеСвойства.Вставить("РабочаяГруппаДобавить", Масс);
оДокумент.Записать();