8.х Права пользователя 1С8, КА

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем djyarilo, 19 апр 2011.

  1. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Следущая стоит задача:
    1) создать на документе галочки : одобрено администрацией, одобрено бухгалтерией - Сделал;
    2) Создать права у пользователя: Разрешить изменение администрации, разрешить изменение бухгалтерии. - сделал такие права.
    3) При открытии документа, документ смотрит права пользователей, если у пользователя не прав на то чтобы ставить эти галочки на документе, значит доступность у пользователя = 0. - не сделал.
    Вопрос заключается в следующем Как вытащить значение, ну стоит у него разрешение или нет?

    Начал делать узнал такое:

    Код:
    ЗапрашиватьПотверждение = глЗначениеПеременной("глЗапрашиватьПодтверждениеПриЗакрытии") <> Ложь и УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ЗапрашиватьПодтверждениеПриЗакрытии") = Истина;
    
    Если ЗапрашиватьПотверждение Тогда
    Ответ = Вопрос("Завершить работу с программой?", РежимДиалогаВопрос.ДаНет);
    Отказ = (Ответ = КодВозвратаДиалога.Нет);
    КонецЕсли;
    
    Если НЕ Отказ Тогда
    
    // отдельно получаем настройки для которых нужно выполнить обмен при выходе из программы
    ПроцедурыОбменаДанными.ВыполнитьОбменПриЗавершенииРаботыПрограммы(глЗначениеПеременной("глОбработкаАвтоОбменДанными"));
    
    КонецЕсли;
    
    Код проверяет в правах есть ли право при закрытии документа спрашивать?
    И не пойму от куда берется глЗапрашиватьПодтверждениеПриЗакрытии??? не где в модулях найти не могу!!! Кто может помоч, как узнать имеет он право либо нет?
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1) Есть подозрения, что вы некорректно реализовали ваш п.1.
    2) Тот кусок кода, что вы привели - запрашивает настройки пользователя, а вам нужны его права. Думаю вам поможет функция: УправлениеДопПравамиПользователей.ПолучитьЗначениеПраваПользователя(...);
  3. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Мне надо получить настройки пользователя. ((( ВОТ
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Хммм... То-ли я не понимаю задачу, то-ли...

    Не путайте настройки пользователя и права пользователя.
    Разрешить изменение администрации, разрешить изменение бухгалтерии - это права или настройки? Разница огромная. Если это настройки - тогда любой пользователь, зайдя к себе в настройки, может поставить себе галочки (т.е. разрешить изменение администрации и бухгалтерии). Это так и задумано, что каждый пользователь сам себе администрация или бухгалтер? Или все-таки - это должно раздаваться на административном уровне (кому и что разрешить делать)?
  5. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Это настройка!! Не права. А настройка))) И мне надо получить значение этой настройки в документе!!! Вот. Типо если


    Пользователь.НастройкаРазрешитьИзменениеАдминистрации = истина тогда документ.поле.доступность. Вот мне надо узнать настройку.
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Тогда мне непонятно это:
    Ну хорошо не поставлена у меня галочка в настройке, нет у меня прав этой настройки. Открываю документ - вышеуказанные поля недоступны. Ок. Открываю сам свои настройки, ставлю себе галочку, открываю снова документ и оп-па, ваши поля теперь разрешены мне для редактирования. В чем смысл?
  7. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    В правах задано что только определенные пользователи могут изменять эти настройки. А мне короче нужно узнать настройки пользователя этого
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Мда.


    Как настройку создали?
  9. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Настройку создал путем её добавление в справочник настройки!!

    А справочник Настройки созданы Не мной А разработчиками 1с D :angry: , конфигурация Комплексная автоматизация!! вот
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Точно в справочник или в ПланВидовХарактеристик? В конфигураторе предопределенная или в пользовательском режиме?


    Да, я знаю.. :D
  11. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Код:
    ЗапросПользователя = глЗначениеПеременной("глТекущийПользователь");
    //сообщить(ЗапросПользователя.настройки);
    РегСв = РегистрыСведений.НастройкиПользователей.Выбрать();
    Пока регсв.Следующий() цикл
    если   ЗапросПользователя = РегСв.Пользователь	тогда
    
    Если РегСв.Настройка.Наименование = "Разрешение на одобрение бухгалтерией"  тогда 
    
    если регсв.Значение = <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/истина')">Истина	</span> <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">тогда					</span> 
    
    Сообщить(" настройка " + РегСв.Настройка + " значение " + регсв.Значение);
    конецесли;
    конецесли;
    
    конецесли;
    конеццикла;
    
    усе ззыыыы


    [warn=Внимание!]
    Используем тэги при оформлении сообщения.
    [/warn]
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1)
    Код:
    Настройка = ПланыВидовХарактеристик.НастройкиПользователей.НайтиПоНаименованию("Разрешение на одобрение бухгалтерией");
    ЗначениеНастройки = УправлениеПользователями.ПолучитьЗначениеПоУмолчаниюПользователя(глЗначениеПеременной("глТекущийПользователь"), Настройка);
    Сообщить("" + ЗначениеНастройки);
    
    
    2)
    В документе "одобрено администрацией" и "одобрено бухгалтерией" - сделаны реквизитами документа?
  13. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Да реквизатами!! Но я доступность делал формы!)))) Все работает) )))

    ТО есть на форме было Одобрено администрацией и тип булево ну да либо нет))
    просто я так и не понял как с глобальника эти настройки вытащить, решил пойти простым путем. цикл по справочнику где хранятся настройки пользователя и проверять в нем данные на факт отметки))) Как узнал в документе сделал ЭлементыФОрмы.Одобрено администрацией.доступность = истина либо ложь в зависимости от того что надо)))

    ЗапросПользователя = глЗначениеПеременной("глТекущийПользователь");
    //сообщить(ЗапросПользователя.настройки);
    РегСв = РегистрыСведений.НастройкиПользователей.Выбрать();
    Пока регсв.Следующий() цикл
    если ЗапросПользователя = РегСв.Пользователь тогда

    Если РегСв.Настройка.Наименование = "Разрешение на одобрение бухгалтерией" тогда

    если регсв.Значение = Истина тогда

    ЭлементыФормы.ОдобрениеБухгалтерии.Доступность = истина;

    конецесли;
    конецесли;

    конецесли;
    конеццикла;

    Вот такой код в итоге)) только там еще на администрацию такое же)))
  14. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Простой код я вам уже написал. В 12 сообщении.

    Работает то работает. Пока. Только мой совет переделать.
    Из реквизитов документа - убрать, и хранить эти значения в РС.
    Можете вообще использовать "Категории номенклатуры".
  15. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Эти реквизиты учасвтуют в отчетах, и там замут много)) Там приблуд много с этими реквизитами) которые нужны в документе
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну мое дело - посоветовать. Как реально поступать - решать вам.
  17. TopicStarter Overlay
    djyarilo
    Offline

    djyarilo Опытный в 1С

    Регистрация:
    18 апр 2011
    Сообщения:
    435
    Симпатии:
    0
    Баллы:
    26
    Я просто в этом деле как посредник можно сказать, главный программист, повесил какие то процедуры, вроде в плоть до не проведения документа если не стоят галочки. Хочет сделать контроль, что когда пользователь проводит документ, админу приходит сообщение кто и когда проводил документ именно этот!!!

    Настройку пользователь не может изменить, нет прав, только админ может. И когда документ проводится в регистрах вроде как высвечивается с чего одобрения, и документ переходит в типы бухгалтера и администрация типо че то такого.

    Всех подробностей не знаю, что мне сказали сделать я то сделал :angry:

Поделиться этой страницей