8.х Номенклатура: только чтение

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 29 окт 2013.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Хочу одному пользователю закрыть доступ к изменению номенклатуры, но оставить при этом на чтение.
    На уровне подписки на событие и общего модуля это реально закрыть?
    Код:
    Процедура НоменклатураЗаписьПередЗаписью(Источник, Отказ) Экспорт
    ТекушийПользователь = ПараметрыСеанса.ТекущийПользователь;
    Если ТекущийПользователь = "Иванов Иван" Тогда
    //код???
    КонецЕсли;
    КонецПроцедуры
    
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Отказ = истина;
  3. Неназываемый
    Offline

    Неназываемый Опытный в 1С Команда форума

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    Зачем? Обычной ролью же делается.
  4. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Спасибо. А есть еще такой справочник ГруппыПользователей. Можно ли как-нибудь через глобальные функции получить куда входит активный пользователь или нужно перебирать все группы в цикле?
  5. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    А из реквизитов данного пользователя разве нельзя узнать к какой группе он принадлежит ?
  6. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    запросом получите. В табчасти ГруппыПользователей у вас должен быть ваш искомый Пользователь

    лично я вижу в реквизитах Пользователя только ФизЛицо.
  7. Aston
    Offline

    Aston Опытный в 1С

    Регистрация:
    6 июн 2012
    Сообщения:
    467
    Симпатии:
    3
    Баллы:
    29
    Когда то сделал роль для опасных пользователей и сделал ограничение на изменение
    Код:
    Номенклатура ГДЕ Номенклатура.Ссылка = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
  8. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    О почему бы не через ограничение на уровне записей, если это стандартная конфа.
  9. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Нужно делать именно так, как как потом еще будут надстройки для проверки корректности введенной информации.

    Помогите помочь почему я не получаю список пользователей в группе
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ГруппыПользователей.ПользователиГруппы.(
    |        Пользователь.Наименование КАК ПользовательНаименование
    |    )
    |ИЗ
    |    Справочник.ГруппыПользователей КАК ГруппыПользователей
    |ГДЕ
    |    ГруппыПользователей.Наименование = &Наим";
    
    Запрос.УстановитьПараметр("Наим", "Номенклатура только чтение");
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.ПользовательНаименование);
    КонецЦикла;
    
  10. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Строки сравнивать не через равно а через ПОДОБНО чучше и использовать%
  11. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ГруппыПользователей.ПользователиГруппы.(
    |        Пользователь.Наименование КАК ПользовательНаименование
    |    )
    |ИЗ
    |    Справочник.ГруппыПользователей КАК ГруппыПользователей
    |ГДЕ
    |    ГруппыПользователей.Наименование ПОДОБНО &Наим";
    Запрос.УстановитьПараметр("Наим", "Номенклатура только чтение");
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.ПользовательНаименование);
    КонецЦикла;
    
    {Форма.Форма.Форма(22)}: Поле объекта не обнаружено (ПользовательНаименование)
    Сообщить(Выборка.ПользовательНаименование);
  12. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ГруппыПользователей.Пользователь.Наименование КАК ПользовательНаименование
    |ИЗ
    |    Справочник.ГруппыПользователей.Группы КАК ГруппыПользователей
    |ГДЕ
    |    ГруппыПользователей.Ссылка.Наименование ПОДОБНО &Наим";
    Запрос.УстановитьПараметр("Наим", "Номенклатура только чтение");
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.ПользовательНаименование);
    КонецЦикла;
    
    сразу к табчасти обращаться можно

    а своим запросом вы получаете в каждой строке ТЗ из строк вашей ТЧ. Потому и нет там реквизита ПользовательНаименование
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вот так

    Код:
    ВЫБРАТЬ
    ГруппыПользователейПользователиГруппы.Пользователь.Наименование
    ИЗ
    Справочник.ГруппыПользователей.ПользователиГруппы КАК ГруппыПользователейПользователиГруппы
    ГДЕ
    ГруппыПользователейПользователиГруппы.Ссылка.Наименование ПОДОБНО &Наим
    Ну то же самое точь в точь. как сказали выше - сразу к ТЧ

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