|   |   | 
| 
 | Добавить пользователей в группу | ☑ | ||
|---|---|---|---|---|
| 0
    
        ivl19 01.06.23✎ 10:40 | 
        Добрый день! Подскажите пожалуйста, в настоящее время требуется найти пользователей которые входят в определенную группу (справочник ГруппыПользователей - Администратор тестовой базы).
 После требуется данных пользователей добавить в другие группы "Открытие внешних обработок" и "Администратор", не совсем ясно как реализовать ( Бух 8.3 ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы"); ГруппаДоступаАдм = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администраторы").ПолучитьОбъект(); ГруппаДоступаОткрОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок").ПолучитьОбъект(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); Иначе Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл КонецЦикла; КонецЕсли; | |||
| 1
    
        mikecool 01.06.23✎ 11:03 | 
        вместо НайтиПоНаименованию используй ссылки на форме обработки     | |||
| 2
    
        ivl19 01.06.23✎ 12:32 | 
        Это хорошо, а как реализовать добавление в группуПользователей?     | |||
| 3
    
        АОЮБ 01.06.23✎ 13:00 | 
        Классно     | |||
| 4
    
        timurhv 01.06.23✎ 13:02 | ||||
| 5
    
        Волшебник 01.06.23✎ 13:18 | 
        (2) В цикле надо добавить запись в регистр     | |||
| 6
    
        ivl19 01.06.23✎ 15:42 | 
        "https://its.1c.ru/db/bsp317doc#content:1961:hdoc" ругается на найдены подключенные расширения конфигурации изменяющие роли конфигурации 1с и так на все процедуры которые нашел     | |||
| 7
    
        Мультук гуру 01.06.23✎ 15:45 | 
        (6) 
 Код. Показывай свой код. Кроме строчки из (4). Она и так очевидна УправлениеДоступом.ВключитьПрофильПользователю(Пользователь, Профиль); | |||
| 8
    
        ivl19 01.06.23✎ 15:49 | 
        Сейчас просто проверял :
 ПользовательТест = Справочники.Пользователи.НайтиПоНаименованию("1CTester"); ПрофильТест = Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Открытие внешних отчетов и обработок"); УправлениеДоступом.ВключитьПрофильПользователю(ПользовательТест, ПрофильТест); УправлениеДоступомСлужебный.ВключитьПользователяВГруппуДоступа(ПользовательТест, ПрофильТест); выходит данное сообщение. Видимо вариант только добавить запись в рс СоставыГруппПользователей | |||
| 9
    
        ivl19 01.06.23✎ 15:50 | 
        если это верно, подскажите как правильно добавить запись пожалуйста     | |||
| 10
    
        ivl19 01.06.23✎ 16:49 | 
        ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы");   
 ГруппаДоступаАдм = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); Иначе Выборка = РезультатЗапроса.Выбрать(); ПользовательТест = Справочники.Пользователи.НайтиПоНаименованию("1CTester"); Пока Выборка.Следующий() Цикл ПользователиГрупп = Выборка.Пользователь.ПолучитьОбъект(); НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ГруппаПользователей.Установить(ГруппаДоступаАдм); НаборЗаписей.Отбор.Пользователь.Установить(ПользовательТест); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись. ГруппаПользователей = ГруппаДоступаАдм; НоваяЗапись.Пользователь = ПользовательТест; НаборЗаписей.Записать(); Сообщить(ПользователиГрупп); КонецЦикла; КонецЕсли; | |||
| 11
    
        Волшебник 01.06.23✎ 16:50 | 
        (9) Используйте НаборЗаписей или МенеджерЗаписи     | |||
| 12
    
        ivl19 01.06.23✎ 16:50 | 
        при такой записи запись в РС создается, но доп права не назначаются     | |||
| 13
    
        Волшебник 01.06.23✎ 16:50 | 
        (10) Не теряйте "лесенку" программы     | |||
| 14
    
        Волшебник 01.06.23✎ 16:51 | 
        (12) Назначьте доп. права и перезапустите сеанс     | |||
| 15
    
        ivl19 01.06.23✎ 16:57 | 
        ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы");   
 ГруппаДоступаАдм = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); Иначе Выборка = РезультатЗапроса.Выбрать(); ПользовательТест = Справочники.Пользователи.НайтиПоНаименованию("1CTester"); Пока Выборка.Следующий() Цикл ПользователиГрупп = Выборка.Пользователь.ПолучитьОбъект(); НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ГруппаПользователей.Установить(ГруппаДоступаАдм); НаборЗаписей.Отбор.Пользователь.Установить(ПользовательТест); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись. ГруппаПользователей = ГруппаДоступаАдм; НоваяЗапись.Пользователь = ПользовательТест; НоваяЗапись.Используется = Истина; НаборЗаписей.Записать(); Сообщить(ПользователиГрупп); КонецЦикла; КонецЕсли; Запустил, запись в РС создалась корректно, но пользователь не добавлен в группу доступа "Открытие внешних обработок" | |||
| 16
    
        Волшебник 01.06.23✎ 17:39 | 
        (15) Верните программе "лесенку".
 И это плохое название переменной: ГруппаДоступаАдм = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); | |||
| 17
    
        Волшебник 01.06.23✎ 17:40 | 
        В Вашем случае лучше пользоваться МенеджерЗаписи, чтобы не уничтожить регистр сведений.     | |||
| 18
    
        ivl19 01.06.23✎ 17:50 | 
        ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы");   
 ГруппаДоступаОткрытиеОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); Иначе Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл ПользователиГрупп = Выборка.Пользователь; МенеджерЗаписейПользователи = РегистрыСведений.СоставыГруппПользователей; МенеджерЗаписи = МенеджерЗаписейПользователи.СоздатьМенеджерЗаписи(); МенеджерЗаписи.ГруппаПользователей = ГруппаДоступаОткрытиеОбработок; МенеджерЗаписи.Пользователь = ПользователиГрупп; МенеджерЗаписи.Используется = Истина; МенеджерЗаписи.Записать(); КонецЦикла; КонецЕсли; | |||
| 19
    
        ivl19 01.06.23✎ 17:50 | 
        так верно?     | |||
| 20
    
        ivl19 01.06.23✎ 17:51 | 
        записи в РС создаются корректно, но проблема осталась, права у пользователей не расширились( 
 пользователи не добавились в группу доступа "Открытие внешних обработок" | |||
| 21
    
        Волшебник 01.06.23✎ 17:56 | 
        Право открытия внешних отчётов и обработок регулируется ролью на уровне Конфигуратора, а не на уровне регистра сведений.
 Освойте работу с объектом ПользовательИнформационнойБазы | |||
| 22
    
        ivl19 01.06.23✎ 18:00 | 
        Задача вообще состоит в том, что необходимо отобрать сотрудников в группе пользователей "Администратор тестовой базы" и добавить им группы доступа "Администратор", "Открытие внешних отчетов и обработок"     | |||
| 23
    
        ivl19 01.06.23✎ 18:02 | 
        Данный вариант не подходит https://its.1c.ru/db/bsp317doc#content:1961:hdoc, данная процедура УстановитьПравоОткрытияВнешнихОтчетовИОбработок тоже и не ясно как это ещё можно реализовать     | |||
| 24
    
        ivl19 02.06.23✎ 09:11 | 
        Подскажите есть ещё варианты?(     | |||
| 25
    
        Волшебник 02.06.23✎ 10:04 | 
        (24) Вы плохо стараетесь. Вам же сказали: "добавить группы доступа". Ну так добавьте! Найдите, где они хранятся и добавьте. Может всё-таки в регистре СоставыГруппПользователей? Да ну, не может быть...     | |||
| 26
    
        Мультук гуру 02.06.23✎ 10:09 | 
        (25) 
 Ошибка: "найдены подключенные расширения конфигурации изменяющие роли конфигурации 1с" По РС "Права ролей" подскажите Короче, какая-то вселенская печаль. | |||
| 27
    
        ivl19 02.06.23✎ 10:43 | 
        ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы");   
 ГруппаДоступаОткрытиеОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); ГруппаДоступаАдминистратор = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администраторы"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); Иначе Выборка = РезультатЗапроса.Выбрать(); ЭлементОбъект = ГруппаДоступаОткрытиеОбработок.ПолучитьОбъект(); Пока Выборка.Следующий() Цикл ПользователиГрупп = Выборка.Пользователь; НоваяСтрока = ЭлементОбъект.Состав.Добавить(); НоваяСтрока.Пользователь = ПользователиГрупп; ЭлементОбъект.Записать(); КонецЦикла; КонецЕсли; | |||
| 28
    
        ivl19 02.06.23✎ 10:45 | 
        Просьба пожалуйста подсказать, в настоящее время пользователи добавляются в нужную группу:
 1) Как сделать проверку на наличие подобной записи, чтобы записи не дублировались? 2) как таким же образом добавить данных пользователей ещё в одну группу, чтобы сразу пользователи добавлялись в 2 группы? | |||
| 29
    
        Волшебник 02.06.23✎ 10:45 | 
        (27) лишняя переменная ПользователиГрупп
         НоваяСтрока = ЭлементОбъект.Состав.Добавить();
        НоваяСтрока.Пользователь = Выборка.Пользователь;
        ЭлементОбъект.Записать(); | |||
| 30
    
        Волшебник 02.06.23✎ 10:46 | 
        (28) 
 1) Используйте метод НайтиСтроки 2) по аналогии | |||
| 31
    
        ivl19 02.06.23✎ 13:03 | 
        ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы");   
 ГруппаДоступаОткрытиеОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); ГруппаДоступаАдминистратор = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администраторы"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); Иначе Выборка = РезультатЗапроса.Выбрать(); ЭлементОбъект = ГруппаДоступаОткрытиеОбработок.ПолучитьОбъект(); ЭлементОбъектАдминистратор = ГруппаДоступаАдминистратор.ПолучитьОбъект(); тз = Новый ТаблицаЗначений; тз.Колонки.Добавить("Группы"); НоваяСтрока = тз.Добавить(); НоваяСтрока.Группы = ГруппаДоступаОткрытиеОбработок; НоваяСтрока = тз.Добавить(); НоваяСтрока.Группы = ГруппаДоступаАдминистратор; ПараметрыПоиска = Новый Структура; ПараметрыПоиска.Вставить("Группы",ГруппаДоступаОткрытиеОбработок); ПараметрыПоиска.Вставить("Группы",ГруппаДоступаАдминистратор); МассивСтрок = ТЗ.НайтиСтроки(ПараметрыПоиска); Для Каждого ЭлементаСтрок Из МассивСтрок Цикл Пока Выборка.Следующий() Цикл НоваяСтрока = ЭлементОбъект.Состав.Добавить(); НоваяСтрока.Пользователь = Выборка.Пользователь; ЭлементОбъект.Записать(); КонецЦикла; КонецЦикла; КонецЕсли; 1) GПодскажите пожалуйста в МассивСтрок записывается только одна строка, хотя 2 отбора указано. По отдельности записывает и тот и тот, как сделать чтобы две строки записалось? 2) Как правильно указать ЭлементаСтрок в Пока Выборка.Следующий() Цикл чтобы добавляли в обе группы? | |||
| 32
    
        Мультук гуру 02.06.23✎ 13:28 | 
        (31) 
 Если в "состав" нет данного пользователя -- добавляем. Можно искать с помощью НайтиСтроки. Если ГруппаДоступаОткрытиеОбработок.Состав.Найти(Выборка.Пользователь, "Пользователь") = Неопределено Тогда НоваяСтрока = ЭлементОбъект.Состав.Добавить(); НоваяСтрока.Пользователь = Выборка.Пользователь; ЭлементОбъект.Записать(); КонецЕсли; P.S. То что вы написали про "НайтиСтроки", это даже не бред, высасывание из пальца. https://helpf.pro/faq/view/954.html Там много "устаревшего" кода, но есть и вполне себе. | |||
| 33
    
        ivl19 02.06.23✎ 15:15 | 
        Вообщем вот что получилось, подскажите насколько корректно пожалуйста? при проверке, пользователи которые находятся в группе Администратор тестовой базы, при запуске кода добавляются в группы "Открытие внешних обработок" и "Администраторы". Если такой пользователь в группе есть повторно не добавляется.
 ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы"); ГруппаДоступаОткрытиеОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок").ПолучитьОбъект(); ГруппаДоступаАдминистратор = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администраторы").ПолучитьОбъект(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); ТЗ = Новый ТаблицаЗначений; ТЗ.колонки.Добавить("Группы"); НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Группы = ГруппаДоступаОткрытиеОбработок; НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Группы = ГруппаДоступаАдминистратор; Пока Выборка.Следующий() Цикл Если ГруппаДоступаОткрытиеОбработок.Состав.Найти(Выборка.Пользователь, "Пользователь") = Неопределено Тогда Для каждого СтрокаТЗ Из ТЗ Цикл ГруппыДоступа = СтрокаТЗ.Группы; НоваяСтрока = ГруппыДоступа.Состав.Добавить(); НоваяСтрока.Пользователь = Выборка.Пользователь; ГруппыДоступа.Записать(); КонецЦикла; КонецЕсли; КонецЦикла; Иначе Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Результат пустой"; Сообщение.Сообщить(); КонецЕсли; | |||
| 34
    
        ivl19 02.06.23✎ 16:31 | 
        ГруппаДоступа = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы");  
 ГруппаДоступаОткрытиеОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок").ПолучитьОбъект(); ГруппаДоступаАдминистратор = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администраторы").ПолучитьОбъект(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступа); РезультатЗапроса = Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); ТЗ = Новый ТаблицаЗначений; ТЗ.колонки.Добавить("Группы"); НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Группы = ГруппаДоступаОткрытиеОбработок; НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Группы = ГруппаДоступаАдминистратор; Пока Выборка.Следующий() Цикл Для каждого СтрокаТЗ Из ТЗ Цикл ГруппыДоступа = СтрокаТЗ.Группы; Если ГруппыДоступа.Состав.Найти(Выборка.Пользователь, "Пользователь") = Неопределено Тогда НоваяСтрока = ГруппыДоступа.Состав.Добавить(); НоваяСтрока.Пользователь = Выборка.Пользователь; ГруппыДоступа.Записать(); КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; | |||
| 35
    
        ivl19 06.06.23✎ 11:04 | 
        Подскажите пожалуйста в итоге перебрал не много код, и теперь вопрос как в процедуре ДобавитьПользователяВГруппуДоступа добавить пользователей в данные группы?
 Процедура ДобавитьПользователяВГруппуДоступа(груп,польз) КонецПроцедуры Процедура ДобавитьПользователяВГруппуПользователей(группаДоступа, пользователи) группаДоступаОбъект = группаДоступа.ПолучитьОбъект(); группаДоступаОбъект.Пользователи.Загрузить(пользователи); группаДоступаОбъект.Записать(); КонецПроцедуры ГруппаДоступаАдминистраторТБ = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администратор тестовой базы"); ГруппаДоступаОткрытиеОбработок = Справочники.ГруппыПользователей.НайтиПоНаименованию("Открытие внешних обработок"); ГруппаДоступаАдминистратор = Справочники.ГруппыПользователей.НайтиПоНаименованию("Администраторы"); Администратрор = Справочники.ГруппыДоступа.НайтиПоНаименованию("Администраторы"); списокГруппПользователей = Новый СписокЗначений; списокГруппПользователей.Добавить(ГруппаДоступаАдминистраторТБ); списокГруппПользователей.Добавить(ГруппаДоступаОткрытиеОбработок); списокГруппПользователей.Добавить(ГруппаДоступаАдминистратор); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставыГруппПользователей.Пользователь КАК Пользователь |ИЗ | РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей |ГДЕ | СоставыГруппПользователей.ГруппаПользователей = &ГруппаПользователей"; Запрос.УстановитьПараметр("ГруппаПользователей",ГруппаДоступаАдминистраторТБ); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); ДобавитьПользователяВГруппуПользователей(Администратрор, РезультатЗапроса); Для каждого группа Из списокГруппПользователей Цикл ДобавитьПользователяВГруппуДоступа(группа, РезультатЗапроса); КонецЦикла; | |||
| 36
    
        Волшебник 06.06.23✎ 11:09 | 
        (35) У Вас программный код снаружи процедуры     | |||
| 37
    
        Волшебник 06.06.23✎ 11:09 | 
        а процедура ДобавитьПользователяВГруппуДоступа вообще пустая     | |||
| 38
    
        ivl19 06.06.23✎ 11:11 | 
        Вот тут ДобавитьПользователяВГруппуДоступа  и вопрос как в данной процедуре добавить пользователей в группы     | |||
| 39
    
        Волшебник 06.06.23✎ 11:56 | 
        (38) Что Вы под этим подразумеваете?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |