Организовано через принудительные отборы
1. Добавлен справочник группы доступа к номенклатуре, он добавлен реквизитом на форму справочника номенклатура.
2. Добавлен РС Группы доступа номенклатуры непереодический, независимый с двумя измерениями Пользователь, Группа доступа номенклатуры с соответствующими ссылками на эти справочники.
3. Добавлена роль ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры
4. В форме документа установка цен номенклатуры:
в обработчике ТаблицаЦенНоменклатураНачалоВыбора добавить код
Процедура ТаблицаЦенНоменклатураНачалоВыбора(Элемент, СтандартнаяОбработка)
                Если РольДоступна("ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры") тогда
                               Элемент.Подсказка = Элемент.Подсказка + "$QWERTY$" + ЗначениеВСтрокуВнутр(Ссылка);
                КонецЕсли;
КонецПроцедуры
(Если обработчик не будет срабатывать, необходимо в процедуру УстановитьНедостающиеПараметры() установить необходимые параметры номенклатуры, но это если срабатывать не будет, такое бывает очень редко).
5. В справочник Номенклатура, в форму выбора процедура ПриОткрытии
ЭлементУправления = ЭтаФорма.ВладелецФормы;
                Если ТипЗнч(ЭлементУправления) = Тип("ПолеВвода") Тогда
                               Если  Не ПустаяСтрока(ЭлементУправления.Подсказка) Тогда
                                               ТекстПодсказки = ЭлементУправления.Подсказка;
                                               ПозицияСсылки = Найти(ТекстПодсказки, "$QWERTY$");
                                               Если ПозицияСсылки > 0 Тогда
                                                               ТекПользователь = ПараметрыСеанса.ТекущийПользователь;
                                                              
                                                               Запрос = Новый Запрос;
                                                               Запрос.Текст =
                                                               "ВЫБРАТЬ
                                                               |             ГруппыДоступаНоменклатуры.ГруппаДоступаНоменклатуры КАК ГруппаДоступа
                                                               |ИЗ
                                                               |             РегистрСведений.ГруппыДоступаНоменклатуры КАК ГруппыДоступаНоменклатуры
                                                               |ГДЕ
                                                               |             ГруппыДоступаНоменклатуры.Пользователь = &ТекПользователь";
                                                              
                                                               Запрос.УстановитьПараметр("ТекПользователь", ТекПользователь);
                                                              
                                                               Результат = Запрос.Выполнить().Выгрузить();
                                                              
                                                               МассивГрупп = Результат.ВыгрузитьКолонку("ГруппаДоступа");
                                                              
                                                               СписокГрупп = Новый СписокЗначений;
                                                              
                                                               Для Каждого Стр из МассивГрупп Цикл
                                                                              СписокГрупп.Добавить(Стр);
                                                               КонецЦикла;
                                                              
                                                               ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.ВидСравнения = ВидСравнения.ВСписке;
                                                               ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.Значение = СписокГрупп;
                                                               ЭтаФорма.Отбор.ГруппаДоступаНоменклатуры.Использование = Истина;
                                                               ЭлементыФормы.СправочникСписок.НастройкаОтбора.ГруппаДоступаНоменклатуры.Доступность = Ложь;
                                               КонецЕсли;
                               КонецЕсли;
                КонецЕсли;
6. Заполнить справочник Группы доступа к номенклатуре, Номенклатура - указать группу в том реквизите который был добавлен, заполнить регистр сведений Группы доступа номенклатуры.
7. Добавить роль ОграниченияПоНоменклатуреУстановкаЦенНоменклатуры пользователю, которому необходимо урезать права на просмотр номенклатуры.
На кнопку подбор аналогично. Детали описаны в файле, если кому некогда будет разбираться.
Вступайте в нашу телеграмм-группу Инфостарт
 
                                    