Ограничение доступа к справочнику склады для конфигурации Управление торговлей 8.1(8.2), редакция 10.3.

13.01.14

Администрирование - Информационная безопасность

Статья для тех, кто только начинает разбираться с RLS (Record Level Security - доступ на уровне записей)
А также для тех, кому лень разбираться в тонкостях программирования. Можете взять за основу код приведенный в статье.

Появилась у меня необходимость в конфигурации "Управление торговлей" определенным группам пользователей ограничить доступ к списку складов. Поскольку в типовой конфигурации не предусмотрено такой возможности, я порылся в интернете и понял, что у многих возникал этот вопрос. Находил ответы на свой вопрос с примерами кода, но отрывками. Вот, решил оформить то, что у меня в результате получилось. Сразу оговорюсь, что с 8.X я недавно стал работать поэтому не пинайте сильно. В основном публикация предназначена для новичков.

Исходная конфигурация: Управление торговлей 10.3.8.9.

1) Добавляем новое значение в перечисление ВидыОбъектовДоступаСклады.

2) Вносим изменения в регистр сведений НастройкиПравДоступаПользователей. В измерениях ОбъектДоступа и ВладелецПравДоступа  отмечаем флажком  тип данных  СправочникСсылка.Склад.

3) Вносим изменения в обработку НастройкаПравДоступа:

  • Добавляем новую страницу, на которой будет происходить настройка доступа к складам. Я назвал её Склады.
  • Размещаем табличное поле на новой странице и настраиваем его по аналогии с табличными полями расположенными на закладках Организации и Контрагенты.

3.1) Добавляем строчки кода в модуль формы  НастройкаПравДоступа:

  •  Изменим функцию ПолучитьСписокОбластейДанных


Функция ПолучитьСписокОбластейДанных(ТипДанных)
   
СписокОбластей = Новый СписокЗначений;
    Если
ТипДанных = Тип("СправочникСсылка.Организации") Тогда
       
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Организации);
    ИначеЕсли
ТипДанных = Тип("СправочникСсылка.ГруппыДоступаККонтрагентам") Тогда
       
СписокОбластей.Добавить(Перечисления.ОбластиДанныхОбъектовДоступа.КонтрагентыСписок);
    ИначеЕсли
ТипДанных = Тип("СправочникСсылка.ГруппыПользователей") Тогда
       
// Добавим только те виды объектов доступа, для которых нет областей данных
       
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Организации);
       
// Добавим все области данных
       
Для каждого Перечисление Из Перечисления.ОбластиДанныхОбъектовДоступа Цикл
           
СписокОбластей.Добавить(Перечисление);
        КонецЦикла;
       
// Для ограничения доступности по складам. Начало
   
ИначеЕсли ТипДанных = Тип("СправочникСсылка.Склады") Тогда
       
СписокОбластей.Добавить(Перечисления.ВидыОбъектовДоступа.Склады);
       
// Для ограничения доступности по складам. Конец
   
КонецЕсли;
    Возврат
СписокОбластей;
КонецФункции

  •    Добавим код в  функцию ПередОткрытием:


ТипыОбъектовДоступа.Вставить("Склады"     , Тип("СправочникСсылка.Склады"));

4) Вносим изменения в ОбщийМодуль -  НастройкаПравДоступа


Функция ПолучитьВидОбъектаДоступа(ОбъектДоступа) Экспорт
    Если
ТипЗнч(ОбъектДоступа) = Тип("СправочникСсылка.Организации") Тогда
        Возврат
Перечисления.ВидыОбъектовДоступа.Организации;
    ИначеЕсли
ТипЗнч(ОбъектДоступа) = Тип("СправочникСсылка.ГруппыДоступаККонтрагентам") Тогда
        Возврат
Перечисления.ВидыОбъектовДоступа.Контрагенты;
       
// Для ограничения доступности по складам. Начало
   
ИначеЕсли ТипЗнч(ОбъектДоступа) = Тип("СправочникСсылка.Склады") Тогда
        Возврат
Перечисления.ВидыОбъектовДоступа.Склады;
       
// Для ограничения доступности по складам. Конец
   
Иначе
        Возврат
Перечисления.ВидыОбъектовДоступа.ПустаяСсылка();
    КонецЕсли;
КонецФункции
 

5) Добавляем ограничение доступа к данным на чтение у роли Пользователь для объекта Справочники Склады. В поле Ограничение доступа пишем следующий код: 
#ТаблицаОсновогоВидаОбъектаДоступа("Склады", "Ссылка", "")

1.png

Поскольку шаблон ограничений ТаблицаОсновогоВидаОбъектаДоступа уже есть, то здесь больше ничего не делаем. Теперь доступ на видимость складов в справочнике склады настроен. Далее нам нужно чтобы в отчеты попадали только те склады, которые доступны группе пользователей.

 6) Для роли, которую надо ограничить в доступе добавляем шаблон ограничений (закладка шаблоны ограничений). Назовем ограничение Склад, а  в тексте шаблона напишем код:

#Если &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей #Тогда
ТекущаяТаблица
ИЗ
   
#ТекущаяТаблица КАК ТекущаяТаблица
       
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            СоставГруппы.Ссылка КАК ГруппаПользователей
        ИЗ
           
Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
        ГДЕ
            СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
        ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
    (НЕ
1 В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    1
               
ИЗ
                   
РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа

                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                        ПО
                           
НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1)
                               
И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
                                И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)

                                И
НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
                ГДЕ
                     НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                           И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады))

                    И
НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
#КонецЕсли 

7) Затем, возвращаемся на закладку Права и находим в дереве объект Регистр накопления -  ТоварыНаСкладах и добавляем ограничение доступа к данным на чтение. В поле Ограничение доступа пишем следующий код:

#Cклад("Склад") 

8) Далее, для этого регистра для роли Пользователь создаем ограничение доступа к данным на чтение. Для этого добавляем ограничение следующего содержания ГДЕ ЛОЖЬ

9) Теперь нам нужно настроить форму списка документов таким образом, чтобы пользователь видел только те документы: реализация, заказ и т.д., где указан доступный для чтения склад. Я сделал ограничение в документе РеализацияТоваровУслуг. По аналогии с этим можно ограничить и другие формы списков документов.
Открываем роль, которой мы хотим назначить ограничение и переходим на закладку Шаблоны ограничений. Добавляем новый шаблон ОрганизацияВШапкеКонтрагентВШапкеСкладВШапке,в тексте шаблона пишем следующий код:

##Если &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей ##Тогда
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
   
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
        СоставГруппы.Ссылка КАК ГруппаПользователей
    ИЗ
       
Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
    ГДЕ
        СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
    ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
            ИЛИ (НЕ
1 В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        1
КАК ПолеОтбора
                    ИЗ
                       
РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                    ГДЕ
                        НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                        И ВЫБОР
                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                И
ТекущаяТаблица.#Параметр(1) ССЫЛКА Справочник.Организации
                               
И НЕ ТекущаяТаблица.#Параметр(1) = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                               
ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                               
ИЗ
                                                    (
ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                           
НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1)
                                                               
И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                                                И (
НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                   
КОНЕЦ
                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                И
ТекущаяТаблица.#Параметр(2) ССЫЛКА Справочник.Контрагенты
                               
И НЕ ТекущаяТаблица.#Параметр(2) = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                               
ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                               
ИЗ
                                                   
Справочник.Контрагенты КАК Контрагенты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                           
НастройкиПравДоступаПользователей.ОбъектДоступа = Контрагенты.ГруппаДоступаККонтрагенту
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                                                И (
НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи))
                                               
ГДЕ
                                                    Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(2))
                                           
ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                   
КОНЕЦ
                            // Для контроля доступности по складам. Начало
                           
КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)
                                И
ТекущаяТаблица.#Параметр(3) ССЫЛКА Справочник.Склады
                               
И НЕ ТекущаяТаблица.#Параметр(3) = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                               
ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                               
ИЗ
                                                    (
ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                           
НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(3)
                                                               
И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)
                                                                И (
НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                   
КОНЕЦ
                             // Для контроля доступности по складам. Конец
                            
ИНАЧЕ ИСТИНА
                       
КОНЕЦ = ЛОЖЬ))
                        И НЕ
ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)
##КонецЕсли

Далее, переходим на закладку права, находим в ней Документ РеализацияТоваровиУслуг.
Если у вас уже есть ограничение вида:


#ОрганизацияВШапкеКонтрагентВШапке("Организация", "Контрагент")


то заменяем его нашим кодом:


#ОрганизацияВШапкеКонтрагентВШапкеСкладВШапке("Организация", "Контрагент","Склад")

 
Если такового нет, то добавляем новое ограничение прав и указываем текст нашего ограничения.

10) Сохраняем все. Заходим в предприятие и открываем справочник Группы пользователей. Жмем кнопку Права на нужной группе пользователей. На закладке склады указываем склады, которые должны быть доступны данной группе пользователей. После этого пользователи в справочнике складов смогут увидеть только указанные склады и отчеты, которые используют регистр ТоварыНаСкладах будут выводить ограниченный список складов.

 Следует заметить, что если у пользователя есть несколько ролей и хотя бы одна из них разрешает доступ к справочнику складов, то ограничение не будет срабатывать. В этом случае следует ограничение прописать для нескольких ролей по аналогии.

Я не стал ограничивать другие регистры на доступ по складам, например:ТоварыВРезервеНаСкладах, ЗаказыПоставщикам... Думаю по аналогии можно и в них добавить ограничения. В журнале реализаций (да и в других журналах, где есть поле склад) также не настраивал ограничений, поэтому в поле склад будет выводиться, но это все можно по аналогии с регистрами доработать.

Обновлено 22.02.12. Изменен пункт 8 статьи. Не было ограничения на чтение регистра для прав Пользователь. В связи с этим при формировании без выбора склада отчетов используемых данный регист приводило к выводу в отчет строк вида.

P.S Проверял работоспособность на 8.2- работает. Правда в режиме совместимости с 8.1 Smile

Спасибо пользователю Sai-2010 за замечание.

После данной доработки обновился на 8.2, прошел несколько релизов, сейчас остановился на 10.3.15.9 - все работает без сбоев.

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14395    22    32    

33

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    2601    PROSTO-1C    9    

29

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1616    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Продукты на основе решений 1С уверенной поступью захватывают рынок учётных систем в стране. Широкое распространение программ всегда порождает большой интерес к ним со стороны злоумышленников, а пользователь 1С это одна из дверей в защищённый информационный контур предприятия. Обработка позволяет быстро и комплексно оценить настройки безопасности конкретной базы и возможности пользователя этой базы на сервере. Также можно оценить некоторые аспекты сетевой безопасности предприятия со стороны сервера 1С.

5 стартмани

24.04.2023    5437    14    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    5965    32    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9243    Tavalik    46    

113
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
94. gusen_it 6 28.01.13 13:25 Сейчас в теме
А как сделать, что бы к складу дополнительно добавить разрешение на операцию приход/расход...?
К примеру у меня в базе 4 организации. Мне нужно 3-м из 4-х организации дать возможность перемещения товаров с основных складов 4-й организации к себе.
т.е. указывать к каждому складу какие операции (приход/расход) можно делать с ним.
95. sanches 256 29.01.13 08:29 Сейчас в теме
(94) Afandi, Можете добавить для документа Перемещение товаров ограничение на добавление и изменение ,а в самом ограничении прописать запрос. Только, для склада надо где-то указать доступные на нем операции. Можно, например в категориях или в свойствах. Но в этом случае надо быть внимательным, что-бы особо умные пользователи не стали менять категории или свойства как им надо, что-бы провести все-таки документ.
96. gusen_it 6 29.01.13 14:13 Сейчас в теме
А можно ли в шаблон передать параметром тип документа, при обращении из документа к справочникам?
97. gusen_it 6 29.01.13 14:22 Сейчас в теме
Добавил в регистр "НастройкиПравДоступаПользователей" новое измерение "ВидДоступа" типа Перечесиление.. Теперь для всех таких объектов как например касса или склад, можно указывать вид операции которую можно делать, приход, расход, перемещение и т.п.
Но к сожалению по своему не знаю правил использования шаблонов встрял!
Теперь вот ломаю голову, как в шаблоне прописать обработку нового параметра. К тому же возникает вопрос, как в шаблон передать информацию какой документ обратился к справочнику?
98. ArtemiFD 42 15.03.13 22:04 Сейчас в теме
Вечер добрый! Статья безумно крутющая.
В виду не знания данного механизма, убил много рабочего времени, но особо не продвинулся :(
Задача такая:
Необходимо спрятать те группы и элементы иерархического справочника, у которых реквизит "Скрыть" стоит в истину и скрыть сам реквизит от посторонних глаз (везде, где только можно).
Если кто поможет, заранее спасибо :)
99. sanches 256 15.03.13 22:46 Сейчас в теме
(98) ArtemiFD,
Можно посмотреть как в типовой сделаны ограничения на справочник организации или контрагенты. Думаю, что лучше не реквизит в справочник, а регистр сведений, в котором указывать доступные объекты, в типовой УТ 10 это регистр НастройкиПравДоступаПользователей.
100. ArtemiFD 42 16.03.13 10:05 Сейчас в теме
(99) особенность заключается еще и в том, что по этому реквизиту будут проходить отборы во многих отчетах.
101. sanches 256 16.03.13 23:02 Сейчас в теме
(100) ArtemiFD, можно в запросе сделать выборку по этому регистру сведений, просто считывать данные из регистра в котором находятся доступные пользователю объекты и на них накладывать отбор
104. Audag 24.04.13 18:12 Сейчас в теме
sanches, спасибо за ответ!
Данные поля есть, с именами Чтение_1 и Запись. Для верности копировал табличное поле с Организаций...
Непонятно в чем причина, может сможете что-то подсказать?
105. sanches 256 26.04.13 16:12 Сейчас в теме
(104) Audag,
нужно в отладчике смотреть, что тут происходит
Индекс = СоответствиеОбластейДанных[?(ЗначениеЗаполнено(Запись.ОбластьДанных), Запись.ОбластьДанных, Запись.ВидОбъектаДоступа)];

Судя по ошибке, он не может определить индекс
106. zlodeenko 27.06.13 11:17 Сейчас в теме
По перемещению.

Ошибка в ограничении доступа к данным.
объект: 'Документ.ПеремещениеТоваров', поле: 'Проведен'; право: 'Чтение'
{(39, 50)}: Поле не найдено "ТекущаяТаблица.Контрагент"
И ТекущаяТаблица.<<?>>Контрагент ССЫЛКА Справочник.Контрагенты
по причине:
{(39, 50)}: Поле не найдено "ТекущаяТаблица.Контрагент"
И ТекущаяТаблица.<<?>>Контрагент ССЫЛКА Справочник.Контрагенты


Так же проблема с расходными ордерами, выдает пустой список. ПОМОГИТЕ!!!
107. sanches 256 27.06.13 11:41 Сейчас в теме
(106) zlodeenko, похоже на то, что вы вставили шаблон ограничения от другого объекта, у которого есть поле контрагент. Вам нужно взять шаблон ограничения для документа перемещение и добавить в него еще два параметра Склад и Склад получатель, и по аналогии с примером в статье доработать текст шаблона ограничения.
115. Bud78 8 21.10.13 23:49 Сейчас в теме
(107) возможно ли увидеть пример шаблона для документа перемещение товара?
116. sanches 256 12.11.13 15:41 Сейчас в теме
(115) Bud78,
Как-то так :)
На всякий случай приложил файл, почему то блок кода не всегда корректно отображается
В нужной для Вас роли добавляете ограничение доступа к данным на право чтения.
В поле Ограничение доступа вставляете #ОрганизацияСкладОтправительСкладПолучательВШапке("Организация","СкладОтправитель","СкладПолучатель")

Код самого шаблона ограничения выглядит так.
Может кто-то предложит более элегантный и быстрый вариант.

##Если &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей ##Тогда
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
        СоставГруппы.Ссылка КАК ГруппаПользователей
    ИЗ
        Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
    ГДЕ
        СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
    ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
            ИЛИ (НЕ 1 В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        1 КАК ПолеОтбора
                    ИЗ
                        РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                    ГДЕ
                        НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                        И ВЫБОР
                        КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                            	И ТекущаяТаблица.#Параметр(1) ССЫЛКА Справочник.Организации
                            	И НЕ ТекущаяТаблица.#Параметр(1) = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1)
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи))
                                                                )
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                   КОНЕЦ

                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)
                            	И ТекущаяТаблица.#Параметр(2) ССЫЛКА Справочник.Склады
                            	И НЕ ТекущаяТаблица.#Параметр(2) = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(2)
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                    КОНЕЦ
                                     ИНАЧЕ ИСТИНА
                        КОНЕЦ = ЛОЖЬ))
                        И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)
                        
                        И
                        
                        (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
            ИЛИ (НЕ 1 В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        1 КАК ПолеОтбора
                    ИЗ
                        РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                    ГДЕ
                        НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                        И ВЫБОР
                        КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                            	И ТекущаяТаблица.#Параметр(1) ССЫЛКА Справочник.Организации
                            	И НЕ ТекущаяТаблица.#Параметр(1) = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1)
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи))
                                                                )
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                    КОНЕЦ

                            КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)
                            	И ТекущаяТаблица.#Параметр(3) ССЫЛКА Справочник.Склады
                            	И НЕ ТекущаяТаблица.#Параметр(3) = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                                ТОГДА ВЫБОР
                                        КОГДА 1 В
                                                (ВЫБРАТЬ ПЕРВЫЕ 1
                                                    1
                                                ИЗ
                                                    (ВЫБРАТЬ
                                                        1 КАК ПолеОтбора
                                                    ) КАК Оптмизация ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                                                        ПО
                                                            НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(3)
                                                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады)
                                                                И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей
                                                                    ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)))
                                            ТОГДА ИСТИНА
                                        ИНАЧЕ ЛОЖЬ
                                    КОНЕЦ
                                     ИНАЧЕ ИСТИНА
                        КОНЕЦ = ЛОЖЬ))
                        И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL)

                        
##КонецЕсли
Показать
Прикрепленные файлы:
Ограничение документов перемещение.txt
NE_ZNAIY; +1 Ответить
108. Shelder 07.08.13 12:32 Сейчас в теме
Здравствуйте, отличная статья +++++, все работает как по маслу, ограничил 3 магазина по многим документам, но только 1 неудобство - при проведении документа "Отчет о розничных продажах" возникает ошибка:

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.УправлениеЗапасамиПартионныйУчет.Модуль(5049)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Ошибка выполнения запроса
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

Все остальные документы проводятся "на ура" и видны только для определенного пользователя.
Прикрепляю журнал регистрации во время возникновения ошибки. Если будет время помогите решении этой проблемы, не удобно проводить все документы 3х магазинов при РИБ обмене каждый день) Заранее спасибо.
Прикрепленные файлы:
109. sanches 256 07.08.13 13:10 Сейчас в теме
(108) Shelder,добавьте "РАЗРЕШЕННЫЕ" в тексте запроса (должно быть ВЫБРАТЬ РАЗРЕШЕННЫЕ), который формируется в процедуре ПолучитьДеревоПартийНаСкладахУпр (МоментКон, СтруктураПараметров) указанного модуля.
110. Shelder 07.08.13 15:07 Сейчас в теме
Прописал сразу за функцией - не помогло(

Функция ПолучитьДеревоПартийНаСкладахУпр (МоментКон, СтруктураПараметров)

Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ");
111. sanches 256 07.08.13 15:30 Сейчас в теме
(110) Shelder, я имел в виду, что не в буквальном смысле текст запроса заменить на ВЫБРАТЬ РАЗРЕШЕННЫЕ. Нужно в процедуре ПолучитьДеревоПартийНаСкладахУпр (МоментКон, СтруктураПараметров)найти из какой процедуры формируется текст запроса и к тому запрос добавить лишь одно слово после ВЫБРАТЬ - РАЗРЕШЕННЫЕ
112. Shelder 07.08.13 15:53 Сейчас в теме
Огромное спасибо, помогло) Добавил РАЗРЕШЕННЫЕ во все тексты запросов нижеприведенных процедур:

Процедура ЗаполнитьЗапросПартийНаСкладахУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ)
Процедура ЗаполнитьЗапросПартийНаСкладахДляЗакрытияЗаказовПокупателей(Запрос)
Процедура ЗаполнитьЗапросПартийНаСкладахДляОтложеннойОтгрузкиУпр(Запрос, ВестиПартионныйУчетПоСкладам)
Процедура ЗаполнитьЗапросПартийНаСкладахДляСписанияПоОрдернойСхемеУпр(Запрос,ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ)
114. Prad2002 7 17.10.13 08:48 Сейчас в теме
Плюс за статью, экономия времени. Но вот в чем небольшая проблемка есть, если делать RLS по складам, то нужно учитывать, что справочник склады имеет иерархическую структуру, т.е. если вы дадите доступ к папке, а потом в этой папке пользователь заведет новый склад, то права на этот склад назначены не будут, пока не откроете обработку настройки прав и не перепишите права. В принципе, склады создаются не так часто и, возможно, это и не будет проблемой, но вот если пилить доступ допустим к номенклатуре, то тут как мне кажется правильней было бы в номенклатуре заводить доп. реквизит и по нему уже делать RLS (как в контрагентах). Тогда и иерархия справочника будет по-барабану.
117. sanches 256 12.11.13 16:34 Сейчас в теме
(114) Prad2002,
Спасибо за замечание.
А ограничение к контрагентам осуществляется через справочник группы доступа к контрагентам, который так же может быть иерархическим, в этом случае не будет той же проблемы, о которой Вы говорите?
Проверю, там по идее предусмотрено указание групп при настройке доступа.
118. Coollerok 06.01.14 20:25 Сейчас в теме
скажите пожалуйста в п.9 весь код шаблона? у меня почему то видно только 2 строки
119. sanches 256 10.01.14 11:01 Сейчас в теме
(118) Coollerok, нет, код не весь. Раньше там была ссылка для разворота большого куска кода, теперь не работает. Опять что-то с сайтом крутят...
120. Coollerok 12.01.14 23:49 Сейчас в теме
(119) а нету случайно куска этого кода? если есть и несложно вышли пожалуйста на cooller.ok@mail.ru
буду ОЧЕНЬ благодарен!
121. sanches 256 13.01.14 08:17 Сейчас в теме
(120) Coollerok, исправил статью. Теперь показывает весь код
Coollerok; +1 Ответить
122. Coollerok 20.01.14 23:52 Сейчас в теме
(121) спасибо тебе большущее!
123. Antimyslitel 35 10.03.14 15:45 Сейчас в теме
{Обработка.НастройкаПравДоступа.Форма.НастройкаПравДоступа(468)}: Поле объекта не обнаружено (Картинка)
ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку = Истина;


У меня такая ошибка!
124. sanches 256 11.03.14 08:22 Сейчас в теме
(123) Antimyslitel, в табличном поле должна быть добавлена колонка Картинка. Я не стал это описывать, ограничился фразой, что надо по аналогии с уже существующими закладками настроить закладку склады :)
Прикрепленные файлы:
125. Nigmatul 23.07.14 13:00 Сейчас в теме
Большое спасибо автору за статью, делал доступ по Кассам, а так же по регистрам накопления и документам. связанными с движениями денежных средств. Вот только кто может объяснить с запросами при использовании RSL , а именно ВЫБРАТЬ РАЗРЕШЕННЫЕ .

Вопрос автору. Каких последствий стоит ожидать после ввода RSL ? Пару дней работаем в УТ 10.3 пока ничего подозрительного не произошло
126. sanches 256 23.07.14 18:33 Сейчас в теме
(125) Nigmatul, ВЫБРАТЬ РАЗРЕШЕННЫЕ позволит исключить вывод ошибки при формировании запроса пользвателем, у которого нет прав на какие-то данные в запросе.
Все что приходит в голову из последствий, это некоторое замедление скорости работы при чтении данных, для которых настроено ограничение.
127. bubnov-pi 01.09.14 17:57 Сейчас в теме
Недопонял, чем не устраивает штатная "Настройка прав доступа" с указанием объекта "Склады" и выбором требуемых складов?
Или когда писалась статья, такой функционал "из коробки" реализован не был?
Управление производственным предприятием, редакция 1.3 (1.3.55.2) - склады отсекаются идеально.
128. sanches 256 01.09.14 17:39 Сейчас в теме
(127) bubnov-pi, не смотрел в УПП, но в УТ 10.3 такой возможности нет. Возможно ограничить только по организациям или контрагентам.
129. bubnov-pi 02.09.14 10:08 Сейчас в теме
(128) С УТ не пересекался очень давно, так что возражать не буду. А приём, описанный в статье буду рекомендовать нашим программистам для реализации ограничения доступа к номенклатуре - почему-то в УПП склады разграничили, а по номенклатуре разграничить можно только право её редактирования.
131. NE_ZNAIY 29.01.15 11:17 Сейчас в теме
Спасибо. за работу.
132. NE_ZNAIY 29.01.15 17:13 Сейчас в теме
Дошёл до пункта 8), там у Вас.
8) Далее, для этого регистра ...
Для которого?.
Если для Регистр накопления - ТоварыНаСкладах, то там только что создали
#Cклад("Склад")
А ещё добавить не даёт. "Плюсик" недоступен.
Что я не так понял?
Прикрепленные файлы:
135. diskon 07.04.15 17:26 Сейчас в теме
Такая же беда как у NE_ZNAIY в (132). Повторяю для новой БД за человеком, который когда-то уже сделал подобное в другой БД. Так там этого "ГДЕ ЛОЖЬ" вообще не нашёл в ограничениях на чтение у этого регистра.
133. NE_ZNAIY 01.02.15 19:59 Сейчас в теме
что-то у меня ни как не получается.
Взял чистую базу.. выполнил по пятый пункт.
Решил проверить
Если зайти пользователем с ролью "Пользователь" не даёт даже открыть любой журнал . движения товара. (Поступление, перемещение, Продажа).
Пишет "Нарушение прав доступа".
"Управление торговлей", редакция 10.3 (10.3.31.2)
Может поможете?
134. sanches 256 08.02.15 07:57 Сейчас в теме
(133) NE_ZNAIY, посмотрю, как у меня настроено. Подзабыл уже
136. gianta 22.04.15 17:03 Сейчас в теме
При формировании реализации на основании заказа возникает ошибка:
Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{Документ.РеализацияТоваровУслуг.МодульОбъекта(1832)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
Ошибка выполнения запроса
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

ПОМОГИТЕ пожалуйста!
137. sanches 256 23.04.15 09:33 Сейчас в теме
(136) gianta,
Скорее всего ошибка в запросе, который выполняется в модуле реализации.
В нем нужно будет добавить ключевое слове РАЗРЕШЕННЫЕ.
Можете привести текст запроса здесь, что бы точно определить в чем проблема.
В своей конфигурации (10.3.28.1) я не нашел запросов в процедуре ОбработкаЗаполнения

P.S.
На остальные вопросы отвечу как закончится сдача НДС :)
138. gianta 23.04.15 11:53 Сейчас в теме
Добавила РАЗРЕШЕННЫЕ и заработало но только в управленческом учете, когда пытаюсь провести реализацию в бухгалтерском учете на основании заказа возникает новая ошибка:

{ОбщийМодуль.УправлениеВзаиморасчетами.Модуль(1805)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
Ошибка выполнения запроса
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

У меня 1С УТП, Конфигурация 1.2.28.1

Спасибо большое!
139. sanches 256 23.04.15 11:59 Сейчас в теме
(138) gianta,
Проблема та же, скорее всего. Надо зайти в общий модуль ОбщийМодуль.УправлениеВзаиморасчетами и так же добавить в запросе РАЗРЕШЕННЫЕ.
К сожалению, я только на УТ10.3 тестировал описанный мною алгоритм, и нет гарантии что он успешно заработает на УТП.
Вы про эту УТП говорите http://solutions.1c.ru/catalog/commercial-ua ?
141. gianta 23.04.15 13:45 Сейчас в теме
(139) спасибо Вам, все получилось!

Да, у меня эта УТП!
140. _Бестия_ 5 23.04.15 13:06 Сейчас в теме
Спасибо автору!!! Очень полезная и информативная статья, по аналогии есть возможность ограничивать доступ и к другим справочникам!
142. diskon 30.04.15 15:56 Сейчас в теме
А у меня такая фигня была. После выполнения всех шагов описанных в этом руководстве у "ограниченных" пользователей перестали работать обработки связанные с оффлайновыми кассами. Это то есть выгрузка товаров на кассу и закрытие кассовой смены. Поскольку я в одинэсе нешарю чуть менее чем полностью, задним умом и ногами дошёл до того, что виноват шаг 5. После того как ограничение на чтение убрал обработки заработали.
143. Гость 06.05.15 11:54
Здравствуйте у меня тут такая проблема: Проделал все пункты. Выводится для пользователя нужный нам список документов по ограничению складов, а вот в документе при выборе склада все равно выводятся все склады.
144. sanches 256 06.05.15 13:53 Сейчас в теме
(143) Гость,
Вот у меня так настроен доступ к справочнику склады. При выборе склада из документа, видны только доступные пользователю
Прикрепленные файлы:
145. Гость 07.05.15 12:41
(144) у меня тоже так же настроено. Может что то нужно сделать для второй рили?
146. sanches 256 07.05.15 14:48 Сейчас в теме
(145) Гость, у всех ролей доступных пользователю должно быть прописано аналогичное ограничение. Либо достаточно оставить права для роли Пользователь, поскольку она всегда указывается, а у остальных ролей снять права на чтение
147. Гость 19.05.15 11:37
Можно ли сделать так, что бы если в документе склад не заполнен, то бы он не отображался в списке документов?

148. sanches 256 27.05.15 21:41 Сейчас в теме
(147) Гость, думаю, да, если добавить правильно условие в запрос
149. NE_ZNAIY 28.07.15 16:48 Сейчас в теме
Автор, поясните мне, пожалуйста, пункт 8. Так у меня ни чего и не получается. Про какой регистр вы говорите?
150. sanches 256 29.07.15 07:21 Сейчас в теме
(149) NE_ZNAIY, регистр ТоварыНаСкладах. Нужно для того, что бы в отчетах не показывал данные по складам, которые недоступны пользователю
151. NE_ZNAIY 30.07.15 14:36 Сейчас в теме
Я понимаю, что мне тут очень тяжело. Посмотрите скрин. В пункте 7) только что это сделали. Еще одну строчку не возможно добавить. "Плюсик" не доступен.
Прикрепленные файлы:
153. sanches 256 08.08.15 20:55 Сейчас в теме
(151) NE_ZNAIY, в 7 пункте говорится о том, что для роли, которую вы хотите ограничить в доступе к данным регистра необходимо добавить ограничение доступа на чтение. У меня это выглядит так http://prntscr.com/82c7dc.
Вы правы, что добавить туда 2 строчки в данном случае нельзя. Возможно у вас уже была там какое-то ограничение, у меня - не было.
152. Ольга_tmp 71 04.08.15 14:08 Сейчас в теме
Храни вас бог) такую работу сделали и описали ее, чтобы другие за пару часов реализовали. очень помогло!
154. NE_ZNAIY 09.11.15 19:33 Сейчас в теме
sanches, наконец-то, у меня получилось с документами поступления и реализации. Дошёл до документов перемещения. Тут либо пустой журнал, (если только один нужный склад-получатель в настройках прав доступа стоит и чтение и запись), либо весь список документов перемещения , причем доступный для редакитования (даже если поставлю в настройках прав доступа только чтение для склада-отправителя.) использовал код из 116 поста
Как сделать чтоб пользователь видел только те перемещения, которые "приходят" или "уходят" с нужного склада?
Поможете?
155. sanches 256 11.11.15 20:42 Сейчас в теме
(154) NE_ZNAIY, странно. В 116 посте выкладывал как раз для перемещений. В нем условие такое, что только если у пользователя есть права на склад отправитель и на склад получатель, то вы водится такой документ в журнале. Надо будет проверить. У меня работало... вроде )
156. NE_ZNAIY 12.11.15 10:48 Сейчас в теме
(155) "если у пользователя есть права на склад отправитель и на склад получатель" В том-то и дело что у пользователя только право на склад-получатель., если он получает на свой склад. Или только на склад-отправитель, если он отправляет.
157. NE_ZNAIY 17.11.15 09:26 Сейчас в теме
(155) может возьметесь мне помочь в индивидуальном порядке?
Отпишитесь если согласны на kidus@yandex.ru с предложениями.
159. agdam_m 6 10.04.17 10:10 Сейчас в теме
Статья очень помогла. Сделал по инструкции, все получилось за исключением одного: пришлось еще для основной роли (для которой настраивается доступ) создать шаблон "ОрганизацияВШапкеСкладВШапке" и указать ограничение на чтение Справочника "Склады":
<Прочие поля> #ОрганизацияВШапкеСкладВШапке("Владелец","Ссылка")
<Ссылка, Владелец, Родитель, Код, ВерсияДанных> - "пусто".
160. NE_ZNAIY 10.04.17 18:16 Сейчас в теме
Sergei M (agdam_m) а с документами перемещения работает?
161. sanches 256 11.04.17 10:01 Сейчас в теме
(160) Да, посмотрите 116 комментарий, там я приводил текст ограничения
162. K_Andrey 04.05.17 06:37 Сейчас в теме
Статья отличная. Но возник вопрос. Как сделать в документе "Заказ покупателя". У него нет реквизита "Склад", а есть "СкладГруппа".
164. DenisS_kit 30.01.18 14:02 Сейчас в теме
Спасибо за статью и актуально и позновательно.
Делаю аналогично в УТ 10.3, для справочника кассы, возник вопрос по журналу контрагенты, если ставить ограничение тогда в журнале кроме разрешенных кассовых документов ничего не отображается, не подскажите как обойти этот момент? Чтобы ограничения касались только документов с реквизитом касса, и не затрагивали виды документов в которых касса отсутствует.
165. nuary 24.10.18 14:50 Сейчас в теме
Спасибо автору за пример четкий!
166. mihapat 19.02.19 15:43 Сейчас в теме
Спасибо автору! Замечательный материал, все работает на ура :)
167. masik777 01.09.20 22:54 Сейчас в теме
Статья супер! Доходчиво и понятно.
Но... или у меня глина в голове засохла или лыжи не едут. Дошел до 7 пункта. И вылезла ошибка. Подскажите, пожалуйста де копать.
Прикрепленные файлы:
169. FLYYY1986 05.04.21 15:04 Сейчас в теме
(167) Аналогичная проблема, перепробовал все. Помогите пожалуйста!
168. masik777 02.09.20 10:05 Сейчас в теме
Коллеги, почему никто не отвечает? Неужто тема вымерла??((
170. FLYYY1986 06.04.21 11:32 Сейчас в теме
Ребята, подскажите пожалуйста, все сделал по инструкции, у пользователя у которого пытаюсь ограничить в справочнике складов вылезает такая ошибка:

Ошибка в ограничении доступа к данным.
объект: 'Справочник.Склады', поле: 'Родитель'; право: 'Чтение'
{(23, 94)}: Поле не найдено "ТекущаяТаблица.Склад"
НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.<<?>>Склад
по причине:
{(23, 94)}: Поле не найдено "ТекущаяТаблица.Склад"
НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.<<?>>Склад

В чем может быть проблема?
171. FLYYY1986 06.04.21 11:35 Сейчас в теме
Если не сложно, можете скинуть конфигурацию, в которой все работает?
172. masik777 07.04.21 01:12 Сейчас в теме
Большое Спасибо, что ответили. Вот конфигурация.
Прикрепленные файлы:
1Cv8.zip
FLYYY1986; +1 Ответить
173. FLYYY1986 07.04.21 11:04 Сейчас в теме
174. masik777 07.04.21 11:39 Сейчас в теме
FLYYY1986 привет. Дико извиняюсь. Немного перепутал. Видно за ночь ушатался)) Я подумал, что это Разработчик просит конфу, чтобы посмотреть ошибку))) Еще раз извини.
175. masik777 10.04.21 15:59 Сейчас в теме
Решил снова вернуться в теме. Ну расскажите, наконец то бестолковому, почему дошел до 4 п. и при попытке записать ограничение вываливается ошибка..
Прикрепленные файлы:
176. masik777 31.05.21 09:39 Сейчас в теме
Похоже тему никто не читает уже..(( Снова решил выполнить все пункты. Делаю пункт 5. И та же ошибка..Почему никто не может поделиться решением? Неужели так трудно помочь?
Прикрепленные файлы:
177. fixin 4252 01.06.21 19:47 Сейчас в теме
В 10.3.33.1 уже все поменялось. Там нет шаблона : #ТаблицаОсновогоВидаОбъектаДоступа("Склады", "Ссылка", "")
Именно так не сработает.
masik777; +1 Ответить
180. pentanom 25 06.09.22 22:34 Сейчас в теме
(177)
В 10.3.33.1 уже все поменялось. Там нет шаблона : #ТаблицаОсновогоВидаОбъектаДоступа("Склады", "Ссылка", "")
Именно так не сработает.
У меня конфигурация 10.3.75.2 и в ней тоже не нашелся этот шаблон. Что же делать?
178. serpanik 22.12.21 23:23 Сейчас в теме
Можно ли ограничить доступ лишь к определенному типу цен для пользователя? Например, чтобы скрыть от него тип "Закупочная"... и он нигде бы не смог увидеть закупочную цену....
179. Jelbock 05.02.22 08:07 Сейчас в теме
Приветствую. Кто делал по Номенклатуре - подскажите, пожалуйста.
Сделал по аналогии для справочника Номенклатура. Соответственно запрещенный склад в справочнике не виден. Но сама номенклатура видна. А как сделать, чтобы вообще номенклатура на определенном складе видна не была?

Пробовал также в ограничении доступа ролей добавлять ограничение вида:
Номенклатура ИЗ Справочник.Номенклатура КАК Номенклатура
	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады КАК Склады
	ПО Номенклатура.Склад = Склады.Наименование
ГДЕ Склады.Наименование = "Основной"


"Основной" - наименование склада
Но явно я совсем не то делаю. В 1С не силен, направьте, кто знает
181. jan-pechka 403 05.03.23 15:44 Сейчас в теме
в 5пункте в статье- еще в роли Манагера на справочнике склад нужно условие вставить: Где ложь
тогда, одев на нового пользователя всего 2 роли: Пользователь и манагер - четко работает отбор по складам!
п.с. еще не забыть-ПараметрыУчета-галка "Ограничевать права доступа на уровне записей".
Спасибо автору за статью-до сих пор актуально!!! Пробывала сейчас рекомендуемый способ ограничения доступа с помощью ФункциональнойОпции с местом хранения в регистре сведений (это работает с упр.формами, сл.не УТ10,а 1сРозница) - но он не может этот метод в списке выбора формы спр.Склад так четко отобрать по установленным правам, как это делает RLS....
Оставьте свое сообщение